Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
About Squeak in General
Last updated at 10:00 pm UTC on 8 December 2006
About Squeak in General
Squeak 2.4b of April 22, 1999
Squeak is a work in progress based on Smalltalk-80, with which it is still reasonably compatible. Please see the various introductory windows for more information about this particular release.
The Interpreter
Squeak includes a complete simulation of its ObjectMemory, Interpreter, and BitBlt, each of which began with the "Blue Book" spec. The object memory is a completely new direct-pointer object model with compact headers and an incremental compacting garbage collector. The interpreter has been worked over for efficiency, and improved handling of 32-bit LargeIntegers allows it to simulate itself at reasonable speed. See the various class comments in the Squeak Interpreter category. The Squeak system also includes a translator to C. Together these can generate complete C source code for the interpreter. If you take advantage of this capability to port the system to other platforms, we would like to hear about it.
Color graphics
Squeak's BitBlt has been retrofitted with support for variable-depth color and many performance enhancements. It has several added functions including a paint mode that supports transparency, and an alpha-blend mode for 32-bit color. It also has a "warp-drive" variant that will scale, rotate, and otherwise deform bitmaps in a single pass. Interested users will want to try
Display restoreAfter: [WarpBlt test1], and
Display restoreAfter: [WarpBlt test3].
The warp drive is also capable of limited anti-aliasing. You can compare the results by executing
Display restoreAfter: [WarpBlt test12].
Two other demos of possible interest (see comments) are
Display restoreAfter: [BitBlt alphaBlendDemo], and
Display restoreAfter: [BitBlt antiAliasDemo].
Sound
Squeak includes base classes and some simple primitives that support real-time background generation of sound and music. Interested users will want to try
AbstractSound stereoBachFugue play.
Squeak also includes a MIDI file reader. If you are connected to a network, you should try one of...
MIDIFileReader playURLNamed:
'http://squeak.cs.uiuc.edu/Squeak2.0/midi/wtellovr.mid'.
MIDIFileReader playURLNamed:
'http://squeak.cs.uiuc.edu/Squeak2.0/midi/toccFugueDmin.mid'.
If you're short on horsepower, you'll do better with...
MIDIFileReader playURLNamed:
'http://squeak.cs.uiuc.edu/Squeak2.0/midi/tlmnflut.mid'.
Morphic
Morphic is a completely new graphics framework for Squeak. Examples can be explored in the 'Play With Me' windows, or by following the accompanying Morphic scripting tutorial. We have loaded lots of things into Morphic. It's a little cluttered and a bit slow, but it's an architecture we like, and we'll be cleaning it up and tuning it over the next year.
Balloon
Squeak now includes a completely new outline-based graphics subsystem named Balloon. Balloon graphics are independent of scale and rotation, and may be rendered simply or with 2 degrees of anti-aliasing. For a quick demonstration, execute...
(FlashMorphReader on: (HTTPSocket
httpGet: 'http://www.audi.co.uk/flash/intro1.swf'
accept:'application/x-shockwave-flash'))
processFile startPlaying openInWorld.
This example also demonstrates that Squeak includes a fairly complete implementation of the ShockWave graphics file format, with conversion to Balloon graphical objects. Since it's all in Squeak, you can stop the player and take apart the morphic balloon objects.
Balloon has also been interfaced to TrueType outline fonts. There is an example in Play With Me - 3 (this uses 16-bit color).
Balloon-3D
New to Squeak 2.4 is the first Balloon 3D engine. It can be seen in action by entering Play With Me - 7, and running the script there. Note: you MUST have a Squeak 2.4 VM and a Squeak3D plugin in the same folder with it to run PWM-7.
Networking
This version of Squeak supports sockets. If you are on a web-connected network, you might want to try...
HTTPSocket httpShowGif:
'http://squeak.cs.uiuc.edu/Squeak2.0/midi/Squeakers.GIF'.
There are many more examples in the Socket class.
Also included with this release is a complete WikiWiki server. See the accompanying information on WikiWiki.
Squeak's FileList has also been extended with network access.