Fwd: possible abcl bug: incorrectly deletes "unused" local function

Erik Huelsmann ehuels at gmail.com
Sun Apr 5 12:09:14 UTC 2015


Hi Mark,

On Sun, Apr 5, 2015 at 11:13 AM, Mark Evenson <evenson at panix.com> wrote:

> On 4/4/15 18:28, Erik Huelsmann wrote:
>
> […]
>
> The copy of the bug code you sent me got garbled as follows:
>
> (defun =sample2 (n)
>   (macrolet ((f (result x)
>                 `(list 'more (lambda () (=f ,result ,x))))
>              (g (result x)
>                 `(list 'more (lambda () (=g ,result ,x)))))
>     (labels ((=f (result x)
>                (if (zerop x)
>                  result
>                  (g (1+ result) (1- x))))
>              (=g (result x)
>                (f result x)))
>       (f 0 n))))
>
>
> I assume that one is supposed to remove all the #\= characters?
>
>
It's exactly the code that was sent to me. I think the point is that the
macrolet conceils the fact that the "=g" function is being called through
the "g" macro and that ABCL incorrectly handles the situation as dead code.


Regards,

-- 
Bye,

Erik.

http://efficito.com -- Hosted accounting and ERP.
Robust and Flexible. No vendor lock-in.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20150405/6532258b/attachment.html>


More information about the armedbear-devel mailing list