But the example shows SAMPLE2 being executed not =SAMPLE2.
Tersely pecked on a Nexus 5
Hi Mark,On Sun, Apr 5, 2015 at 11:13 AM, Mark Evenson <evenson@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,--