Alpha updated

Brian Rice water at
Wed Mar 30 10:43:49 PST 2005

Both the alpha images and VM sources have been updated. Here's a 
summary of the changes:

(1) Removal of traits-less objects; you can't call any methods on them 
- mainly it manifests in "Unprintable object" errors. There was some 
trickery in the type system objects that used objects with removed 
traitsWindow slots. This has been re-implemented using a macro; see 
src/mobius/types.slate. Also, traitsWindow slot removal will throw an 
error now.
The Raw object, an undocumented (and unused) feature, was also removed 
due to this problem of not having any traits (which prevents calling 
any message with it).
Uses of sendTo:through: in root.slate which complicated a lot of the 
sources have been removed. These were here only because of the presence 
of traits-less objects.
traits and traitsWindow slots were ensured to be immutable.

(2) Additions to the method query protocol. Now, #selector callers and 
#selector implementations will return methods which call that name and 
methods with that name, respectively. Both will recursively search from 
a specified root object given with optional &in:. vm/interp/map.slate 
gained some utility methods like methodsNamed:(at:) and methodsCalling: 
to make the querying simpler.
isAbstract was added to see if a given method did anything but call 

(3) Thanks to Olli, ArrayMD (multidimensional array) now has a 
pretty-printing handler and read/write streams. Traversal order is 
fixed as yet, but I am working on variable optional specification of 
traversal order when requesting streams.

(4) A VM safety check was added for primitive newSize: methods, which 
makes a minimum of 0 for size. Previously, calling newSize: with a 
negative size argument would crash the VM. Make sure to rebuild that VM 
(it's getting rare, so I figure I need to remind people)!

(5) A trivial commentTemplate method will look at an object and do some 
fuzzy stuff to build a default comment. It returns a String. See 

(6) More of Paul's SDL updates have been incorporated.

(7) I tried to make REPL and SmartREPL more compatible, but SmartREPL 
is starting with errors these days that I haven't fully fixed.

(8) More File Locator fixes for relative paths. See path.slate.

Brian T. Rice
LOGOS Research and Development

More information about the Slate mailing list