JyNI was accepted for GSoC once again!

2017 GSoC project page
2015 GSoC project blog

Huge thanks to everyone who made this possible!
Most notably to Jim Baker for mentoring the entire proposal and the project itself.
Further thanks go to Frank Wierzbicki and Darjus Loktevic for mentoring this brand new 2017 JyNI GSoC project.

Jython: Develop Windows version of JyNI and ideally support all extensions currently workable on POSIX (e.g. ctypes, NumPy)


JyNI is a compatibility layer with the goal to enable Jython to use native CPython extensions like NumPy or SciPy. So far it was developed on Linux and some additional effort was spent to let the core part work properly on OSX. In principle the current version of JyNI is workable on POSIX platforms. I propose to create a proper Windows version of JyNI. A fully accurate implementation of this proposal includes to establish workability of all extensions and features that are currently supported on POSIX platforms.

Detailed Description

Windows uses a different loading mechanism for dynamic libraries than POSIX (https://en.wikipedia.org/wiki/Dynamic_loading#Summary). Essentially the adjustment for a Windows version of JyNI can be ported from CPython. However my earlier efforts to support OSX showed that a new target platform likely yields subtle issues (especially regarding memory management) all through JyNI code. Also note that previously no care was taken to produce Windows-compliant code and there are various sections in JyNI that need adjustments due to this fact. In order to support a CPython compatible ABI on Windows, I will have to build JyNI using (a certain, non-current version of) MS Visual Studio, which does not fully support C99 and some parts of JyNI will need adjustment due to this fact. I will eventually try to use mingwpy (https://github.com/mingwpy/mingwpy) as an alternative toolchain, but that project is still experimental.
After basic porting is done, I will step by step work through JyNI's Demo extension and test suite to ensure proper workability of all parts. Finally I will work through various examples and extensions that are currently known to be workable with JyNI on POSIX in order to finally achieve a full-featured Windows-version of JyNI.


Popular posts from this blog

Final report: ctypes and NumPy work with JyNI on Windows

Lessons learned with Visual Studio, C89 and the preprocessor

Major milestone achieved: JyNI builds successfully on Windows, DemoExtension is workable