<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 11 Mar 2015, at 21:25, Svante v. Erichsen <<a href="mailto:Svante.v.Erichsen@web.de" class="">Svante.v.Erichsen@web.de</a>> wrote:</div><div class=""><br class="">This begs the question: how do I get a speed optimized library then?  Do I need<br class="">to make a local fork just to insert declarations?  Is there a way to tell<br class=""></div></blockquote></div><div class=""><br class=""></div>This is not up to the library writer to decde on this.  This is up to the library final user.<div class=""><br class=""></div><div class="">Declarations are global.  When you are developping/debugging, you will set them to</div><div class="">(optimize (speed 0) (space 0) (debug 3) (safety 3)).</div><div class=""><br class=""></div><div class="">When generating the end-user executable, you will set them to</div><div class="">(optimize (speed 3) (space 3) (debug 0) (safety 3)), </div><div class="">if you follow Bertrand Meyer's advice.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class="">e. g. ASDF to use certain declamations?  Is making the declarations in the<br class="">library dependent on documented entries to *features* the way to go?  Where<br class="">would I push the desired settings into *features*?<br class=""></blockquote><div class=""><div class=""><br class=""></div><div class="">Even if you set them in ASDF, you will have to have a way to tell it when you are debugging code (always), and when you are generating a end-user application (once in a blue moon, and in a different, explicitely controlled process).</div></div><div class=""><br class=""></div><div class="">And yes, since asdf doesn't cache the compiled files in separate directories for the various optimization settings (or the various *features* list), since that would be very unwiedly, you have to clear the cache when you switch between generating the end-user application, and normal developping work.  rm -rf ~/.cache/common-lisp/ is found in all application generation makefiles.</div><div class=""><br class=""></div><div class="">Optimize declaimations and declarations in libraries is the curse of the CL application developper.</div><div class=""><br class=""></div></div><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">-- <br class="">__Pascal J. Bourguignon__<br class=""><br class=""><br class=""></div></div>

</div>
<br class=""></div></body></html>