[squeak-dev] Loading FFI is broken

Frank Shearar frank.shearar at gmail.com
Tue Nov 12 20:45:09 UTC 2013


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