Botohet Codon, një përpilues Python

Startup Exaloop ka publikuar kodin për projektin Codon, i cili zhvillon një përpilues për gjuhën Python të aftë për të gjeneruar kod të pastër makine si dalje, jo të lidhur me kohën e ekzekutimit të Python. Përpiluesi është duke u zhvilluar nga autorët e gjuhës së ngjashme me Python Seq dhe pozicionohet si një vazhdim i zhvillimit të tij. Projekti gjithashtu ofron kohën e tij të ekzekutimit për skedarët e ekzekutueshëm dhe një bibliotekë funksionesh që zëvendëson thirrjet e bibliotekës në Python. Kodet burimore të përpiluesit, koha e ekzekutimit dhe biblioteka standarde janë shkruar duke përdorur C++ (duke përdorur zhvillime nga LLVM) dhe Python, dhe shpërndahen nën BSL (Business Source License).

Licenca BSL u propozua nga bashkëthemeluesit e MySQL si një alternativë ndaj modelit Open Core. Thelbi i BSL është se kodi i funksionalitetit të avancuar fillimisht është i disponueshëm për modifikim, por për ca kohë mund të përdoret pa pagesë vetëm nëse plotësohen kushte shtesë, të cilat kërkojnë blerjen e një licence tregtare për t'u anashkaluar. Kushtet shtesë të licencës të projektit Codon kërkojnë që kodi të transferohet në licencën Apache 2.0 pas 3 vjetësh (1 nëntor 2025). Deri në këtë kohë, licenca lejon kopjimin, shpërndarjen dhe modifikimin, me kusht që të përdoret për qëllime jo komerciale.

Performanca e skedarëve të ekzekutueshëm në dalje paraqitet si afër programeve të shkruara në gjuhën C. Krahasuar me përdorimin e CPython, fitimi i performancës kur përpilohet duke përdorur kodon vlerësohet të jetë 10-100 herë për ekzekutimin me një fije të vetme. Për më tepër, ndryshe nga Python, Codon zbaton gjithashtu aftësinë për të përdorur multithreading, gjë që lejon një rritje edhe më të madhe të performancës. Codoni gjithashtu ju lejon të përpiloni në nivel funksioni individual për të përdorur përfaqësimin e përpiluar në projektet ekzistuese të Python.

Codon është ndërtuar duke përdorur një arkitekturë modulare që ju lejon të rritni funksionalitetin përmes shtojcave, me të cilat mund të shtoni biblioteka të reja, të zbatoni optimizime në përpilues dhe madje të ofroni mbështetje për sintaksë shtesë. Për shembull, disa shtojca janë duke u zhvilluar paralelisht për t'u përdorur në bioinformatikë dhe matematikë financiare. Mbledhësi i mbeturinave Boehm përdoret për të menaxhuar kujtesën.

Përpiluesi mbështet shumicën e sintaksës Python, por përpilimi në kodin e makinës imponon një sërë kufizimesh që pengojnë përdorimin e kodonit si një zëvendësim transparent për CPython. Për shembull, Codon përdor llojin int 64-bit për numrat e plotë, ndërsa CPython përdor një madhësi të pakufizuar për numrat e plotë. Bazat e mëdha të kodeve mund të kërkojnë ndryshime të kodit për të arritur pajtueshmërinë me kodin. Si rregull, papajtueshmëritë shkaktohen nga mungesa e zbatimit për Codon të moduleve të caktuara Python dhe pamundësia për të përdorur disa veçori dinamike të gjuhës. Për çdo papajtueshmëri të tillë, përpiluesi lëshon një mesazh të detajuar diagnostikues me informacion se si të anashkalohet problemi.

Botohet Codon, një përpilues Python


Burimi: opennet.ru

Shto një koment