[squeak-dev] Loading FFI is broken

Chris Muller asqueaker at gmail.com
Tue Nov 12 20:55:56 UTC 2013


Installer new merge: #ffi.

Worked for me..

On Tue, Nov 12, 2013 at 2:45 PM, Frank Shearar <frank.shearar at gmail.com> wrote:
> On 26 February 2013 18:36, Eliot Miranda <eliot.miranda at gmail.com> wrote:
>>
>>
>> On Tue, Feb 26, 2013 at 1:51 AM, Frank Shearar <frank.shearar at gmail.com>
>> wrote:
>>>
>>> (Installer monticello mc: (MCHttpRepository new location:
>>> 'http://source.squeak.org/FFI'))
>>>     install: 'FFI-Kernel-eem.24.mcz'. "There's a -tbn.25, but that's
>>> not important to this post"
>>>
>>> fails with an MNU: ExternalFunction class >> callingConventionFor:.
>>>
>>> As far as I can see what's happening is this:
>>> * during the loading of the mcz ExternalFunction is defined,
>>> * a method is parsed (#XOpenDisplay, which has a pragma <cdecl:
>>> X11Display* ''XOpenDisplay'' (char*) module:''X11''>)
>>> * Parser >> externalFunctionDeclaration checks whether
>>> ExternalFunction is defined.
>>> * It is, so tries to evaluate `descriptorClass callingConvention:
>>> here` and boom, because ExternalFunction class >>
>>> callingConventionFor: _has not been loaded yet_.
>>
>>
>> I thought we'd modified Monticello to load new methods first.  Did this not
>> get added to trunk?
>
> Apparently not. It still happens with an up-to-date Squeak 4.5.
>
> frank
>
>>> I've seen this kind of issue with Helvetia code: sometimes you simply
>>> have to load class-side methods first.
>>>
>>> Thoughts? Lukas worked around the issue with his Helvetia code by
>>> directly patching Monticello, and ripping out its "try to do atomic
>>> loading" mechanism.
>>>
>>> frank
>>>
>>
>>
>>
>> --
>> best,
>> Eliot
>>
>>
>>
>


More information about the Squeak-dev mailing list