<div dir="ltr">Hi Frank,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 14, 2013 at 1:59 AM, Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That&#39;s the source of the problem: FFI-Kernel uses FFIConstants, which<br>
is declared/defined in FFI-Pools.<br>
<br>
Insert standard Frank rant of something called &quot;Kernel&quot; depending on<br>
other stuff. (Possibly insert standard Chris rant of a package<br>
containing a single class? :) )<br></blockquote><div><br></div><div>The problem here is that the VM depends on FFIConstants also, and the VM shouldn&#39;t depend on the rest of FFI.  So FFIConstants does need to be on its own, but could perhaps be called something different.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
frank<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On 12 November 2013 23:20, Chris Muller &lt;<a href="mailto:ma.chris.m@gmail.com">ma.chris.m@gmail.com</a>&gt; wrote:<br>
&gt; I didn&#39;t see you loading FFI-Pools in advance.  The issue you encountered<br>
&gt; may not have had anything to do with -eem.24.<br>
&gt;<br>
&gt; FYI -- FFI also has a &quot;head&quot; release on SqueakMap which documents how to<br>
&gt; load it.<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Nov 12, 2013 at 4:50 PM, Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; That pulls in the latest packages, right?<br>
&gt;&gt;<br>
&gt;&gt; So that does work. But why does the reported version fail to load?<br>
&gt;&gt; That&#39;s a problem still.<br>
&gt;&gt;<br>
&gt;&gt; (While this lets me get on with what I wanted to do - add<br>
&gt;&gt; #interleaving: to Xtreams - this is still a problem. But thanks for<br>
&gt;&gt; the workaround, Chris!)<br>
&gt;&gt;<br>
&gt;&gt; frank<br>
&gt;&gt;<br>
&gt;&gt; On 12 November 2013 20:55, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; Installer new merge: #ffi.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Worked for me..<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Nov 12, 2013 at 2:45 PM, Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; On 26 February 2013 18:36, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; On Tue, Feb 26, 2013 at 1:51 AM, Frank Shearar<br>
&gt;&gt; &gt;&gt;&gt; &lt;<a href="mailto:frank.shearar@gmail.com">frank.shearar@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; (Installer monticello mc: (MCHttpRepository new location:<br>
&gt;&gt; &gt;&gt;&gt;&gt; &#39;<a href="http://source.squeak.org/FFI&#39;" target="_blank">http://source.squeak.org/FFI&#39;</a>))<br>
&gt;&gt; &gt;&gt;&gt;&gt;     install: &#39;FFI-Kernel-eem.24.mcz&#39;. &quot;There&#39;s a -tbn.25, but that&#39;s<br>
&gt;&gt; &gt;&gt;&gt;&gt; not important to this post&quot;<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; fails with an MNU: ExternalFunction class &gt;&gt; callingConventionFor:.<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; As far as I can see what&#39;s happening is this:<br>
&gt;&gt; &gt;&gt;&gt;&gt; * during the loading of the mcz ExternalFunction is defined,<br>
&gt;&gt; &gt;&gt;&gt;&gt; * a method is parsed (#XOpenDisplay, which has a pragma &lt;cdecl:<br>
&gt;&gt; &gt;&gt;&gt;&gt; X11Display* &#39;&#39;XOpenDisplay&#39;&#39; (char*) module:&#39;&#39;X11&#39;&#39;&gt;)<br>
&gt;&gt; &gt;&gt;&gt;&gt; * Parser &gt;&gt; externalFunctionDeclaration checks whether<br>
&gt;&gt; &gt;&gt;&gt;&gt; ExternalFunction is defined.<br>
&gt;&gt; &gt;&gt;&gt;&gt; * It is, so tries to evaluate `descriptorClass callingConvention:<br>
&gt;&gt; &gt;&gt;&gt;&gt; here` and boom, because ExternalFunction class &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; callingConventionFor: _has not been loaded yet_.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; I thought we&#39;d modified Monticello to load new methods first.  Did<br>
&gt;&gt; &gt;&gt;&gt; this not<br>
&gt;&gt; &gt;&gt;&gt; get added to trunk?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Apparently not. It still happens with an up-to-date Squeak 4.5.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; frank<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; I&#39;ve seen this kind of issue with Helvetia code: sometimes you simply<br>
&gt;&gt; &gt;&gt;&gt;&gt; have to load class-side methods first.<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; Thoughts? Lukas worked around the issue with his Helvetia code by<br>
&gt;&gt; &gt;&gt;&gt;&gt; directly patching Monticello, and ripping out its &quot;try to do atomic<br>
&gt;&gt; &gt;&gt;&gt;&gt; loading&quot; mechanism.<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;&gt; frank<br>
&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt;&gt; best,<br>
&gt;&gt; &gt;&gt;&gt; Eliot<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>