Codon, egy új, nagy teljesítményű Python fordító 

kodon

A Codon egy nagy teljesítményű Python-fordító, amely a Python-kódot natív gépi kódra fordítja.

Nemrégiben a Startup Exaloop bemutatta egy tweeten keresztül a projekt kódjának kiadása kodon, aki fejleszti a fordítóprogram a Python nyelvhez amelyek tiszta gépi kódot tudnak előállítani kimenetként, nem kötve a Python futási környezethez.

A fordítóprogramot a Python-szerű Seq nyelv szerzői fejlesztették ki, és a fejlesztés folytatásaként helyezték el. A projekt is saját futási környezetet kínál a futtatható fájlok számára és egy függvénytár, amely a Python nyelvben a könyvtárhívásokat helyettesíti.

A Codonról

teljesítmény a kimeneti végrehajtható fájlok közül Úgy reklámozzák, hogy közel áll a C nyelven írt programokhoz. A CPython használatához képest a teljesítménynövekedés Codonnal történő fordításkor a becslések szerint 10-100-szoros egyszálú végrehajtás esetén. Ugyanakkor, a Pythontól eltérően, a Codon emellett megvalósítja a többszálú használat lehetőségét, amely lehetővé teszi a teljesítmény még nagyobb növekedését. kodon függvény szintű fordítást is lehetővé tesz az összeállított nézet használatához a meglévő Python-projektekben.

kodon moduláris architektúrával épül fel amely lehetővé teszi a funkcionalitás kiterjesztését olyan beépülő modulokon keresztül, amelyek új könyvtárakat adhatnak hozzá, végrehajthatják a fordítóoptimalizálást, és még további szintaxist is támogathatnak.

Például párhuzamosan több beépülő modult fejlesztenek a bioinformatika és a pénzügyi matematika területén. A Boehm szemétgyűjtő memóriakezelésre szolgál.

a fordító támogatja a legtöbb Python szintaxist, de a natív kódba fordítás számos korlátozást támaszt, amelyek megakadályozzák, hogy a Codont a CPython transzparens helyettesítőjeként használják. Például a Codon a 64 bites int típust használja az egész számokhoz, míg a CPython korlátlan egész számmal rendelkezik.

A nagy kódbázisok kodontámogatása kódmódosítást igényelhet. Az inkompatibilitást jellemzően az okozza, hogy bizonyos Python-modulok nem tartalmaznak kodont, és nem tudják használni a nyelv egyes dinamikus funkcióit. Ezen összeférhetetlenségek mindegyike esetén a fordító részletes diagnosztikai üzenetet ad ki a probléma megoldására vonatkozó információkkal.

A fordító, a futtatókörnyezet és a szabványos könyvtár forráskódja C++-szal (LLVM fejlesztések használatával) és Pythonnal íródott, és BSL licenc alatt terjesztik (Üzleti forrásengedély). A BSL lényege, hogy a kibővített funkcionalitás kódja kezdetben módosítható, de egy ideig ingyenesen csak további feltételek mellett használható, amelyek megkerüléséhez kereskedelmi licenc vásárlása szükséges.

A Codon projekt további licencfeltételei megkövetelik, hogy a kódot 2.0 év után (3. november 1.) át kell vinni az Apache License 2025-ba. Addig is a licenc lehetővé teszi a másolást, terjesztést és módosítást, amennyiben azt nem kereskedelmi célokra használják fel.

Hogyan telepítsem a Codont Linuxra?

Azok számára, akik érdeklődnek a fordító telepítése iránt, tudniuk kell, hogy ezt meglehetősen egyszerűen megtehetik, csak nyisson meg egy terminált, és hajtsa végre a következő parancsot, amely letölti és telepíti a telepítőszkriptet:

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

Azok, akik érdeklődnek az önálló fordítás iránt, a következő parancsok futtatásával tehetik meg:

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

Ezt követően folytatják az építkezést:

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

Véglegesítésés hagyom neked a következő linket, ahol bővebben tájékozódhatsz az összeállítás részleteiről, valamint arról, hogy hol találhat további információkat a fordító használatáról (kézikönyv, példák, függvények, többek között).

A link ez.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.