Avaldatud Codon, kompilaator Python keele jaoks.

Startup Exaloop avaldas projekti Codon koodi, mis arendab Pythonile mõeldud kompilaatorit, mis suudab genereerida puhast masinkoodi, mis ei ole seotud Python runtime'iga. Kompilaatorit arendavad Pythonile sarnase keele Seq autorid ja see positsioneeritakse selle arengu jätkuna. Projekt pakub ka oma runtime'i täitmisfailidele ja funktsioonide teeki, mis asendab Pythonis keeleliselt neid teegi väljakutseid. Kompilaatori, runtime'i ja standardraamatukogu lähtekoodid on kirjutatud C++ (kasutades LLVM'i arendust) ja Python keeles, ning levitatakse BSL (Business Source License) litsentsi alusel.

BSL-litsentsi pakkusid MySQLi kaasasutajad alternatiivina Open Core mudelile. BSL tuum seisneb selles, et laiendatud funktsionaalsuse kood on esialgu muudetav, kuid mingi aja jooksul võib seda tasuta kasutada ainult täiendavate tingimuste täitmisel, mille ületamiseks on vajalik kommertslitsentsi soetamine. Projekti Codo täiendavad litsentsitingimused määravad, et kood muudetakse litsentsi Apache 2.0 järgi kolme aasta jooksul (1. november 2025). Sel ajal lubab litsents kopeerimist, levitamist ja modifitseerimist, tingimusel et seda ei kasutata kommertseesmärkidel.

Väljundi täitmine, mis toimub Compiléeritud failide tõttu, esitatakse kui lähedane C keeles kirjutatud programmidele. Võrreldes CPython'i kasutamisega hinnatakse jõudluse kasvu Codoni abil kompileerimisel 10-100 korda ühesilgsete täitmise korral. Erinevalt Pythoni'ist, integreeritakse Codonis täiendav mitme lõime kasutamise võimalus, mis võimaldab saavutada veelgi suuremat jõudluse suurenemist. Codon võimaldab samuti töötada üksikute funktsioonide kompileerimisega, et kasutada kompileeritud esitamist olemasolevates Python-projektides.

Codon on üles ehitatud modulaarse arhitektuuriga, mis võimaldab funktsionaalsuse laiendamist pistikprogrammide kaudu, millega saab lisada uusi teeke, optimeerida kompilaatorit ja isegi toetada lisasüntaksit. Näiteks arendatakse paralleelselt mitmeid pistikprogramme, mida kasutatakse bioinformaatikas ja rahanduse matemaatikas. Mäluhalduseks kasutatakse Boehmi prügikoristajat.

Kompilaator toetab suuremat osa Python'i süntaksist, kuid masinkoodi kompileerimine toob kaasa mitmeid piiranguid, mis takistavad Codoni kasutamist CPython'i läbipaistva asendusena. Näiteks Codon kasutab täisarvude jaoks 64-bitist int tüüpi, samas kui CPython'i täisarvude suurus ei ole piiratud. Selleks, et tagada ühilduvus Codoni ja suurte koodibaaside vahel, võib olla vajalik koodi muutmine. Üldiselt tulenevad ühilduvuse probleemid sellest, et teatud Python'i moodulite rakendamine Codonis puudub ning mõningate dünaamiliste keele omaduste kasutamine ei ole võimalik. Iga sellise ühilduvuse probleemi korral annab kompilaator välja üksikasjaliku diagnostilise sõnumi, milles on teave selle kohta, kuidas probleemist mööda minna.

Avaldatud Codon, kompilaator Python keele jaoks.


Allikas: opennet.ru
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster