[asdf-devel] loading a standalone lisp file

Faré fahree at gmail.com
Wed Oct 28 17:44:12 UTC 2009


2009/10/28 Robert Goldman <rpgoldman at sift.info>:
> Faré wrote:
>> 2009/10/28 Gary King <gwking at 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 () , at 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)




More information about the asdf-devel mailing list