From: Matthew Flatt <mflatt@cs.utah.edu>
To: plt-scheme@fast.cs.utah.edu
Date: Wed, 25 Jul 2001 16:53:41 -0600 (MDT)
Subject: 199.18
The v200-tagged code in CVS for MzScheme and MrEd is now version 199.18.
The changes are mostly small ones from my long-term "to do" list:
* Changed mouse-event% and key-event% positions (x and y) to be
inexact integers. For a scrollable, scalable canvas, mouse clicks
are now reported in client pixels (as the documentation has always
claimed!) instead of DC coordinates (or some random combination of
client and DC coordinates, depending on the platform).
* Added `container-flow-modified’ method to area-container<%>, which
notifies the geometry manager that the result of `place-children’,
etc. has changed.
* Added ’size-n/s, ’size-e/w, ’size-ne/sw, and ’size-nw/se built-in
icons.
* Added colors to `the-color-database’ so that all 140 "standard"
HTML colors are in the database.
* Added ’wheel-up and ’wheel-down "key" events.
* X: Added Motif-style behavior for the middle button in scroll bars
and sliders.
* Windows: Implemented mouse-wheel scrolling in editor-canvas%.
The canvas intercepts ’wheel-up and ’wheel-down events instead of
passing them on to a displayed editor.
* Quoted portions of a symbol (using | or \) preserve their case,
even when symbols are read without case-sensitivity. (Quoting
should have always worked this way, but I didn’t know better.)
* Added an optional third argument to `tcp-listen’. A true value for
the argument causes a listener to be created even when the port is
still involved with a TIME_WAITed connection.
This defeats certain guarantees of the TCP protocol, which is why I
never implemented it before. (Also, most everything I read on the
topic recommended not defeating the protocol.) But many
applications --- notably web servers --- can live without the
guarantees.
* In "unit.ss" and "unitsig.ss", changed
`global-define-values/invoke-unit’ and
`global-define-values/invoke-unit/sig’ to
`namespace-variable-bind/invoke-unit’ and
`namespace-variable-bind/invoke-unit/sig’, to match the new name for
`global-defined-value’.
* Changed the default error value conversion handler to print values
using the current global port print handler.
* Attempting to write a bytecode that contains unmarshalable constants
now raises an exception. (Effectively, the exception is moved from
read time to write time, since reading such a bytecode would fail
anyway).
* Re-renamed "2k" to "3m" (for "moving memory manager").
Why change again? Garbage collection is inherently imprecise, making
"precise garbage collection" an awkward term. "Moving memory
manager" more clearly explains the difference as it affects
extension/embedding programmers. Also, the number--letter
combination looks better. Finally, unlike "2k", we have another
2,997,999 years to get the conversion right before the name goes out
of date.
* Added a -M <coll> flag to MzScheme and MrEd as a shorthand for
-L <coll>.ss <coll>.
* Fixed a bug in code that cooperates with the scheduler; the bug
could trigger a crash in `tcp-accept’ because the needs_wakeup
function was called without a preceding call to the check function.
The MzScheme, MzLib, MrEd, mzc, and Inside MzScheme doc bundles have
been updated, but many section names are mis-recorded in the Help Desk
index for MrEd; I’ll fix that tomorrow.
Matthew