On Fri, Aug 19, 2016 at 12:32 PM, Jason Newton <nevion@gmail.com> wrote:
On Fri, Aug 19, 2016 at 3:19 PM, William Stein <wstein@gmail.com> wrote:
On Fri, Aug 19, 2016 at 8:19 AM, Jason Newton <nevion@gmail.com> wrote:
You must realize that almost any other python driven way to compile c-code in the spirit these projects do is deprecated/dead. Cython has absorbed all the reputation and users that didn't go to pure-c/boost.python - pybind11 is the new kid on the block there so I'm not including it (I'm of the opinion that SWIG users stayed unchanged). Community belief/QA/designers/google all think of Cython first. Weave has effectively closed up it's doors [...]
May I ask why "any other python driven way to compile c-code in the spirit these projects do is deprecated/dead?" I'm curious since when I started Sage (and Cython based on forking Pyrex), it was because none of the other approaches seemed like they would work for the developer base I envisioned growing for Sage. That was a long time ago, and I'm always pleasantly surprised that Cython has become very popular. However, I didn't realize the other approaches were deprecated/dead.
PyInline's last news update was in 2004 where the author gives a "Hats of[f] to PyRex", prior to that only a few blog entries in 2001/2002, I've not come across any project using it but maybe that is not sufficient to call it deprecated/dead? Does it work with Python 3? http://pyinline.sourceforge.net/
Pyrex no longer has a userbase. Last ML post was 2014.
Weave only supports python2, got ripped out of Scipy and also directs to check out Cython and strongly implies the project is all but dead/maintenance mode: https://github.com/scipy/weave
Did I miss any of the python driven ways?
Pybindgen? And of course there's ctypes/cffi. I could have sworn I saw another project pop up several years ago that was a lot like what you're suggesting, e.g. a listing of def foo(a, b): [c code using a and b] I don't recall how the types for a and b were declared/converted, and I don't think it did much non-trivial stuff yet, but I can't find a trace of it now (but it's hard to search for laking a name).