Nuitka 0.60 released
This release adds massive improvements for optimization and a couple of bug fixes. It also indicates reaching the mile stone of doing actual type inference, even if only very limited." At this point, the claim is that all Python language features have been implemented, so the focus is shifting toward optimization.
Posted Oct 1, 2018 5:40 UTC (Mon)
by pr1268 (guest, #24648)
[Link] (8 responses)
From the article: And later (on the same page): So which is it? A native code compiler or a C-language translator? And assuming the latter, then why not go straight from Python to assembly? A compiler that translated code straight from any of the contemporarily-popular languages to arch-specific native assembly would really be nice. Just my $0.02.
Posted Oct 1, 2018 7:11 UTC (Mon)
by jtaylor (subscriber, #91739)
[Link] (2 responses)
Posted Oct 1, 2018 14:39 UTC (Mon)
by jamesh (guest, #1159)
[Link] (1 responses)
I guess the main opportunities for optimisation would come from identifying occasions when it is safe _not_ to use the libpython API. For example, if you know the two values you are adding are integers then generate code that adds two ints rather than calling PyNumber_Add() on two PyObjects.
Posted Oct 1, 2018 15:10 UTC (Mon)
by kayhayen (guest, #127589)
[Link]
I call it graceful degradation. Code that can be fast should be. And if you go all in on special Python features it will become less optimized, but still faster.
Obviously a very hard project that I am in there, but from now on I am hoping to improve performance with every release for the 0.6.x series, whereas 0.5.x had 33 teleases preparing that in the background mostly.
Yours,
Posted Oct 1, 2018 10:19 UTC (Mon)
by wazoox (subscriber, #69624)
[Link] (4 responses)
Posted Oct 1, 2018 15:13 UTC (Mon)
by kayhayen (guest, #127589)
[Link] (3 responses)
Yours,
Posted Oct 1, 2018 23:17 UTC (Mon)
by atai (subscriber, #10977)
[Link] (2 responses)
Posted Oct 1, 2018 23:42 UTC (Mon)
by k8to (guest, #15413)
[Link]
Posted Oct 2, 2018 13:21 UTC (Tue)
by kayhayen (guest, #127589)
[Link]
Posted Oct 1, 2018 20:35 UTC (Mon)
by mageta (subscriber, #89696)
[Link] (2 responses)
Is this similar? What are some differences, just for comparison sake.
Posted Oct 1, 2018 23:46 UTC (Mon)
by k8to (guest, #15413)
[Link] (1 responses)
http://nuitka.net/posts/static-compilation-that-is-the-po...
the article isn't written specifically to address Cython so Cython fans might object since this isn't really working hard to provide a lot of evidence for its viewpoints. That isn't the goal of the article though, so I think it's very understandible.
I'd love to hear more about the comparison than what I've been able to find.
Posted Oct 2, 2018 13:39 UTC (Tue)
by kayhayen (guest, #127589)
[Link]
For Cython I think it would be unfair to publish them and call them numbers. After all you are expected to apply a bit of cdef magic to it, and not doing it, would be cheating.
And thanks for the link. I once wrote that indeed and every word of that is still true.
As for type inference from code annotations, still not there, but once substantial effects are achieved by saying it's an int, there will be attempts to show how Cython code annotations and Nuitka not using them, coming to what I hope similar results.
And Nuitka will still be full of performance bugs, where it doesn't even match CPython for some more time. I am fighting unicode in-place mysteries on Python3 recently, and pystone on Python3 is not nearly as much faster as pystone on Python2 when compiled, there will be bad things still, but the good news is, finally it is becoming the primary focus, and things will be doable.
Yours,
I'm confused...
Nuitka is a Python compiler. [...] You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.
It translates the Python into a C program [...]
I'm confused...
I'm confused...
I'm confused...
Kay (Author of Nuitka)
I'm confused...
It generates C11 code with a fall-back on C++03 for the cases where a good C11 compiler isn't available (Windows).
I'm confused...
Kay
I'm confused...
I'm confused...
I'm confused...
Nuitka 0.60 released
Nuitka 0.60 released
Nuitka 0.60 released
Kay