Platform-independent changes & bug fixes:
Mac changes:
Platform-independent changes & bug fixes:
The VM has been changed to work with gcc 3.3. One side-effect is that it will read old snapshots, but will save them in a format that requires the new VM.
A bug that could cause snapshots to be unrunnable (because of specious memory exhaustion) has been fixed.
A bug that could cause specious memory exhaustion when allocating a large array has been fixed.
The Self-level profiler (i.e. “[10 factorial] profile”) has been ported and revived. This is a hierarchical, source-level profiler.
Keyboard handling has been made more uniform across platforms. (In particular, there were many keyboard commands that did not work in X on the Mac, and now they do.)
New functionality has been added to the text editor: Ctrl-arrow or Option-arrow for moving by words, Shift for extending the selection. New keyboard shortcuts have been added for senders, implementors, find slot, methods containing, and “get it.” The factory window has a list of all the keyboard commands.
The mechanism for dealing with invalid slot objects has been made more robust, and now works with fake slots as well.
Two new kinds of collections have been added: reflectiveIdentityDictionary and reflectiveIdentitySet, which compare objects using their reflective identity (rather than using their = method, as ordinary dictionaries and sets do).
orderedSet has been made more efficient.
The “fast accessing” methods for sets (if:IsPresentDo:IfAbsentPut:AndDo: and kin) now work even if the value being Put is not equal to the key (albeit at the cost of another hash lookup).
The “methods containing” operation now uses a new-style slice outliner by default.
Added support for applying a userDefinedOperation to category names as well as slots.
Arrows between outliners now get updates. Previously, if the value of a slot changed, the arrow coming from that slot would still point to the old value.
userProfile has been changed to use the display’s host name as the user’s name. (Previously, it was attempting to use the “finger” command to figure out the real name of the user, but it was not parsing the finger output correctly. The finger code is still there, but is not being called anymore.)
When reopening a world, Self will attempt to use the same display that the world was saved on. (So, for example, on the Mac, if you save an image in X and then quit and restart Self, the world will reopen in X, not in Carbon.)
Mac changes & bugs:
X bugs:
Platform-independent changes & bugs:
Mac OS X changes:
Platform-independent bugs:
Mac OS X changes:
Platform-independent changes:
Solaris/SPARC™ changes:
Mac OS X changes: