[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Request for packaging - Nuitka the Python Compiler



Hello Jakub,

http://www.nuitka.net/blog/nuitka-a-python-compiler/what-is-nuitka/

How is it different/better than pure-Python[0] mode of Cython?

It's more compatible to CPython than anything that exists. Nuitka passes practically 100% of the test suite. Currently I don't have support for threading, and that's it. Frame stack works perfect in branch already.

Nuitka is a project not about a hybrid language, and not about C types, and it's intended for whole programs acceleration. That's probably differences that currently matter.

It's design is cleaner, it uses the CPython parser to parse Python, it uses Scons to build the generated code, etc.

Cython is trying to be more Python compatibility recently, but Nuitka already had full language coverage, before Cython started with generators. Now they have it. But there is still "unimportant" things, not supported.

I believe Cython is currently the best choice available for something productive, but Nuitka has a cleaner plan (only Python semantics matter) and I believe a quicker road to success, and has already uses.

Ultimately, I agree with Dr. Stefan Behnel, one of the lead developers of Cython, that the projects are coming from different ends, but reach out to similar goals.

I gave my reasons on recent PyCON DE. But it boils down to willingness to move and different goals. Stefan agrees with me that Nuitka has different enough goals, or so I understood.

To give an example, parameter errors. The error messages of Nuitka are identical to CPython and that's the test. The error message of Cython are not identical and arguably not better. The generated code may be or or less faster.

To me, the only correct solution is the one that 100% imitates CPython and even avoids improvements to CPython. To Stefan the faster solution is an acceptable compromise.

With this approach, a 100% compatibility cannot be achieved, which also means that you have to have your own tests. Cython needs to have a lot of efforts, because it has data driven testing that describes the non-CPython behaviour of Cython. I can just compare CPython and Nuitka and every difference is a bug.

Yours,
Kay


Reply to: