Great! Thanks, Eliot! That could change a lot of things.
Norbert Am 22.07.2011 um 01:34 schrieb Eliot Miranda: > 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 >
