[squeak-dev] Loading FFI is broken

Chris Muller ma.chris.m at gmail.com
Tue Nov 12 23:20:14 UTC 2013


I didn't see you loading FFI-Pools in advance.  The issue you encountered
may not have had anything to do with -eem.24.

FYI -- FFI also has a "head" release on SqueakMap which documents how to
load it.


On Tue, Nov 12, 2013 at 4:50 PM, Frank Shearar <frank.shearar at gmail.com>wrote:

> 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
> >>>
> >>>
> >>>
> >>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20131112/681a49f7/attachment.htm


More information about the Squeak-dev mailing list