<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Eliot,<div><br></div><div><br></div><div>The error I get is «&nbsp;bad argument&nbsp;» on the primitive call.</div><div><br></div><div>Another question : why Alien newC: has dataSize 8 bits ? is it for 64 bits architectures ??</div><div><br></div><div><div>Le 30 sept. 2014 à 20:38, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi Annick,<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 29, 2014 at 5:30 AM, Annick Fron <span dir="ltr">&lt;<a href="mailto:list@afceurope.com" target="_blank">list@afceurope.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
<br>
I have recently made some experiments with pharo and FFI, and I have ran into problems with callbacks.<br>
I am using linux 32 bits.<br>
First question : when calling a dynamic&nbsp; library is it necessary that it exports all symbols ? What if symbols are noted « U » (undefined) ?<br></blockquote><div><br></div><div>If you have undefined symbols in an external library, they need to be resoled by the VM or other libraries loaded in the system.&nbsp; If any are not resolved the library will fail to load.</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2) On one of my callbacks got the message « callback failed to own the VM » . Have you any idea of where it comes from ?<br></blockquote><div><br></div><div>Yes.&nbsp; This means you're trying to callback from a different thread than the VM thread. &nbsp;hat isn't supported yet.</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
3) If the callback is called&nbsp; in a different thread, is it a problem ?<br></blockquote><div><br></div><div>Yes.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">4) On Pharo I have an error on the following : is it incorrect ? It is a 64 bits problem ?<br>
Using FFI Linux examples.<br>
<br>
testGetOurWindowLocation<br>
"self new testGetOurWindowLocation"<br>
<br>
| display ourWindow aParent anX anY aWidth aHeight aBorderWidth aDepth |<br>
display := X11Display XOpenDisplay: nil.<br>
ourWindow := display ourWindow.<br>
(Alien lookup: 'XGetGeometry' inLibrary: 'X11')<br>
&nbsp; &nbsp; primFFICallResult: nil<br>
&nbsp; &nbsp; withArguments:<br>
&nbsp; &nbsp; &nbsp; &nbsp; {display.<br>
&nbsp; &nbsp; &nbsp; &nbsp; ourWindow.<br>
&nbsp; &nbsp; &nbsp; &nbsp; (aParent := Alien new: 4).<br>
&nbsp; &nbsp; &nbsp; &nbsp; (anX := Alien new: 4).<br>
&nbsp; &nbsp; &nbsp; &nbsp; (anY := Alien new: 4).<br>
&nbsp; &nbsp; &nbsp; &nbsp; (aWidth := Alien new: 4).<br>
&nbsp; &nbsp; &nbsp; &nbsp; (aHeight := Alien new: 4).<br>
&nbsp; &nbsp; &nbsp; &nbsp; (aBorderWidth := Alien new: 4).<br>
&nbsp; &nbsp; &nbsp; &nbsp; (aDepth := Alien new: 4)}.<br>
(anX unsignedLongAt: 1) inspect<br></blockquote><div><br></div><div>What's the error you get?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Annick<br>
Le 28 sept. 2014 à 21:44, David T. Lewis &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; a écrit :<br>
<div class="HOEnZb"><div class="h5"><br>
&gt; On Sun, Sep 28, 2014 at 09:04:59AM -0400, David T. Lewis wrote:<br>
&gt;&gt;<br>
&gt;&gt; On Sun, Sep 28, 2014 at 11:19:30AM +0200, Nicolai Hess wrote:<br>
&gt;&gt;&gt; Who is the maintainer of the FFI-Package for<br>
&gt;&gt;&gt; Squeak and/or Pharo ?<br>
&gt;&gt;&gt; I especially interested in the FFI-Unix examples<br>
&gt;&gt;&gt; and the state on working FFI on linux for current squeak release<br>
&gt;&gt;&gt; (AFAIK it does not work with "squeak all in one" 4.5)<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The FFI package, including the FFI-Unix examples that you mention, is at<br>
&gt;&gt; <a href="http://source.squeak.org/FFI" target="_blank">http://source.squeak.org/FFI</a>.<br>
&gt;&gt;<br>
&gt;&gt; The primary author was Andreas Raab. Eliot Miranda is the most recent<br>
&gt;&gt; contributor, and he is probably the most knowledgeable in this area.<br>
&gt;&gt; Currently, the Squeak core developers (those with commit rights to Squeak<br>
&gt;&gt; trunk) have commit rights to the FFI project, and can make updates as needed.<br>
&gt;&gt;<br>
&gt;&gt; The FFI examples for Unix work with the old FFI plugin, which is still<br>
&gt;&gt; present in the interpreter VM. The active development of Squeak FFI is<br>
&gt;&gt; taking place in Cog, and I'm not sure if the old FFI examples work with<br>
&gt;&gt; the newer plugins (which would be present in the Squeak all-in-one).<br>
&gt;&gt; The FFI plugin in the interpreter VM (i.e. trunk VMMaker) needs to be<br>
&gt;&gt; updated, and presumably the FFI examples may need some updates as well.<br>
&gt;<br>
&gt; A small but important correction: For the old plugin (currently in the<br>
&gt; interpreter VM), FFI works only for a 32-bit VM. It also works for a 64-bit<br>
&gt; VM, but only if the patches in <a href="http://bugs.squeak.org/view.php?id=7237" target="_blank">http://bugs.squeak.org/view.php?id=7237</a> have<br>
&gt; been applied (in other words, if you compiled it yourself and included<br>
&gt; those patches).<br>
&gt;<br>
&gt; This is mainly of historical interest, although it is possible that some<br>
&gt; of the 64-bit patches will prove helpful for the newer FFI plugin. But<br>
&gt; the emphasis now should be on Eliot's more recent FFI work.<br>
&gt;<br>
&gt; Dave<br>
&gt;<br>
&gt;<br>
<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>
<br></blockquote></div><br></body></html>