From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu 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. Changes: * 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 "setup-extension.ss" in "make" now supports 3m-extension builds through xform. * Windows: fixed miscellaneous Unicode problems (as exposed by the Chinese translation for DrScheme). Matthew