2009/10/28 Robert Goldman <rpgold...@sift.info>: > Faré wrote: >> 2009/10/28 Gary King <gwk...@metabang.com>: >>>> Speaking of optimization settings, does anyone see any problem with >>>> putting in ASDF something that deterministically (re)sets the >>>> optimization setting before each and any perform operation? Otherwise, >>>> optimization settings will vary wildly depending on what >>>> implementation you use, which files get recompiled, etc. >>> I think we should do this; it's on my list. >>> >> Here's a skeleton of implementation (don't forget a defgeneric). >> >> (defmethod perform :before (operation component) >> (proclaim-optimization-settings-for operation component)) >> >> (defmethod proclaim-optimization-settings-for (op component) >> (declare (ignorable op component)) >> (proclaim `(optimize ,@*default-optimization-settings*))) >> >> Unrelatedly, a slight refactoring patch is attached. It would makes it >> easier for ADG and other ASDF add-ons to reuse in a future-proof way >> the ASDF pathname merging algorithm. > > 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 () ,@body))) [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] The American Republic will endure, until politicians realize they can bribe the people with their own money. -- Alexis de Tocqueville (attributed) _______________________________________________ asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel