[racket-dev] Uninterned symbols in compiled code

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sat Jul 7 08:38:29 EDT 2012

At Fri, 6 Jul 2012 15:19:25 -0400, Carl Eastlund wrote:
> While I'm thinking about this -- since gensym in macros is a common
> error, is it possible we could fix it so that it works?  The unique
> marks on generate-temporaries's output are marshalled in a way that
> ensures marks in one module are consistent with others, I believe by
> tracking the originating module.  Would it be possible to do the same
> thing with uninterned symbols in compiled code, keeping around a
> reference to the originating module to preserve eq?-ness?

I think this could be made to work in the case of use a gensym for an
identifier. Different bytecode loads would still produce different
gensyms, but an identifier based on a gensym could still get its
binding from the originating module in the same way as an identifier
from `generate-temporaries'. I'll try that out sometime.

Posted on the dev mailing list.