Je publikovaný Codon, kompilátor Pythonu

Startup Exaloop zverejnil kód pre projekt Codon, ktorý vyvíja kompilátor Pythonu schopný generovať čistý strojový kód nesúvisiaci s runtime prostredím Pythonu. Kompilátor vyvíjajú autori jazyka Seq podobného Pythonu a je prezentovaný ako jeho pokračovanie. Projekt tiež ponúka vlastný runtime pre spustiteľné súbory a knižnicu funkcií, ktorá nahrádza volania knižníc Pythonu. Zdrojový kód pre kompilátor, runtime a štandardnú knižnicu je napísaný v jazykoch C++ (s využitím vývoja z LLVM) a Python a je distribuovaný pod licenciou Business Source License (BSL).

Licenciu BSL navrhli spoluzakladatelia MySQL ako alternatívu k modelu Open Core. Licencia BSL umožňuje spočiatku sprístupniť kód s rozšírenou funkcionalitou na úpravu, ale na obmedzený čas ho možno používať bezplatne iba za dodatočných podmienok, ktoré vyžadujú komerčnú licenciu na obídenie. Dodatočné licenčné podmienky projektu Codon vyžadujú, aby bol kód po troch rokoch (1. novembra 2025) migrovaný na licenciu Apache 2.0. Dovtedy licencia povoľuje kopírovanie, distribúciu a úpravu za predpokladu, že použitie nie je na komerčné účely.

Výkon výsledných spustiteľných súborov sa údajne blíži výkonu programov napísaných v jazyku C. V porovnaní s CPythonom sa odhaduje, že nárast výkonu pri kompilácii s Codonom je 10 až 100-násobný pri jednovláknovom vykonávaní. Na rozdiel od Pythonu ponúka Codon aj viacvláknovú kompiláciu, ktorá umožňuje ešte väčšie zvýšenie výkonu. Codon tiež umožňuje kompiláciu na úrovni funkcií na použitie kompilovanej reprezentácie v existujúcich projektoch Pythonu.

Codon je postavený na modulárnej architektúre, ktorá umožňuje rozšírenú funkcionalitu prostredníctvom pluginov, ktoré možno použiť na pridávanie nových knižníc, implementáciu optimalizácií kompilátora a dokonca aj na poskytovanie podpory pre ďalšiu syntax. Napríklad, niekoľko pluginov sa vyvíja paralelne na použitie v bioinformatike a finančnej matematike. Na správu pamäte sa používa garbage collector Boehm.

Kompilátor podporuje väčšinu syntaxe Pythonu, ale kompilácia do natívneho kódu prináša niekoľko obmedzení, ktoré bránia použitiu Codonu ako bezproblémovej náhrady za CPython. Napríklad Codon používa 64-bitový typ int pre celé čísla, zatiaľ čo CPython nemá žiadne obmedzenie na veľkosť celého čísla. Dosiahnutie kompatibility s Codonom pre rozsiahle kódové bázy môže vyžadovať zmeny kódu. Tieto nekompatibility sú zvyčajne spôsobené nedostatkom implementácií pre určité moduly Pythonu v Codone a neschopnosťou používať určité dynamické jazykové funkcie. Pre každú takúto nekompatibilitu kompilátor vydá podrobnú diagnostickú správu s informáciami o tom, ako problém obísť.

Je publikovaný Codon, kompilátor Pythonu


Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster