Hi Wolfgang,

On Wed 09 Mar 2011 11:53, Wolfgang J Moeller <[email protected]> writes:

> I observe a segfault when done loading a particular compiled file.
> No such error in interpreted mode.

I'm working on this one still, and it's quite perplexing.

The example can be quite short:

    (define-syntax reset
      (syntax-rules ()
        ((_ . body)
         (call-with-prompt 'Reset
                           (lambda () . body)
                           (lambda (cont f) (f cont))))))
    (define-syntax shift
      (syntax-rules ()
        ((_ var . body)
         (abort-to-prompt 'Reset
                          (lambda (cont)
                            ((lambda (var) (reset . body))
                             (lambda vals (reset (apply cont vals)))))))))

    (define (shift* fc)
      (shift c (fc c)))

    (reset (display ((shift* shift*) 'foo)))

It seems to be that somehow this corrupts the wind list, unwinding one
dynamic frame too far, and thus causing errors later.

In any case, thanks again for this little chestnut :)

Andy
-- 
http://wingolog.org/

Reply via email to