[plt-scheme] 299.403
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