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