[ENH[VM] becomeForward:copyHash: (2)

Brent Pinkney brent.pinkney at aircom.co.za
Fri Sep 26 08:20:34 UTC 2003


Hi,
This is my second sumission of this enhancement. This version is compatible 
with the existing image.

Attached is a zip archive which implements changes neccessary to perform 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. A new primitive, 249,
	
	Interpreter>>#primitiveArrayBecomeOneWayCopyHash

has been introduced. It is the same as the existing primitive, 72, 
primitiveArrayBecomeOneWay, except that it accepts 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 NOT require coordinated changes to the virtual 
machine and image. It is possible to change the virtual machine and use the 
existing images. Only when the new functionality is required, should the 
image changes be installed.

Testing
-------
The zip archive includes a SUnit test class.
In addition, I have used the new virtual machine to load all updates from a 
pristine 3.6alpha[5325] to 3.7alpha[5423]. I have performed this test with 
and without the image changes installed.

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.

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

-- 
Brent Pinkney
Aircom International (SA) cell: +27 83 518 4167
tel: +27 11 324 3615
fax: +27 11 784 8027 e-mail: brent.pinkney at aircom.co.za 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: BecomeForwardCopyHash.zip
Type: application/x-zip-compressed
Size: 8276 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030926/25e1196b/BecomeForwardCopyHash.bin


More information about the Squeak-dev mailing list