Hi Ken,<br><br><div class="gmail_quote">On Wed, Nov 10, 2010 at 10:20 AM, Ken Treis <span dir="ltr">&lt;<a href="mailto:ken@miriamtech.com">ken@miriamtech.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
What&#39;s the status of Alien in the new Cog VM? I was able to load Alien into Pharo 1.1.1 running Cog, and some simple callouts worked (e.g. `CRLibrary libraryVersionString` in CairoGraphics. But every callout with arguments failed in primFFICallResult:.<br>

<br>
Alien works perfectly for me in Pharo 1.1 using JMM&#39;s VMs when I load the Pharo 1.1 version from ConfigurationOfAlien, but I admit I haven&#39;t tried 1.1.1 in this arrangement.<br>
<br>
Is there something that&#39;s changed in Cog&#39;s Alien primitive implementation?<br></blockquote><div><br></div><div>IIRC, the Alien callout code is written assuming stacks grow up (in MethodContext instances) whereas in the Cog Stack and JIT VMs stacks grow down.  So the glue in platforms/Cross/plugins/IA32ABI/dabusiness.h needs rewriting.  Specifically the second loop over the arguments at line 45 needs to mimic the code at line 17.  (I know, insane; why have two different loops in the first place?  counting down towards zero can generate slightly faster code than counting up towards a limit; you need one less register).</div>
<div><br></div><div>But I&#39;m hoping that the ALien callouts will die the death soon.  I have Alien callbacks integrated with the FFI and of course the ALien data manipulation code works fine.  So if you&#39;re eager to have Alien callouts work see whether the above change fixes things, in which case I can integrate the fix.  But if you&#39;re not so eager you could wait for me to push out the FFI changes, but that could take a few weeks.</div>
<div><br></div><div>HTH</div><div>Eliot</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888"><br>
--<br>
Ken Treis<br>
Miriam Technologies, Inc.<br>
<br>
<br>
</font></blockquote></div><br>