Avaldatakse Pythoni kompilaator Codon

Käivitaja Exaloop on avaldanud koodi Codoni projekti jaoks, mis arendab Pythoni keele jaoks kompilaatorit, mis suudab genereerida väljundina puhast masinkoodi, mis pole Pythoni käitusajaga seotud. Kompilaatorit arendavad Pythoni sarnase keele Seq autorid ja see on positsioneeritud selle arenduse jätkuna. Projekt pakub ka käivitatavate failide jaoks oma käitusaega ja funktsioonide teeki, mis asendab Pythonis teegikutseid. Kompilaatori, käitusaja ja standardteegi lähtekoodid on kirjutatud C++ (kasutades LLVM-i arendusi) ja Pythonit ning neid levitatakse BSL-i (Business Source License) all.

BSL-i litsentsi pakkusid välja MySQL-i kaasasutajad alternatiivina Open Core mudelile. BSL-i olemus seisneb selles, et täiustatud funktsionaalsuse kood on algselt saadaval muutmiseks, kuid mõnda aega saab seda tasuta kasutada vaid juhul, kui on täidetud lisatingimused, millest möödahiilimiseks on vaja osta kommertslitsents. Codoni projekti täiendavad litsentsitingimused nõuavad koodi ülekandmist Apache 2.0 litsentsile 3 aasta pärast (1. november 2025). Kuni selle ajani lubab litsents kopeerida, levitada ja muuta tingimusel, et seda kasutatakse mitteärilistel eesmärkidel.

Väljundkäivitatavate failide jõudlus on sarnane C-keeles kirjutatud programmidele. Võrreldes CPythoni kasutamisega on Codoni abil kompileerimisel jõudluse suurenemine ühe lõimega täitmisel hinnanguliselt 10–100 korda. Veelgi enam, erinevalt Pythonist rakendab Codon lisaks võimalust kasutada mitme lõimega töötlemist, mis võimaldab jõudlust veelgi suurendada. Codon võimaldab teil kompileerida ka individuaalse funktsiooni tasemel, et kasutada kompileeritud esitust olemasolevates Pythoni projektides.

Codon on üles ehitatud moodularhitektuuri abil, mis võimaldab suurendada funktsionaalsust läbi pluginate, mille abil saate lisada uusi teeke, rakendada kompilaatoris optimeerimisi ja pakkuda isegi täiendava süntaksi tuge. Näiteks töötatakse paralleelselt välja mitmeid pluginaid kasutamiseks bioinformaatikas ja finantsmatemaatikas. Mälu haldamiseks kasutatakse Boehmi prügikogujat.

Kompilaator toetab enamikku Pythoni süntaksit, kuid masinkoodile kompileerimine seab mitmeid piiranguid, mis takistavad Codoni kasutamist CPythoni läbipaistva asendusena. Näiteks Codon kasutab täisarvude jaoks 64-bitist int tüüpi, samas kui CPython kasutab täisarvude jaoks piiramatut suurust. Suured koodibaasid võivad koodoniga ühilduvuse saavutamiseks vajada koodi muutmist. Reeglina on kokkusobimatuse põhjuseks teatud Pythoni moodulite Codoni rakendamise puudumine ja suutmatus kasutada keele mõningaid dünaamilisi funktsioone. Iga sellise kokkusobimatuse korral väljastab kompilaator üksikasjaliku diagnostikateate, mis sisaldab teavet selle kohta, kuidas probleemist mööda hiilida.

Avaldatakse Pythoni kompilaator Codon


Allikas: opennet.ru

Lisa kommentaar