[squeak-dev] Loading FFI is broken

Frank Shearar frank.shearar at gmail.com
Tue Nov 12 22:50:11 UTC 2013


That pulls in the latest packages, right?

So that does work. But why does the reported version fail to load?
That's a problem still.

(While this lets me get on with what I wanted to do - add
#interleaving: to Xtreams - this is still a problem. But thanks for
the workaround, Chris!)

frank

On 12 November 2013 20:55, Chris Muller <asqueaker at gmail.com> wrote:
> 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