[Vm-dev] Special objects array - sometimes everybody cannot be special

David T. Lewis lewis at mail.msen.com
Tue May 25 03:56:26 UTC 2010

We have some contention for slots in the special objects array. The Alien
package lays claim to slots 50 - 54, and Igor's improved finalization
would like to use slot 50. The Alien claim predates the Finalizer claim
(albeit only through an *Extentions in Alien-VMMaker-Support), and there
may already be people running VMs that rely on these special object
assignments. On the other hand, finalization is part of the core system,
so it would have been nice to put ClassWeakFinalizer at slot 50, and the
optional Alien assignments at 51 - 55.

Would anyone object to the following allocation of slots in the special
objects array? This would leave Alien mostly unaffected, but would require
Igor's finalization improvements to put WeakFinalizer at position 55 in
the special objects array, and it would require that the Alien override
be pulled into the VMMaker package such that all VMs would have the Alien
assignments in the special objects array (albeit unused in many cases).
And recreateSpecialObjectsArray would need updates to match of course.

	SelectorAttemptToAssign := 50.
	"PrimErrTableIndex := 51. in Interpreter class>>initializePrimitiveErrorCodes"
	ClassAlien := 52.
	InvokeCallbackSelector := 53.
	ClassUnsafeAlien := 54.
	ClassWeakFinalizer := 55

I seem to recall some discussion of a more flexible special objects
registry, although I can't find it right now. Pointers welcome.


More information about the Vm-dev mailing list