Je publikován Codon, překladač Pythonu

Startup Exaloop zveřejnil kód pro projekt Codon, který vyvíjí kompilátor pro jazyk Python schopný generovat čistý strojový kód jako výstup, který není vázán na běhové prostředí Pythonu. Překladač je vyvíjen autory jazyka podobného Pythonu Seq a je umístěn jako pokračování jeho vývoje. Projekt také nabízí vlastní runtime pro spustitelné soubory a knihovnu funkcí, která nahrazuje volání knihoven v Pythonu. Zdrojové kódy kompilátoru, runtime a standardní knihovny jsou napsány pomocí C++ (s využitím vývoje z LLVM) a Pythonu a jsou distribuovány pod BSL (Business Source License).

Licence BSL byla navržena spoluzakladateli MySQL jako alternativa k modelu Open Core. Podstatou BSL je, že kód pokročilé funkčnosti je zpočátku k dispozici pro úpravy, ale po určitou dobu jej lze bezplatně používat pouze při splnění dalších podmínek, které k obcházení vyžadují zakoupení komerční licence. Další licenční podmínky projektu Codon vyžadují převedení kódu do licence Apache 2.0 po 3 letech (1. listopadu 2025). Do této doby povoluje licence kopírování, distribuci a úpravy za předpokladu, že bude používána pro nekomerční účely.

Výkon výstupních spustitelných souborů je prezentován jako blízký programům napsaným v jazyce C. Ve srovnání s použitím CPythonu se nárůst výkonu při kompilaci pomocí Codon odhaduje na 10-100násobek pro jednovláknové provádění. Navíc na rozdíl od Pythonu Codon navíc implementuje možnost používat multithreading, což umožňuje ještě větší zvýšení výkonu. Codon vám také umožňuje kompilovat na úrovni jednotlivých funkcí, abyste mohli použít zkompilovanou reprezentaci ve stávajících projektech Pythonu.

Codon je postaven pomocí modulární architektury, která vám umožňuje zvýšit funkčnost pomocí pluginů, pomocí kterých můžete přidávat nové knihovny, implementovat optimalizace v kompilátoru a dokonce poskytovat podporu pro další syntaxi. Paralelně se například vyvíjí několik pluginů pro použití v bioinformatice a finanční matematice. Ke správě paměti slouží Boehm garbage collector.

Kompilátor podporuje většinu syntaxe Pythonu, ale kompilace do strojového kódu ukládá řadu omezení, která brání použití Codonu jako transparentní náhrady za CPython. Například Codon používá 64bitový typ int pro celá čísla, zatímco CPython používá neomezenou velikost pro celá čísla. Velké kódové báze mohou vyžadovat změny kódu k dosažení kompatibility kodonů. Nekompatibility jsou zpravidla způsobeny chybějící implementací pro Codon určitých modulů Pythonu a nemožností používat některé dynamické vlastnosti jazyka. Pro každou takovou nekompatibilitu kompilátor vydá podrobnou diagnostickou zprávu s informacemi, jak problém obejít.

Je publikován Codon, překladač Pythonu


Zdroj: opennet.ru

Přidat komentář