[ENH] [VM] Object>>#becomeForward:copyHash:

Brent Pinkney brent.pinkney at aircom.co.za
Thu Sep 25 12:17:48 UTC 2003


Hi,

Attached is a zip archive which implements changes neccessary to proform a 
becomeForward WITHOUT changing the identity hash bits of the argument.

This change has been introduced at the request of Chris Muller who needs it 
to provide fully transparent persistance of symbols in his Magma database.

Currently this will crash your image:

	String new becomeForward: #size.

The new changes allow:

	String new becomeForward: #size copyHash: false.

This leaves #size identityHash unchanged.

The changes require changes to the virtual machine. Primitive 72 
(a.k.a.primitiveArrayBecomeOneWay) now takes the additional copyHash flag 
as an argument.

Changes to the image are also required to support the changed primitive and 
introduce #becomeForward:copyHash: and friends.

This enhancement does require coordinated (simultaneous) changes to both 
the vm and image.

Should this requirement, which was the simplest thing which could possibly 
work, prevent this from being included, I can easily rework the changes so 
that the new functionality is implemented in a separate primitive.

I would be most grateful if the vm high priests can advise me on how to 
prepare this change for inclusion as it is of clear benefit to the Magma 
database and has been discussed at length before.

Sunit tests included.

The 925kB win32 Squeak.exe is available on request for those who wish to 
test but do not wish to build their own vm.

Regards

Brent
-------------- next part --------------
A non-text attachment was scrubbed...
Name: BecomeForwardCopyHash.zip
Type: application/x-zip-compressed
Size: 101240 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030925/6a6ddc35/BecomeForwardCopyHash.bin


More information about the Squeak-dev mailing list