Nuitka - Nuitka
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Vývojáři | Kay Hayen a další |
---|---|
Stabilní uvolnění | 0.6.8 / 10. května 2020 |
Úložiště | github |
Napsáno | C, Krajta |
K dispozici v | Angličtina |
Typ | kompilátor zdroj-zdroj |
Licence | Licence Apache 2.0 |
webová stránka | https://nuitka.net/ |
Nuitka je kompilátor zdroj-zdroj který sestavuje Krajta kód do C zdrojový kód, použití některých optimalizací v době kompilace v procesu, jako je konstantní skládání a šíření, integrovaná predikce volání, odvození typu a podmíněné provedení příkazu.[1][2] Nuitka byla původně navržena k produkci kódu C ++, ale aktuální verze produkují zdrojový kód C pouze s využitím těchto funkcí C11 které sdílí C ++ 03, což umožňuje další kompilaci do binárního spustitelného formátu pomocí moderních překladačů C a C ++ včetně gcc, zvonit, MinGW nebo Microsoft Visual C ++. Přijímá kód Pythonu kompatibilní s několika různými verzemi Pythonu (aktuálně podporující verze 2.6, 2.7 a 3.3–3.8) a volitelně umožňuje vytváření samostatných programů, které nevyžadují instalaci Pythonu na cílovém počítači.
Nuitka byla diskutována na konferenci EuroPython v roce 2012 a vážný vývoj začal na konci téhož roku. Nyní podporuje prakticky všechny funkce jazyka Python.[3] Pro budoucí vydání jsou plánovány další optimalizace v době kompilace, včetně vyloučení použití objektů Pythonu pro další proměnné, jejichž typ lze odvodit v době kompilace, zejména při použití iterátorů, u nichž se očekává, že povedou k velkému zvýšení výkonu.[4]
Omezení
V současné době to není možné křížová kompilace binární soubory (např. vytvoření spustitelného souboru ve Windows a jeho odeslání do Mac OS X).
Samostatné binární soubory vytvořené pomocí --samostatný
možnost příkazového řádku obsahuje vložený CPython tlumočník pro zpracování aspektů jazyka, které nejsou určeny při kompilaci programu a musí být interpretovány za běhu, jako například kachní psaní, zpracování výjimek a dynamické provádění kódu ( eval
funkce a vykon
funkce nebo příkaz), spolu s těmi Python a nativními knihovnami, které jsou potřebné k provedení, což vede k poměrně velkým velikostem souborů.
Návrh Nuitky se do značné míry spoléhá na interní prvky tlumočníka CPython a v důsledku toho další implementace jazyka Python, jako například PyPy, Jython, a IronPython nelze použít místo CPython pro runtime tlumočník a knihovnu.[1]
Používání
Nuitku lze nainstalovat z úložišť mnoha distribucí Linuxu. Lze jej také nainstalovat prostřednictvím pip
a pip3
, resp. Kompilace se provádí buď pomocí nuitka program.py
nebo se samotným Pythonem (python -m nuitka program.py
).
webové odkazy
Zdroje
- ^ A b Hayen, Kay (2012-06-21). "Uživatelský manuál". Nuitka domů. Citováno 2020-05-14.
- ^ Yegulalp, Serdar (10.10.2018). „Kompilátor Nuitka Python-to-C připravuje velké zvýšení výkonu“. InfoWorld. Citováno 2020-05-14.
- ^ Yegulalp, Serdar (2014-12-19). „Překladač Python-to-C ++ slibuje rychlejší provedení“. InfoWorld. Citováno 2020-05-14.
- ^ "Nuitka seznam změn". GitHub. 2020-05-10. Citováno 2020-05-14.