Dear Pythonistas,

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

https://cython.org/

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?

In case you didn't hear about Cython before, it's the most widely used
statically optimising Python compiler out there. It translates Python (2/3)
code to C, and makes it as easy as Python itself to tune the code all the
way down into fast native code.


** 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, preferably even as ready-made
binary wheels. 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
--
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/

        Support the Python Software Foundation:
        http://www.python.org/psf/donations/

Reply via email to