Squeak: A Free Smalltalk system - RISC OS Specific Downloading Info.

Downloading Squeak 3.8 for RISC OS Machines

You need three major files to run Squeak:

  1. A Virtual Machine (or more commonly VM)
  2. An image file
  3. A changes log

The Virtual Machine for RISC OS is available here as Squeak38VM/zip Note that the package already includes the Sources file (it's the big one named Sources/V3) since we expect that file to live in the same directory as the VM executable file it is convenient to include it for you. Please read the damn !Help file. It's there for good reasons.

The two other files - the image and changes - can be downloaded

The image and changes file are a matched pair as you will notice when you save the image with a new name; something you should do pretty much immediately so that you keep a 'virgin' image available. If you have a 'foo/image' you ought to have a 'foo/changes'. As long as they are in the same directory as each other things will work ok (but see note regarding raFS below) and it is possible to run across an NFS or similar connection if you don't mind the performance hit when writing to the changes file.

Your initial downloaded system should look something like this:-

This latest version is Iyonix compatible and seems to be about twice as fast in macro-benchmarks results as the earlier VMs. It requires you to install the Cerilica DeepKeys module which is

so that the proper modifier keys (ctl, shift etc) can be associated with keypresses. The 37b6 VM package also includes Dave Ruck's TimerMod to provide millisecond timing accuracy and the 38a VM package includes my own millisecond timer module which works rather differently.

You can run any recent virtual image from the ftp://st.cs.uiuc.edu//pub/Smalltalk/Squeak/ ftp site. You will see a long list of version-numbered directories and in general you should look at the highest numbered and fetch the highest numbered zip file - they're normally named in the manner of 'Squeak'+version-number+update-level.zip. All you need to do is extract the two files it contains and set the filetype of the foobar.image file to 'stimage' as mentioned above.

Known problems and omissions

Caveats

There are several things known to be wrong, and probably lots not known. Of course, I don't know how much is not known. It is always important to realise that whilst there are many things we know we know and some that we know we don't know, there are also things that we don't know that we don't know. Of course there are also things that we don't know we know, to completely obscure the picture. I am indebted to Donald Rumsfeld for this deep insight into the nature of the world.

Problems

  1. There are lots of places where the filesystem can have problems. Two main factors cause this
    1. Squeak is ported to many machines and far too many people make bad assumptions about the permissible form of file names. RiscOS is the only popular OS to have problems with long filenames (pre RiscOS 4 of course), a dot used for filename extensions etc. This shouldn't be a problem in an object oriented system, since we should be able to catch bad behaviour and correct the file names, but there are many places currently in the system where something like 'fred the great.text' is used as a filename. To get around this problem, I have made Squeak versions >2.0 accept UNIX style filenames, i.e. use a '/' as the directory separator and '.' for filename extensions. This is a minor inconvenience in that you have to remember the change from normal RiscOS practice, but we are all getting used to URLs anyway, so it should not be too painful. It does at least save most of the filename troubles with Squeak code.
    2. It is assumed that you can open a file multiple times to read, which RiscOS's normal filing system does not do. This is used for quite a few things in the current system and so several useful facilities just wouldn't work . I have had considerable success in using Richard Atterer's !raFS filing system on RISC OS 3.7-4.0 to allow both long filenames and multiple openings. Go to RA's website to download it. I used it for almost all my Squeak work on the RPC. RISC OS 4 solved the need for !raFS for the long filenames, but it's still very useful for allowing the files to be opened multiple times. On the Iyonix we cannot use !raFS and I have recently developed a VM specific solution that seems to be solid and effective. I have not been able to test it on an RPC.
  2. Hotkeys don't work quite like in RiscOS. Again, since Squeak was first created on a Mac, it is rather biased towards the Mac keyboard layout and shortcuts. Mac's have both a 'cmd' key and a 'ctl' key (and the 'option' key of course but don't worry about that for now) and RPCs have 'ctl' and 'alt' keys. Sadly, we can't map one to the other in a simple way since there are no keypress events generated for most alt-keys. So to get around this I have separated out the left and right ctl keys. The LEFT one is used for 'ctl' (think controL) and the RIGHT for 'cmd' (think commanD => dexter => right, yes I know it's a bit of a stretch). There are still some confusions beyond this in that there are shift-cmd hotkeys available in Squeak, but the ctl key can be used to access them as well. There is a help window that describes the available hotkeys (use the screen menu, choose 'help...' then 'command key help') that should give you some assistance in understanding things. The ctl-<, ctl-= and cmd-shift-+ actions don't work because RiscOS doesn't even generate keypress event for those keys. Use the PrintScrn/SysRq key to interrupt the system and give you access to the debugger -- most platforms have adopted the Mac cmd-dot key for this. The latest VM has a command line option (see the !Run file) to swap the left & right ctl key meanings which might suit some people.

Ommisions

  1. no useful icon-bar capabilities yet. Clicking on the icon bar will bring the Squeak window to the top. I'll put a menu on it someday.
  2. no serial port or sound output, nor even MIDI. Somebody please volunteer to help me fix this! Squeak can do amazing sound stuff on other platforms (including speech output of reasonable quality) so it's a real shame to miss this on RISC OS.

Recent changes to the RISC OS VM

May 2006 release 3.8 final and 3.9 compatible VM

Newer release to include the final versions of the 3.8 image and changes log, along with a VM that will also support the 3.9 system available from theSqueak.org website

June 2005 release 3.8 alpha

Changed to a different millisecond time system since dave ruck's clock reading gets messed up by the RTCAdjust altering various 'constants' on the fly. The new system uses Rik Griffin's HALTimer and makes a 1 mS ticker. The VM asks for the address in RMA where this value is kept and just reads it instead of a using SWI call with long division. I cut the rate at which mouse movements are checked to 200/sec instead of many thousand. This makes for less flooding of the system with pointless events and speeds up the apparent UI responsiveness quite a bit.

This is also the first release built from a codebase that is intended to be 64bit cpu compatible. Not very exciting for RISC OS but big news for Athlon users.

Feb 2005 release 3.7


email me at tim@rowledge.org