[squeak-dev] Closure testers needed

Andreas Raab andreas.raab at gmx.de
Thu Jul 16 06:28:34 UTC 2009


Folks -

I have a closure version for the trunk that's ready for testing. Since 
converting an image to closures is tricky I would like a couple of 
people to give it a test run before I push it for real. I am interested 
in both positive feedback ("works for me") as well as negative feedback 
("crashes, hangs, core-dumps when trying to load x,y,z") in particular 
if you use custom 3.10[.2] based images.

In order to test the load process you need to:

1) Get a closure-enabled VM from:
http://squeakvm.org/win32/release/SqueakVM-Win32-3.11.3-bin.zip (win)
ftp://ftp.smalltalkconsulting.com/Squeak%204.1.1beta2U.app.zip  (mac)

2) A 3.10-based image. I used 3.10.2 but any 3.10-based image should 
work. Make really, *really* sure you launch this image with the 
closure-enabled VM or you *will* die along the way.

3) The updated MonticelloConfigurations package from 
http://source.squeak.org/trunk (if you are a trunk user already you can 
skip this step)

4) Run the following doIt:
    MCMcmUpdater updateFromRepositories: #(
	'http://source.squeak.org/trunk'
	'http://squeaksource.com/MCUpdateTest'
    ).

When you run the above doIt, the following will happen:
* First, you will load the updates from the trunk to make sure you're as 
close as reasonably possible to a uniform starting point.
* Then you will load Eliot's closure code in carefully crafted form as 
to not screw up in the middle.
* At the end the entire system will be recompiled using closures.

When all of it is complete, you are already running with real closures. 
Test it by opening a workspace and running our good old friend fib(n):

fib := [:n| n < 2 ifTrue:[1] ifFalse:[(fib value:n-1) + (fib value:n-2)]].
fib value: 10.

There is then only one step left. In order to expunge any leftover 
contexts, do the following:
* Close all open SystemWindows (browsers, monticello, filelist etc).
* Hit Alt-Period and terminate the resulting notifier (this is to get 
rid of the Morphic UI process that holds onto contexts)
* Destroy all shared global flaps (World Menu >> Flaps >> Destroy all 
shared flaps)
* Open a new workspace, execute "Utilities postRecompileCleanup"

If everything is in order, you will be congratulated that the bootstrap 
is complete. If not, you will end up with inspectors on any left-over 
contexts and unbound methods and you will have to to figure out how to 
get rid of them (but feel free to ask here; someone might have an idea).

Thanks for your help and let me know if the load process works for you!

Cheers,
   - Andreas



More information about the Squeak-dev mailing list