QuickSilver Version 0.2
February 4, 2011
The demo in the image above shows an example of executing a block closure.
| blk a b |
a := 4.
b := 5.
blk := [:x :y | a*x + b*y].
blk value: 15 value: 77
which produces a result of 5005 – and running the same code in Squeak also produces 5005.
Version 0.2 has several new features:
— a system dictionary named ‘Smalltalk’
— execute “Smalltalk keys” to see names in global dictionary
— complete object system including classes and meta-classes
— some basic methods including “basicNew”, “class”, “superclass”
You can now use global variables:
X := [:a :b | a*3 + b].
X value: 4 value: 5
Again, the code works exactly the same way in Squeak.
The class system works the way that you would expect:
123.45 class class
123.45 class class class
'hello world' class class class class
123.45 class class class class class
123.45 class superclass
123.45 class superclass superclass
You can also now create instances of objects:
Of course, there is lots of stuff still missing.
By tomorrow, there will be:
— the ability to add new classes
— add methods to classes
— send messages to objects
— initial loading from a “startup.st” file
Getting the object system working was a bit complicated because there are a number of circular dependencies. However, it seems to be working correctly now.
Another day or so and we can start building some basic QuickSilver tools (in QuickSilver Smalltalk).