[Openmcl-devel] tail calls in 1.3 IDE?

Gary Byers gb at clozure.com
Thu Aug 13 14:00:47 PDT 2009

Someone checked in some code in some EasyGUI source file at some point
that does something like:

(declaim (optimize (safety 3) (debug 3) ...))

They presumably intended to wrap that in an (EVAL-WHEN (:COMPILE-TOPLEVEL) ...

As Gail noted, that was fixed in the trunk a while ago but was still
present in 1.3 until a minute or two ago.

On Thu, 13 Aug 2009, Brian Hayes wrote:

> As far as I can tell, tail-call optimization has stopped working in
> 1.3 versions of CCL when running under the IDE. Are others seeing this
> same change in behavior? Was the change deliberate? Is there some
> setting that controls it?
> Details:
> (defun tail-test (n)
>  (if (zerop n)
>    'succeed
>    (tail-test (1- n))))
> (tail-test 1000000)
> This succeeds under CCL 1.2 in the IDE (I've tested PPC and x8664
> versions). It also succeeds in 1.3 when running in the terminal. But
> it fails with a stack overflow in 1.3 under the IDE. The backtrace
> shows some 60,000 stack frames. (I've tested fresh downloads of the
> prepackaged .dmg for PPC and x8664 as well as a newly svn-updated 1.3-
> r12575M  (DarwinX8664). )
> It looks as if a tracing or debugging facility may have been turned on
> by default in the IDE. If so, can someone show me the magic switch
> that turns it off?
> Thanks.
> Brian Hayes
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list