On Tue, Feb 26, 2013 at 1:51 AM, Frank Shearar frank.shearar@gmail.comwrote:
(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?
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