Codon jẹ olupilẹṣẹ Python iṣẹ giga ti o ṣe akopọ koodu Python si koodu ẹrọ abinibi.
Laipe ni ikinni Exloop ti a fi han nipasẹ kan tweet awọn Tu ti ise agbese koodu Kodon, ti o ndagba a alakojo fun Python ede eyiti o le ṣe ipilẹṣẹ koodu ẹrọ mimọ bi o ti wu jade, ko so mọ akoko asiko Python.
Olupilẹṣẹ jẹ idagbasoke nipasẹ awọn onkọwe ti Python-like ede Seq ati pe o wa ni ipo bi itesiwaju idagbasoke rẹ. Ise agbese na nfun awọn oniwe-ara asiko isise fun executable awọn faili ati ile-ikawe iṣẹ ti o rọpo awọn ipe ikawe ni ede Python.
Nipa Codon
Iṣe ti awọn executables o wu O ti wa ni igbega bi isunmọ si awọn eto ti a kọ ni ede C. Ti a ṣe afiwe si lilo CPython, ere iṣẹ nigbati o ba n ṣajọ pẹlu Codon ni ifoju-lati jẹ awọn akoko 10-100 fun ipaniyan asa-ẹyọkan. Ni akoko kanna, ko dabi Python, Codon tun ṣe imuse iṣeeṣe ti lilo multithreading, eyiti o fun ọ laaye lati ṣaṣeyọri ilosoke paapaa ninu iṣẹ. kodẹni tun gba ọ laaye lati ṣajọ ni ipele iṣẹ lati lo wiwo ti a ṣajọpọ ni awọn iṣẹ akanṣe Python ti o wa.
kodẹni ti wa ni itumọ ti lilo a apọjuwọn faaji eyiti o fun ọ laaye lati faagun iṣẹ ṣiṣe nipasẹ awọn afikun ti o le ṣafikun awọn ile-ikawe tuntun, ṣe awọn iṣapeye iṣapejọ, ati paapaa pese atilẹyin fun sintasi afikun.
Fun apẹẹrẹ, ọpọlọpọ awọn afikun ti wa ni idagbasoke ni afiwe fun lilo ninu bioinformatics ati mathimatiki inawo. Akojo idoti Boehm ni a lo fun iṣakoso iranti.
alakojo ṣe atilẹyin pupọ julọ sintasi Python, ṣugbọn iṣakojọpọ sinu koodu abinibi fa nọmba awọn idiwọn ti o ṣe idiwọ fun lilo Codon bi aropo sihin fun CPython. Fun apẹẹrẹ, Codon nlo iru int 64-bit fun awọn nọmba, lakoko ti CPython ni awọn nọmba ailopin.
Atilẹyin codon fun awọn ipilẹ koodu nla le nilo awọn iyipada koodu. Awọn aiṣedeede jẹ deede nitori aini imuse Codon ti awọn modulu Python kan ati ailagbara lati lo diẹ ninu awọn ẹya agbara ede naa. Fun ọkọọkan awọn aiṣedeede wọnyi, olupilẹṣẹ ṣe alaye ifiranṣẹ iwadii alaye pẹlu alaye lori bii o ṣe le ṣatunṣe iṣoro naa.
Olukojọpọ, akoko asiko, ati koodu orisun ile-ikawe boṣewa jẹ kikọ pẹlu C ++ (lilo awọn idagbasoke LLVM) ati Python, ati ti pin labẹ iwe-aṣẹ BSL (Aṣẹ Orisun Iṣowo). Pataki ti BSL ni pe koodu iṣẹ ṣiṣe ti o gbooro wa lakoko wa fun iyipada, ṣugbọn fun igba diẹ o le ṣee lo laisi idiyele nikan labẹ awọn ipo afikun, eyiti o nilo rira iwe-aṣẹ iṣowo lati fori.
Awọn ofin afikun iwe-aṣẹ ise agbese Codon nilo ki koodu naa gbe lọ si Iwe-aṣẹ Apache 2.0 lẹhin ọdun 3 (Oṣu kọkanla 1, 2025). Titi di igba naa, iwe-aṣẹ ngbanilaaye didakọ, pinpin, ati iyipada, niwọn igba ti o ti lo fun awọn idi ti kii ṣe ti owo.
Bii o ṣe le fi Codon sori Linux?
Fun awọn ti o nifẹ lati ni anfani lati fi akopọ yii sori ẹrọ, wọn yẹ ki o mọ pe wọn le ṣe ni irọrun ni irọrun, kan ṣii ebute kan ki o ṣiṣẹ aṣẹ atẹle ti yoo ṣe igbasilẹ ati fi iwe afọwọkọ fifi sori ẹrọ sii:
/bin/bash -c "$(curl -fsSL https://exaloop.io/install.sh)"
Fun awọn ti o nifẹ lati ni anfani lati ṣajọ lori ara wọn, wọn le ṣe bẹ nipa ṣiṣe awọn aṣẹ wọnyi:
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
Lẹhin iyẹn, wọn tẹsiwaju lati kọ pẹlu: +
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
Igbẹhinati pe Mo fi ọ silẹ ọna asopọ atẹle nibiti o le kan si diẹ sii nipa awọn alaye ti akopo bi daradara bi ibi ti o ti le ri alaye siwaju sii nipa awọn lilo ti yi alakojo (Afowoyi, apeere, awọn iṣẹ, ninu ohun miiran).
Jẹ akọkọ lati sọ ọrọ