Islands for Squeak3.4 and beyond

Daniel Vainsencher danielv at
Sun Feb 23 01:13:37 UTC 2003

[ClassBuilder bug blocking Islands]

Like I mentioned in the context of the Traits work, this should not be
hard to work around. The temporary, ugly hack is to add a class variable
that will hold an IdentityDictionary from instances of ClassDescription
to the values of the desired variables. Create accessor methods in the
instance side that actually access the class variable, and when we have
CB fixed, move the variable from class-side to instance-side.

Down sides are performance hit of going through a dictionary, and
needing to later remove said hack.

Example attached adds a virtual variable testData to ClassDescription.

PS I hope this technique doesn't happen to interact with the Islands
restrictions themselves, that would be a bummer...

Boris Gaertner <Boris.Gaertner at> wrote:
> >>LOADING changeset PrivilagedMethods.9.cs
> This change set contains a modification of class
> ClassDescription. An attempt is made to add an
> instance variable to that class. This requires recompilation
> of the entire system and in Squeak 3.4 it ends with a fatal error.
> This is the same error that Nathanael Schärli <n.schaerli at>
> reported when he announced Traits (mail from Feb 02, 2003)
> We really really have to fix that problem but at this moment I do
> not have the time to do it. (It is not a simple thing to understand
> what is currently wrong. Things are additionally complicated by
> the fact that recompilation of the entire system is time consuming,
> so the testing alone requires many hours)
> Since Squeak 3.2 we had two change sets that substantially
> modified the ClassBuilder; these are change sets 4956 und 5092.
> I tried to load Island into Squeak 3.0. Recompilation of
> class ClassDescription and all its subclasses was possible, but
> later I ran in problems that I currently do not understand.
> For this evening my resumee is that it is not that easy to
> bring Island to newer versions of Squeak. Sorry!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CDNewVar.cs.gz
Type: application/octet-stream
Size: 318 bytes
Desc: not available
Url :

More information about the Squeak-dev mailing list