> On 11 Mar 2015, at 21:25, Svante v. Erichsen <svante.v.erich...@web.de> wrote:
> 
> This begs the question: how do I get a speed optimized library then?  Do I 
> need
> to make a local fork just to insert declarations?  Is there a way to tell


This is not up to the library writer to decde on this.  This is up to the 
library final user.

Declarations are global.  When you are developping/debugging, you will set them 
to
(optimize (speed 0) (space 0) (debug 3) (safety 3)).

When generating the end-user executable, you will set them to
(optimize (speed 3) (space 3) (debug 0) (safety 3)), 
if you follow Bertrand Meyer's advice.


> e. g. ASDF to use certain declamations?  Is making the declarations in the
> library dependent on documented entries to *features* the way to go?  Where
> would I push the desired settings into *features*?

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).

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.

Optimize declaimations and declarations in libraries is the curse of the CL 
application developper.

-- 
__Pascal J. Bourguignon__



_______________________________________________
pro mailing list
pro@common-lisp.net
https://mailman.common-lisp.net/cgi-bin/mailman/listinfo/pro

Reply via email to