[racket] call/comp, eq? and call-with-continuation-prompt

From: Spencer Florence (spencer at florence.io)
Date: Mon Mar 10 21:44:19 EDT 2014

For some reason the below program returns false:

#lang racket
(define g #f)
(define p (make-continuation-prompt-tag))
(define (t)
  (let ([a (cons 1 2)])
    (call-with-composable-continuation (λ (k) (set! g k)) p)
(call-with-continuation-prompt t p)
(eq? (call-with-continuation-prompt g p)
       (call-with-continuation-prompt g p))

This happens with call/cc as well. From my understanding a should be
allocated before the continuation is captured, so the two calls to g should
return the same cell. If I remove the prompt tag the program returns true.

Anyone have any clue whats going on or how to fix?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20140310/32cb94bf/attachment.html>

Posted on the users mailing list.