[Cython] Cython 3.0 alpha 1 released

Stefan Behnel stefan_ml at behnel.de
Sun Apr 12 06:24:59 EDT 2020


Dear Cython users and devs,

today, I'm happy to announce the first alpha release of Cython 3.0.

https://pypi.org/project/Cython/3.0a1/

It took us a while to get to this point, well more than a year's time, but
we received a lot of help along the way, most notably from David Woods,
Jeroen Demeyer and Matti Picus. Thanks a lot, and also to the many other
contributors! For this release, we already have 182 closed issues and
merged PRs, including 109 PRs contributed by non-core devs!


** What is Cython 3.0?

Cython 3.0 is our effort to bring Cython up to date with modern Python 3,
after an 18 year long development history. According to the Python mailing
list archive [1] and Greg's download directory [2], Cython's predecessor
Pyrex 0.1 was announced and released to the public on April 4th, 2002.

Cython is finally coming of age. :)


** So, what's new?

Too much. Way too much for this announcement. Cython 3.0 comes with a very
long list of new features, bug fixes and modernisations, a few of which are
backwards incompatible, but in a good way. See the latest changelog:

https://github.com/cython/cython/blob/master/CHANGES.rst

Here's a short teaser list anyway:
- Python 3 semantics by default, legacy Python 2 semantics via directive.
- No more deprecated NumPy C-API usage.
- Unicode module names, imports, and identifiers (PEP-3131, PEP-489).
- Support for the fast vectorcall protocol (PEP-590).
- Inlined properties on external cdef classes.
- Faster dispatch for fused functions.
- First steps towards supporting CPython's stable ABI (PEP-384).


** How alpha is it?

Well. It's not complete yet [3]. It still has some known issues. There are
still some unmerged PRs waiting. Support for the limited API is … limited.

But, it's in a good shape and probably ready enough for you to make use of
all those cool new features. Please give it a try and report back if you
find issues that we can still improve on in the upcoming pre-releases. PRs
very welcome!

As always, if it works for you, use it. Generate your C code locally with
it, test it, then ship it to your users. Once the code is compiled, they
don't even have to know that you've used an alpha version. :)


Have fun,

Stefan



[1] https://mail.python.org/pipermail/python-list/2002-April/126661.html
[2] https://www.csse.canterbury.ac.nz/greg.ewing/python/Pyrex/oldtar/
[3] https://github.com/cython/cython/milestone/58


More information about the cython-devel mailing list