Codon, Python-kompililo, estas publikigita

La ekentrepreno Exaloop publikigis la kodon por la projekto Codon, kiu disvolvas kompililon por la lingvo Python kapabla generi puran maŝinkodon kiel eligo, ne ligita al la rultempo de Python. La kompililo estas evoluigita fare de la verkintoj de la Python-simila lingvo Seq kaj estas poziciigita kiel daŭrigo de sia evoluo. La projekto ankaŭ ofertas sian propran rultempon por ruleblaj dosieroj kaj biblioteko de funkcioj, kiu anstataŭigas bibliotekvokojn en Python. La fontkodoj de la kompililo, rultempo kaj norma biblioteko estas skribitaj uzante C++ (uzante evoluojn de LLVM) kaj Python, kaj estas distribuitaj sub la BSL (Business Source License).

La BSL-licenco estis proponita fare de la kunfondintoj de MySQL kiel alternativo al la Open Core-modelo. La esenco de BSL estas, ke la kodo de altnivela funkcieco estas komence disponebla por modifo, sed dum iom da tempo povas esti uzata senpage nur se pliaj kondiĉoj estas plenumitaj, kiuj postulas la aĉeton de komerca permesilo por eviti. Pliaj licencaj kondiĉoj de la projekto Codon postulas, ke la kodo estu transdonita al la licenco Apache 2.0 post 3 jaroj (la 1-an de novembro 2025). Ĝis ĉi tiu tempo, la permesilo permesas kopiadon, dissendon kaj modifon, kondiĉe ke ĝi estas uzata por nekomercaj celoj.

La agado de la eligeblaj efektivigeblaj dosieroj estas prezentita kiel proksima al programoj skribitaj en la C-lingvo. Kompare al uzado de CPython, la rendimentogajno dum kompilado uzante Kodon estas taksita esti 10-100 fojojn por unu-fadena ekzekuto. Krome, male al Python, Codon aldone efektivigas la kapablon uzi multfadenadon, kio permesas eĉ pli grandan pliigon de rendimento. Kodono ankaŭ permesas vin kompili ĉe la individua funkcio por uzi la kompilitan reprezenton en ekzistantaj Python-projektoj.

Codon estas konstruita uzante modulan arkitekturon, kiu ebligas al vi pliigi funkciecon per kromaĵoj, per kiuj vi povas aldoni novajn bibliotekojn, efektivigi optimumojn en la kompililo kaj eĉ provizi subtenon por plia sintakso. Ekzemple, pluraj kromprogramoj estas evoluigitaj paralele por uzo en bioinformadiko kaj financa matematiko. La rubkolektisto Boehm estas uzata por administri memoron.

La kompililo subtenas plej multajn Python-sintakso, sed kompili al maŝinkodo trudas kelkajn limigojn kiuj malhelpas Codon esti uzata kiel travidebla anstataŭaĵo por CPython. Ekzemple, Codon uzas la 64-bitan int-specon por entjeroj, dum CPython uzas senliman grandecon por entjeroj. Grandaj kodbazoj povas postuli kodŝanĝojn por atingi Kodon-kongruecon. Kiel regulo, nekongruoj estas kaŭzitaj de la manko de efektivigo por Codon de certaj Python-moduloj kaj la malkapablo uzi iujn dinamikajn trajtojn de la lingvo. Por ĉiu tia nekongruo, la kompililo elsendas detalan diagnozan mesaĝon kun informoj pri kiel eviti la problemon.

Codon, Python-kompililo, estas publikigita


fonto: opennet.ru

Aldoni komenton