links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Unloading Etoys from Squeak 5.2
Last updated at 6:50 am UTC on 13 June 2018
This page tracks the issues involved in separating Etoys into a separate package in
Squeak trunk


Steps for unloading Etyos
1. Open a Monticello browser,
2. Right click on Etoys package
3. select unload
4. Wait until the package is unloaded
5. In a SystemBrowser select class 'Morph' and click in the method categories pane: select 'remove empty categories'.

How to check the result
6. Bring up a halo menu on any Morph, click on viewer (eye) button. I
7. This should open an Inspector instead of an Etoys Viewer
8. Bring up World menu and click on bobjects/b
9. This should open aPartsBin. Check if there are no DNU.

Notes about current problems ...

Tim Felgentreff writes

Etoys unload works in a 5.2 image as well as it did in 5.0, before the merge. Even in a 5.0
image before the merge, unloading Etoys has removed some important methods that are send to all morphs from code in Morphic-Kernel and thus (unless
you are extremely careful), you'll end up in the emergency evaluator after a while.

Just reverting the merge won't help you, even then you'll have to go through and actually fix all
those arguably mis-categorized methods and classes to get Etoys to unload cleanly.

But after moving a few more methods (scale, positionInWorld), the PartsBin also works, now without all the Etoys stuff.

Unloading works to a certain extent but problems remain. More tests and fixes needed.

Problem inImage: Squeak5.2alpha latest update: #18074

Menu 'Project' -> 'New project' -> 'New MorphicProject'


	"Answer a list of all the morphs that pertain to tile-scripting.  A sledge-hammer"

	| all morphs |
	morphs := IdentitySet new: 400.
	self allMorphsAndBookPagesInto: morphs.
	all := morphs select: [:s | s isTileScriptingElement].
"	self closedViewerFlapTabs do:
		[:aTab | all addAll: aTab referent allTileScriptingElements].
	^ all asOrderedCollection

The method #isTileScriptingElement is no longer implemented.
There needs to be a guard an then an empty collection returned.

Probably better one method call earlier:

	"Set the project's natural language as indicated"

	ActiveWorld allTileScriptingElements do: [:viewerOrScriptor |
			viewerOrScriptor localeChanged].

This does not need to be done if there is no Etoys.

And then the next problem is

 Flaps class

 aButton label: 'save' translated font: (aFont := ScriptingSystem fontForTiles).

The method #fontForTiles is not known anymore.


Re-test the unloading process and do fixes until it runs smoothly. Report the results on this page.