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