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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Dan Ingalls-3
Greetings -

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

        http://research.sun.com/projects/lively/

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@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
objects.

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
        Function.showStack()
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
message.

Have fun;  report bugs

        - Dan, for the LK team


Reply | Threaded
Open this post in threaded view
|

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

Patrick Mueller
On Feb 1, 2008,@3:59 PM, Dan Ingalls wrote:

> 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).


In case you haven't seen it, the qooxdoo JavaScript library has an  
interesting class system, described here:

        http://qooxdoo.org/documentation/0.7/class_declaration

While I don't have any practical experience with it, it certainly  
seems 'cleaner' than some of the ad-hoc class-y-ness I've seen in  
other JS frameworks. @least parts of it; 'super' stuff is still  
awkward.

Patrick Mueller
http://muellerware.org/