Mark Evenson writes:
On 9/18/09 1:36 PM, Mark Evenson wrote:
Filed as [bug ticket #63][63]. Thanks for the report.
Tentatively fixed in [r12151][1], as it seems as if the code to convert the thrown Go throwable to the corresponding LispError had been inadvertently left out. But something that easy has me suspicious (was this left out for some other reason), so I would appreciate if one of the other developers could review this bug before we close it in Trac.
I don't know why there's EVAL, and a separate INTERACTIVE-EVAL. Perhaps Peter Graves can comment about this.
That schism is somewhat useful in this case because your change makes this fail:
(assert (eql :go (prog () (sys::interactive-eval `(funcall ,(lambda () (go :go)))) (return 42) :go (return :go))))
but the same involving the standard EVAL actually works:
(assert (eql :go (prog () (eval `(funcall ,(lambda () (go :go)))) (return 42) :go (return :go))))
-T.