Nuitka Python Compiler
Allison Randal
allison at parrot.org
Thu Oct 13 16:00:14 UTC 2011
-------- Original Message --------
Subject: Re: Request for packaging - Nuitka the Python Compiler
Resent-Date: Wed, 12 Oct 2011 22:33:55 +0000 (UTC)
Resent-From: debian-python at lists.debian.org
Date: Thu, 13 Oct 2011 00:33:33 +0200
From: Kay Hayen <kayhayen at gmx.de>
To: debian-python at lists.debian.org
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
More information about the parrot-dev
mailing list