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'.
Mark