Codon, novi Python kompajler visokih performansi 

kodon

Codon je Python kompajler visokih performansi koji kompajlira Python kod u izvorni mašinski kod.

Nedavno je predstavljen startup Exaloop putem tvita objavljivanje koda projekta kodon, ko razvija a kompajler za jezik Python koji može generirati čisti strojni kod kao izlaz, nije vezan za vrijeme izvođenja Pythona.

Kompajler su razvili autori jezika Seq koji je sličan Python-u i pozicioniran je kao nastavak njegovog razvoja. Projekat takođe nudi vlastito vrijeme izvođenja za izvršne datoteke i biblioteku funkcija koja zamjenjuje pozive biblioteke u jeziku Python.

O Codonu

Performanse izlaznih izvršnih datoteka Promoviše se kao blizak programima napisanim u C jeziku. U poređenju sa upotrebom CPython-a, povećanje performansi pri kompajliranju sa Codonom se procjenjuje na 10-100 puta za jednonitno izvršavanje. Istovremeno, za razliku od Pythona, Codon dodatno implementira mogućnost korištenja višenitnog rada, što vam omogućava da postignete još veće povećanje performansi. kodon također vam omogućava kompajliranje na funkcijskom nivou da koristite prevedeni pogled u postojećim Python projektima.

kodon izgrađen je pomoću modularne arhitekture koji vam omogućava da proširite funkcionalnost putem dodataka koji mogu dodati nove biblioteke, implementirati optimizacije kompajlera, pa čak i pružiti podršku za dodatnu sintaksu.

Na primjer, paralelno se razvija nekoliko dodataka za upotrebu u bioinformatici i finansijskoj matematici. Boehmov sakupljač smeća se koristi za upravljanje memorijom.

kompajler podržava većinu Python sintakse, ali kompajliranje u izvorni kod nameće brojna ograničenja koja sprečavaju da se Codon koristi kao transparentna zamena za CPython. Na primjer, Codon koristi 64-bitni tip int za cijele brojeve, dok CPython ima neograničene cijele brojeve.

Podrška kodonima za velike baze koda može zahtijevati promjene koda. Nekompatibilnosti su obično uzrokovane nedostatkom implementacije kodona određenih Python modula i nemogućnošću korištenja nekih od dinamičkih karakteristika jezika. Za svaku od ovih nekompatibilnosti, kompajler izdaje detaljnu dijagnostičku poruku s informacijama o tome kako riješiti problem.

Izvorni kod kompajlera, vremena izvođenja i standardne biblioteke je napisan sa C++ (koristeći LLVM razvoj) i Python-om, i se distribuira pod BSL licencom (Poslovna izvorna licenca). Suština BSL-a je da je kod proširene funkcionalnosti u početku dostupan za modifikaciju, ali se neko vrijeme može koristiti besplatno samo pod dodatnim uvjetima, koji zahtijevaju kupovinu komercijalne licence da bi se zaobišli.

Dodatni uslovi licence za projekat Codon zahtijevaju da se kod prenese na Apache License 2.0 nakon 3 godine (1. novembra 2025.). Do tada, licenca dozvoljava kopiranje, distribuciju i modifikaciju, sve dok se koristi u nekomercijalne svrhe.

Kako instalirati Codon na Linux?

Za one koji su zainteresirani da mogu instalirati ovaj kompajler, trebali bi znati da to mogu učiniti prilično lako, samo otvorite terminal i izvršite sljedeću naredbu koja će preuzeti i instalirati instalacijsku skriptu:

/bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)"

Što se tiče onih koji su zainteresovani da mogu sami da kompajliraju, oni to mogu učiniti pokretanjem sljedećih naredbi:

git clone --depth 1 -b codon https://github.com/exaloop/llvm-project
cmake -S llvm-project/llvm -B llvm-project/build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_INCLUDE_TESTS=OFF \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_ZLIB=OFF \
-DLLVM_ENABLE_TERMINFO=OFF \
-DLLVM_TARGETS_TO_BUILD=all
cmake --build llvm-project/build
cmake --install llvm-project/build

Nakon toga nastavljaju sa izgradnjom sa:

cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_DIR=$(llvm-config --cmakedir) \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++
cmake --build build --config Release

Završnicai ostavljam vam sljedeći link gdje se možete konsultovati više o detaljima kompilacije kao i gdje možete pronaći više informacija o korištenju ovog kompajlera (priručnik, primjeri, funkcije, između ostalog).

Link je ovaj.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.