Subject: bug#15533: optimizing away noticeable effects

From: Mark H Weaver <[email-masked]>
Date: Sat, 05 Oct 2013 16:28:02 -0400

Ian Price <[email-masked]> 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.

     Mark