Codon, naujas didelio našumo Python kompiliatorius 

kodonas

Codon yra didelio našumo Python kompiliatorius, kompiliuojantis Python kodą į vietinį mašinos kodą.

Neseniai „Exaloop“ startuolis buvo pristatytas per tviterį išleidžiamas projekto kodas kodonas, kuris vysto a Python kalbos kompiliatorius kuris gali generuoti gryną mašinos kodą kaip išvestį, nesusietą su Python vykdymo laiku.

Kompiliatorių sukūrė į Pythoną panašios Seq kalbos autoriai ir jis yra jos kūrimo tęsinys. Projektas taip pat siūlo savo vykdomųjų failų vykdymo laiką ir funkcijų biblioteka, kuri pakeičia bibliotekos iškvietimus Python kalba.

Apie Kodoną

Spektaklis išvesties vykdomųjų failų Jis reklamuojamas kaip artimas programoms, parašytoms C kalba. Palyginti su CPython naudojimu, našumo padidėjimas kompiliuojant su Codon yra 10–100 kartų, kai vykdomas vienos gijos vykdymas. Tuo pačiu metu, skirtingai nei Python, Codon papildomai įdiegia galimybę naudoti daugiasriegius ryšius, kurie leidžia pasiekti dar didesnį našumo padidėjimą. kodonas taip pat leidžia kompiliuoti funkcijų lygiu naudoti sudarytą rodinį esamuose Python projektuose.

Kodonas sukurta naudojant modulinę architektūrą kuri leidžia išplėsti funkcionalumą naudojant papildinius, kurie gali pridėti naujų bibliotekų, optimizuoti kompiliatorius ir netgi teikti papildomos sintaksės palaikymą.

Pavyzdžiui, lygiagrečiai kuriami keli papildiniai, skirti naudoti bioinformatikoje ir finansinėje matematikoje. Boehm šiukšlių rinktuvas naudojamas atminties valdymui.

kompiliatorius palaiko daugumą Python sintaksės, tačiau kompiliavimas į vietinį kodą nustato daugybę apribojimų, kurie neleidžia Codon naudoti kaip skaidraus CPython pakaitalo. Pavyzdžiui, „Codon“ sveikiesiems skaičiams naudoja 64 bitų int tipą, o „CPython“ turi neribotą sveikųjų skaičių skaičių.

Kodono palaikymui didelėms kodų bazėms gali reikėti pakeisti kodą. Nesuderinamumas paprastai atsiranda dėl to, kad kai kuriuose Python moduliuose nėra įdiegtas kodonas ir nesugebėjimas naudoti kai kurių dinaminių kalbos funkcijų. Dėl kiekvieno iš šių nesuderinamybių kompiliatorius pateikia išsamų diagnostinį pranešimą su informacija, kaip išspręsti problemą.

Kompiliatorius, vykdymo laikas ir standartinis bibliotekos šaltinio kodas parašytas naudojant C++ (naudojant LLVM plėtrą) ir Python, ir platinamas pagal BSL licenciją (Verslo šaltinio licencija). BSL esmė ta, kad išplėstinio funkcionalumo kodas iš pradžių yra prieinamas modifikavimui, tačiau kurį laiką juo galima naudotis nemokamai tik esant papildomoms sąlygoms, kurių apeiti reikia įsigyti komercinę licenciją.

Codon projekto papildomos licencijos sąlygos reikalauja, kad kodas būtų perkeltas į Apache License 2.0 po 3 metų (1 m. lapkričio 2025 d.). Iki tol licencija leidžia kopijuoti, platinti ir keisti, jei ji naudojama nekomerciniais tikslais.

Kaip įdiegti „Codon“ sistemoje „Linux“?

Tiems, kurie domisi galimybe įdiegti šį kompiliatorių, jie turėtų žinoti, kad jie gali tai padaryti gana lengvai, tiesiog atidarykite terminalą ir vykdykite šią komandą, kuri atsisiųs ir įdiegs diegimo scenarijų:

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

Kalbant apie tuos, kurie domisi galimybe kompiliuoti savarankiškai, jie gali tai padaryti vykdydami šias komandas:

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

Po to jie pradeda statyti naudodami:

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

Baigimasir palieku jums toliau pateiktą nuorodą, kur galėsite pasikonsultuoti daugiau apie kompiliavimo detales, taip pat kur galite rasti daugiau informacijos apie šio kompiliatoriaus naudojimą (vadovas, pavyzdžiai, funkcijos, be kita ko).

Nuoroda yra tokia.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.