Codon, Python konpilatzailea, argitaratzen da

Exaloop startup-ak Codon proiekturako kodea argitaratu du, Python lengoairako konpiladore bat garatzen duena irteera gisa makina kode hutsa sortzeko gai dena, Pythonen exekuzio-denborari lotuta ez dagoena. Konpilatzailea Seq Python antzeko lengoaiaren egileek garatzen ari dira eta bere garapenaren jarraipen gisa kokatzen da. Proiektuak bere exekuzio-denbora ere eskaintzen du fitxategi exekutagarrietarako eta Python-en liburutegi-deiak ordezkatzen dituen funtzioen liburutegia. Konpiladorearen, exekuzio-denboraren eta liburutegi estandarraren iturburu-kodeak C++ (LLVM-ren garapenak erabiliz) eta Python erabiliz idazten dira, eta BSL (Business Source License) arabera banatzen dira.

BSL lizentzia MySQL-ren sortzailekideek proposatu zuten Open Core ereduaren alternatiba gisa. BSL-ren funtsa funtzio aurreratuen kodea hasieran aldatzeko erabilgarri dagoela da, baina denbora batez doan erabil daiteke baldintza gehigarriak betetzen badira, saihesteko lizentzia komertziala erostea eskatzen dutenak. Codon proiektuaren lizentzia-baldintza gehigarriek kodea Apache 2.0 lizentziara transferitzea eskatzen dute 3 urteren buruan (1eko azaroaren 2025a). Ordura arte, lizentziak kopiatzea, banatzea eta aldatzea ahalbidetzen du, baldin eta helburu ez-komertzialetarako erabiltzen bada.

Irteerako fitxategi exekutagarrien errendimendua C lengoaian idatzitako programetatik hurbil dagoela aurkezten da. CPython erabiltzearekin alderatuta, Codon erabiliz konpilatzean errendimendu irabazia 10-100 aldiz izango dela kalkulatzen da hari bakarreko exekuziorako. Gainera, Python-ek ez bezala, Codon-ek hari anitzeko gaitasuna ere inplementatzen du, eta horrek errendimendua are gehiago areagotzen du. Codon-ek funtzio indibidualaren mailan konpilatzeko aukera ere ematen du lehendik dauden Python proiektuetan konpilatutako irudikapena erabiltzeko.

Codon pluginen bidez funtzionalitatea areagotzeko aukera ematen duen arkitektura modular baten bidez eraikitzen da, eta horrekin liburutegi berriak gehi ditzakezu, konpilatzailean optimizazioak ezar ditzakezu eta sintaxi gehigarrirako laguntza ere eman dezakezu. Esaterako, paraleloan hainbat plugin garatzen ari dira bioinformatikan eta finantza matematikan erabiltzeko. Boehm zabor biltzailea memoria kudeatzeko erabiltzen da.

Konpilatzaileak Python sintaxi gehienak onartzen ditu, baina makina-kode batera konpilatzeak hainbat muga ezartzen ditu Codon CPython-en ordezko garden gisa erabiltzea eragozten dutenak. Adibidez, Codonek 64 biteko int mota erabiltzen du zenbaki osoetarako, eta CPython-ek, berriz, tamaina mugagabea erabiltzen du zenbaki osoetarako. Kode-oinarri handiek kode-aldaketak eskatu ditzakete Codon bateragarritasuna lortzeko. Oro har, bateraezintasunak Python modulu jakin batzuen Codon inplementazio ezak eta hizkuntzaren ezaugarri dinamiko batzuk erabiltzeko ezintasunak eragiten ditu. Bateraezintasun bakoitzeko, konpilatzaileak diagnostiko-mezu zehatz bat igortzen du, arazoa saihestu jakiteko.

Codon, Python konpilatzailea, argitaratzen da


Iturria: opennet.ru

Gehitu iruzkin berria