On Apr 3, 2011, at 12:36 PM, Dale Henrichs wrote:

> Norbert,
> 
> Today I have found that I can get GemTools to work on the mac using Squeak 
> 4.2.4beta1U.
> 
> Squeak 4.2.5beta1U fails when an FFI call returns an incorrect value (get a 
> Space is low error, because the size comes back as 1330942246849085449, 
> instead of a reasonable number).
> 
> The image is identical and the gci library file is identical in both cases, 
> I've just switched the vm that I'm using.
> 
> Squeak 5.7.4.1 gives an 'unsupported calling convention' with the first FFI 
> call into the library.
> 
> Cog-VM.r2378 gives a 'Could not coerce arguments' error for the FFI call that 
> returns the unreasonable number in 4.2.5beta1U...the argument to the function 
> is a SmallInteger (343552513) ... at least this error gives me hope that I 
> can figure out what's wrong with this call sooner or later ...
> 
> Anyway, the upshot is that Squeak 4.2.4beta1U is the best bet at the moment 
> on the Mac for running GemTools ... 
> 
> Oh, the image was a PharoCore-1.1.1...Finding _a_ Mac vm, that works gives me 
> an incentive to try getting GemTools running on PharoCore.1.2...
> 
> If any of the vm or FFI guys have some insight to these problems I'd 
> appreciate some pointers to what may be going on...

Here's the FFI call:

  apiGciFetchObjImpl: anOopType

        <apicall: ulong 'GciFetchObjImpl' (OopType64) >
        ^self externalCallFailed

and OopType64 is a subclass of ExternalStructure with the following fields 
declaration:

  fields
"
        (OopType64 defineFields)
"

        ^#(asOop 'ulonglong').

and the function declaration from the header file:

  int GciFetchObjImpl(OopType theObject); 

Dale

Reply via email to