[Vm-dev] Re: [squeak-dev] Re: [Pharo-project] help needed with the
new FFI plugin...
stephane.ducasse at gmail.com
Fri Jul 22 09:06:24 UTC 2011
On Jul 22, 2011, at 10:07 AM, Janko Mivšek wrote:
> Wow, Eliot, thanks for that so long waited function a lot!
> Threaded FFI is namelly a must for Squeak/Pharo to be used seriously
> everywhere where a connection to the other worlds is needed. Which is a
> common situation when working on "enterprise" level information systems.
> Thanks again! Thanks also to all investors/donators who invested to this
> so important work!
> S, Eliot Miranda piše:
>> Hi All,
>> today I committed the threaded FFI plugin along with the threaded VM
>> and hope to be able to support people in doing threaded FFI work on the
>> x86 platforms really soon now (Esteban, amongst others, this means you
>> ;) ). But to put the image-level code that uses the new FFI plugin into
>> production the standard VM needs to be upgraded to not crash with the
>> ExternalFunction image changes the new threaded FFI plugin wants. The
>> main change is that ExternalFunction changes size, gaining a stackSize
>> inst var which is used to tell the FFI plugin how much stack spacer to
>> reserve for marshalling (its computed on first use). The best way for
>> this to happen is to start using the ThreadedFFIPlugin as the standard
>> plugin in the Interpreter VM. The ThreadedFFIPlugin overall is simpler
>> than the old FFI plugin (no assembler support code) and better (fully
>> reentrant). But for this to happen we may need to implement the
>> platform=specific parts of the ThreadedFFIPlugin (still entirely
>> Smalltalk code) for PowerPC and ARM (and perhaps others, SPARC??). I
>> understand what has to be done and I can explain it to anyone interested
>> in working on the problem, but I don't have any hardware with which I
>> can test the results so its pretty pointless my doing the work and
>> producing something inevitably broken. So are there people out there
>> who would be interested in doing the port to PPC and ARM? It means
>> fleshing out the classes
>> ThreadedARMFFIPlugin ThreadedFFICalloutStateForARM
>> ThreadedPPCBEFFIPlugin ThreadedFFICalloutStateForPPC
>> and having a solid understanding of how alloca works to do stack
>> allocation and how the ABIs on ARM and PPC pass registers.
>> here's hoping there are a few good low-level people who would be interested.
>> Let me know.
> Janko Mivšek
> Smalltalk Web Application Server
More information about the Vm-dev