Mark H Weaver <[email protected]> writes:
> Mark H Weaver <[email protected]> writes:
>
>> Ian Price <[email protected]> writes:
>>
>>> scheme@(guile-user)> ,optimize (define (foo f arg)
>>> (let* ((l '())
>>> (m (if (pair? arg)
>>> (begin
>>> (set! l (cdr arg))
>>> (car arg))
>>> arg)))
>>> (lambda () (apply f m l))))
>>> $14 = (define (foo f arg)
>>> (let ((m (if (pair? arg)
>>> (begin (begin (cdr arg) (if #f #f)) (car arg))
>>> arg)))
>>> (lambda () (f m))))
>>
>> I can confirm that the same thing happens on the stable-2.0 branch.
>
> Further investigation has revealed that 'peval' incorrectly removes the
> 'l' from the call to 'apply'.
stis pointed out that 2.0.5 does not have this bug. I'm currently doing
a git bisect to determine which commit introduced the bug.
Mark