Objavljen je Codon, Python prevodilac

Startup Exaloop objavio je kod za projekt Codon, koji razvija kompajler za jezik Python koji može generirati čisti strojni kod kao izlaz, koji nije vezan za Python runtime. Kompajler razvijaju autori jezika Seq sličnog Pythonu i pozicioniran je kao nastavak njegovog razvoja. Projekt također nudi vlastito vrijeme izvođenja za izvršne datoteke i biblioteku funkcija koje zamjenjuju pozive biblioteke u Pythonu. Izvorni kodovi prevoditelja, runtimea i standardne biblioteke napisani su pomoću C++ (koristeći razvoj LLVM-a) i Pythona, te se distribuiraju pod BSL (Business Source License).

BSL licencu predložili su suosnivači MySQL-a kao alternativu modelu Open Core. Bit BSL-a je da je kod napredne funkcionalnosti inicijalno dostupan za modifikaciju, ali se neko vrijeme može koristiti besplatno samo ako su ispunjeni dodatni uvjeti, koji zahtijevaju kupnju komercijalne licence za zaobilaženje. Dodatni licencni uvjeti projekta Codon zahtijevaju prijenos koda na licencu Apache 2.0 nakon 3 godine (1. studenog 2025.). Do tog trenutka licenca dopušta kopiranje, distribuciju i izmjene, pod uvjetom da se koristi u nekomercijalne svrhe.

Performanse izlaznih izvršnih datoteka prikazane su kao bliske programima napisanim u C jeziku. U usporedbi s upotrebom CPythona, procjenjuje se da je povećanje performansi pri kompajliranju pomoću Codona 10-100 puta za izvršavanje u jednoj niti. Štoviše, za razliku od Pythona, Codon dodatno implementira mogućnost korištenja multithreadinga, što omogućuje još veći porast performansi. Codon vam također omogućuje kompajliranje na razini pojedinačne funkcije za korištenje kompilirane reprezentacije u postojećim Python projektima.

Codon je izgrađen koristeći modularnu arhitekturu koja vam omogućuje povećanje funkcionalnosti putem dodataka, s kojima možete dodavati nove biblioteke, implementirati optimizacije u kompajleru, pa čak i pružiti podršku za dodatnu sintaksu. Na primjer, paralelno se razvija nekoliko dodataka za korištenje u bioinformatici i financijskoj matematici. Boehm skupljač smeća koristi se za upravljanje memorijom.

Kompajler podržava većinu Python sintakse, ali kompajliranje u izvorni kod nameće brojna ograničenja koja sprječavaju korištenje Codona kao transparentne zamjene za CPython. Na primjer, Codon koristi 64-bitni int tip za cijele brojeve, dok CPython koristi neograničenu veličinu za cijele brojeve. Velike baze kodova mogu zahtijevati izmjene koda kako bi se postigla kompatibilnost kodona. U pravilu, nekompatibilnosti su uzrokovane nedostatkom implementacije za Codon određenih Python modula i nemogućnošću korištenja nekih dinamičkih značajki jezika. Za svaku takvu nekompatibilnost, kompajler izdaje detaljnu dijagnostičku poruku s informacijama o tome kako zaobići problem.

Objavljen je Codon, Python prevodilac


Izvor: opennet.ru

Dodajte komentar