
2009/10/26 Nick Coghlan <ncoghlan@gmail.com>
Michael Foord wrote:
If (for example) Unladen Swallow were to (eventually) be successful in removing the GIL and moved away from reference counting then it would be possible to retain binary API (ABI) compatibility with extensions written for 'standard' CPython.
The GIL is simply faked. IronPython code is not restricted by the GIL but only one code path into Ironclad can acquire the GIL at a time.
For reference counting we have a hybrid system keeping 'bridge' objects alive whilst the C extension has a reference to them but they may or may not be in use from the IronPython side.
Something I've long been curious about (but never even come close to having the time to research) is the idea of using CPython extensions with PyPy. It sounds like that would involve an effort in a similar vein to porting Ironclad to Jython (i.e. porting the back end to PyPy instead).
Porting the Ironclad core to RPython using the PyPy FFI would presumably be possible. Last time I spoke to the PyPy devs about it they said they had a different approach in mind that would give them source compatibility but not binary compatibility. I guess reinventing the wheel is the core motivation of PyPy so I guess they can be forgiven. ;-) Michael
Cheers, Nick.
-- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia ---------------------------------------------------------------