[squeak-dev] Re: [Pharo-project] help needed with the new FFI plugin...

Janko Mivšek janko.mivsek at eranova.si
Fri Jul 22 08:07:30 UTC 2011


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!

Janko

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.
> -- 
> best,
> Eliot
> 

-- 
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si



More information about the Squeak-dev mailing list