[asdf-devel] loading a standalone lisp file
Tobias C. Rittweiler
tcr at freebits.de
Thu Oct 29 15:22:55 UTC 2009
Robert Goldman writes:
> Fare wrote:
>
> > > Do we need a :after method to restore the old settings? I'm not sure
> > > how to do that actually, since I don't believe there's a portable way to
> > > record them. Do you have thoughts about this?
> > >
> > (rpg replied to me in private but I'm Cc'ing back the list)
> >
> > At ITA, we actually use a :around method with
> >
> > (defun call-with-local-compilation-settings (thunk)
> > (let
> > #+clozure
> > ((ccl::*nx-speed* ccl::*nx-speed*)
> > (ccl::*nx-space* ccl::*nx-space*)
> > (ccl::*nx-safety* ccl::*nx-safety*)
> > (ccl::*nx-cspeed* ccl::*nx-cspeed*)
> > (ccl::*nx-debug* ccl::*nx-debug*))
> > #+sbcl
> > ((sb-c::*policy* sb-c::*policy*))
> > #-(or clozure sbcl)
> > ()
> > (funcall thunk)))
> >
> > (defmacro with-local-compilation-settings (() &body body)
> > `(call-with-local-compilation-settings (lambda () , at body)))
>
> Gary, got some Allegro fu that we could shovel into
> with-local-compilation-settings?
A somewhat-portable way would be to query current optimization settings,
and reset them appropriately. ("somewhat-portable" because the
environment access stuff specified in CLtL2 allows for the querying.)
This way you also can easily define a default value for implementations
where you do not (yet) know how to get that information from; my gut
feeling for the default values would be (debug 2) (speed 2) (safety 2).
-T.
More information about the asdf-devel
mailing list