[squeak-dev] [Cuis] FFI problem with ExternalAddress

Phil (list) pbpublist at gmail.com
Tue Feb 16 17:04:22 UTC 2010


I'm not sure whether my problem is specific to Cuis or is more  
generally related to installing FFI.  I've loaded FFI (from FFI-Kernel- 
ar9) by extracting the archive, filing in the extracted .st file, and  
in a workspace executing:

(Smalltalk at: #ExternalType) initialize.
(Smalltalk at: #ExternalStructure) compileAllFields.

FFI appears to be working at least somewhat (i.e. I'm able to make  
basic OpenGL calls which are behaving as expected) but when I attempt  
to work with externally allocated memory, I'm having problems. With  
the following example:

extern := ExternalAddress allocate: 12.

I observe the following behavior:
1) Do it executes without error
2) Most things that attempt to look at the result (i.e. print it)  
crash the image
3) extern class returns CompiledMethod
4) Accessing it with what should be valid indexes using byteAt: and  
byteAt:put: either result in an invalid index error or crashes the  
image.

The VM I'm using is 4.2.2 on OS X and I'm not able to reproduce the  
behavior in any of my non-Cuis images and am curious if there's an  
installation/configuration step I've missed re: FFI or if there is a  
bug specific to Cuis that might be causing this issue?

Thanks,
Phil



More information about the Squeak-dev mailing list