[squeak-dev] #recreateSpecialObjectsArray woes

Igor Stasenko siguctua at gmail.com
Mon Apr 12 14:17:11 UTC 2010


i attempted to load Alien-Core package into trunk image, and it failed.

One of the problem is override of recreateSpecialObjectsArray method..

I wonder, maybe we should design a nicer API for extending/reserving
slots in special objects array,
so it won't require overriding this method by every package which
needs to extend special objects, like FFI or Alien.

Another aspect of replacing this method is , that it makes problematic
to unload such package, in case one wants to unload it.

So, my proposal is to add a simple API to SmalltalkImage class, and in
order to install additional special objects one should do like:

MyClass class>>initialize

Smalltalk registerSpecialObject: myObject at: 55.
Smalltalk registerSpecialObject: myObject at: 56.


Smalltalk registerSpecialObjects: #( x y z) startingAt: 56.

upon package unload, a reverse scheme should be supported:

MyClass class>>unload

Smalltalk unregisterSpecialObjectAt: 55.
Smalltalk unregisterSpecialObjectAt: 56.


Smalltalk unregisterSpecialObjects: 3 startingAt: 56.

what you think?

Best regards,
Igor Stasenko AKA sig.

More information about the Squeak-dev mailing list