[General] [Ann] Lively kernel 0.8 is out!

Dan Ingalls Daniel.Ingalls at sun.com
Fri Feb 1 21:59:02 CET 2008

Greetings -

We just put out release 0.8 on our main web site:


Here is a summary of major (and some minor) changes...

1.  The entire Morphic architecture has been converted to wrap host 
SVG objects instead of extending them.  This was done in such a way 
as to change almost nothing at the level of most applications.  The 
major benefit afforded by this change is compatibility, since many 
JavaScript implementations do not support the ability to extend host 

2.  We have adopted a class system derived from prototype.js ver 1.60 
and extended with built-in support for serialization and copy 
constructors.  These conventions make it much more natural to use 
classes and class inheritance in JavaScript (the .subclass() method 
and $super optional parameter).

3. Some principles of layout have been introduced:  setBounds() has 
been split into setPosition() and setExtent() in anticipation of 
layout managers that will want to move submorphs around without 
having to recompose them internally.  Recomposition is triggered by 
setExtent() via the message adjustForNewBounds().  This is summarized 
in the comment to Morph.setBounds().

4.  An optional menu button has been added to ScrollPanes.  See the 
SimpleBrowser for an example of how to use this feature.

5.  Paned windows and their titleBars are now able to resize 
themselves proportionally (using the rectangle resize handles) 
independent of their ability to grow and shrink using the handles to 
change scale.

6.  We have the beginnings of a reflective model for execution state. 
If one sets Config.debugExtras = true, most methods are wrapped with 
a function that keeps track of the stack with method names *and* even 
the arguments.  This can be tested by, eg, typing
in any textMorph, selecting it and evaluating it with alt-d.  This 
should result in the stack being printed to the console with method 
names and argument values.

7.  This same approach makes it possible to trace code.  This 
capability can be tested by invoking the 'test tracing' option of the 
Morph menu.  Note that this will generate a lot of output if used on 
a complex object.  Best to try it on a simple rectangle or ellipse.

This would appear to be evidence that we only make releases every 3 
months or so.  However this is *not* our intention.  We are planning, 
first of all, to make the more frequent updates on our beta site 
available for anonymous download.  Also we are planning soon to open 
up our working repository, but this will be the topic of another 

Have fun;  report bugs

	- Dan, for the LK team

More information about the lively-kernel mailing list