From: Matthew Flatt <>
Subject: [plt-scheme] 299.403
Date: Tue, 4 Oct 2005 15:06:44 -0600

MzScheme and MrEd are now version 299.403 in the SVN repository trunk.


 * Added #: keywords, `keyword?’, `keyword->string’, and `string->keyword’.

 * Added ephemerons, which are a generalization of weak boxes. An
   ephemeron has a key and value. If the key is unreachable (or only
   weakly reachable), then the value in the ephemeron is replaced by
   #f. Most importantly, and unlike a weak hash-table mapping, simply
   referencing the key through the value does not cause the value to be
   retained; the GC retains the value only if the key is reachable
   through some other reachable value.

   Combining a weak hash table with ephemerons yields a weak map that
   works right even when a value has a reference to its key.

   Internally, MzScheme now uses ephemerons to implement the mapping
   thread-cell * thread -> value (where the value should be GCed when
   either the thread or thread cell becomes unreachable).

 * Inside MzScheme and mzc: Details on cooperating with the 3m precise
   collector are now documented, and mzc supports a new --xform mode
   for automatically making simple extensions work with 3m. See "Inside
   PLT MzScheme" for details. Also, the `pre-install’ procedure from
   "" in "make" now supports 3m-extension builds
   through xform.

 * Windows: fixed miscellaneous Unicode problems (as exposed by the
   Chinese translation for DrScheme).