[armedbear-devel] Stack overflow when compiler macro with fallback is triggered
Alessio Stalla
alessiostalla at gmail.com
Tue Jun 5 12:41:33 UTC 2012
On Tue, Jun 5, 2012 at 2:30 PM, Mark Evenson <evenson at panix.com> wrote:
>
> On Jun 3, 2012, at 22:19 , James M. Lawrence wrote:
>
>> (eval-when (:compile-toplevel :load-toplevel :execute)
>> (defun foo () 99)
>>
>> (define-compiler-macro foo ()
>> `(locally (declare (notinline foo))
>> (foo))))
>>
>> (defun call-foo ()
>> (foo))
>>
>> Of course, the use case is a compiler macro that says, "OK, let's
>> optimize! ... Never mind, I don't want to optimize that."
>
> Filed [as ticket #214][1]; thanks for the report!
>
> [1]: http://trac.common-lisp.net/armedbear/ticket/214
Shouldn't &whole be used for that? The CLHS says [1] (emphasis mine):
"Unlike an ordinary macro, a compiler macro can decline to provide an
expansion merely by returning a form that is __the same as the
original__ (which can be obtained by using &whole)."
> By the way, [lparallel][2] is looking real sweet! I'm looking
> forward to find some time to use it to optimize ABCL's usage of
> Bordeaux-Threads.
Agreed on lparallel :)
[1] http://clhs.lisp.se/Body/m_define.htm
--
Some gratuitous spam:
http://ripple-project.org Ripple, social credit system
http://villages.cc Villages.cc, Ripple-powered community economy
http://common-lisp.net/project/armedbear ABCL, Common Lisp on the JVM
http://code.google.com/p/tapulli my current open source projects
http://www.manydesigns.com/ ManyDesigns Portofino, open source
model-driven Java web application framework
More information about the armedbear-devel
mailing list