Alpha updated

Brian Rice water at
Thu Mar 31 13:38:10 PST 2005

(9) addPrototype:derivedFrom: was modified to re-use the existing main 
traits object when a definition already exists for the prototype. This 
seems to make reloading of source files have greater safe coverage. 
Basically aside from bootstrapping issues (anything that would break 
the compiler if not in a consistent state as the compiler is working), 
all files should reload without causing errors, particularly missing 
attributive types (e.g. Collection Condition, which is defined in a 
separate file from collection.slate for bootstrap reasons, will now not 
be clobbered).

On Mar 30, 2005, at 10:43 AM, Brian Rice wrote:

> 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 
> overrideThis.
> (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 
> derivable.slate.
> (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