Uncleanliness in sqNamedPrimitives.c

Alan Grimes alangrimes at starpower.net
Sun Apr 11 03:12:41 UTC 2004


Despite my embarasing benchmark results and the lack of 64-bit hardware 
I've pressed ahead with an attempt to make Squeak 64-bit clean.

I have everything within the image to the point that it will compile 
with few warnings.

However, when I link against the supposedly platform independant code I 
run into a whole world of ugliness....

The first problem is that a number of functions in the file mentioned in 
the subject line are written so that they take pointers of objects from 
the VM. Now that I've changed alot of the pointer functions in the image 
these functions receive values relative to the load address of the image 
rather than absolute hardware addresses. That causes some interesting 
problems.

My first instinct was to try to access my base pointer in the other 
file... That would require some futzing that I'm not quite up to yet...

The more interesting problem is that these pointers are being passed as 
_INTs_... int will compile, on most modern platforms, as a 32-bit signed 
value. This means that they will cause the failures mentioned in an 
earlier posting when the thing is loaded into the third GB of memory...

I think Andreas maintains that file, (at least the comment mentioned 
him).. Just go through everything and make sure that the parameter it 
accepts is always a true pointer type.

Then I guess I'll just have to patch togeather a full pointer when 
making primitive calls...




More information about the Squeak-dev mailing list