Codon, yeni bir yüksek performanslı Python derleyicisi 

kodon

Codon, Python kodunu yerel makine koduna derleyen yüksek performanslı bir Python derleyicisidir.

Son zamanlarda Startup Exaloop tanıtıldı bir tweet aracılığıyla proje kodunun yayınlanması kodon, kim geliştirir Python dili için derleyici Python çalışma zamanına bağlı olmayan, çıktı olarak saf makine kodu üretebilen.

Derleyici, Python benzeri Seq dilinin yazarları tarafından geliştirilmiştir ve gelişiminin devamı olarak konumlandırılmıştır. proje aynı zamanda yürütülebilir dosyalar için kendi çalışma zamanını sunar ve Python dilinde kitaplık çağrılarının yerini alan bir işlev kitaplığı.

Kodon Hakkında

performans yürütülebilir çıktıların C dilinde yazılmış programlara yakın olarak tanıtılmaktadır. CPython kullanımıyla karşılaştırıldığında, Codon ile derleme sırasındaki performans kazancının, tek iş parçacıklı yürütme için 10-100 kat olduğu tahmin edilmektedir. Aynı zamanda, Python'dan farklı olarak Codon, performansta daha da büyük bir artış elde etmenizi sağlayan çoklu iş parçacığı kullanma olasılığını da uygular. kodon ayrıca işlev düzeyinde derlemenize izin verir derlenmiş görünümü mevcut Python projelerinde kullanmak için.

Kodon modüler bir mimari kullanılarak inşa edilmiştir bu, yeni kitaplıklar ekleyebilen, derleyici optimizasyonları uygulayabilen ve hatta ek sözdizimi için destek sağlayabilen eklentiler aracılığıyla işlevselliği genişletmenize olanak tanır.

Örneğin, biyoinformatik ve finansal matematikte kullanım için paralel olarak birkaç eklenti geliştirilmektedir. Boehm çöp toplayıcı, bellek yönetimi için kullanılır.

derleyici Python sözdiziminin çoğunu destekler, ancak yerel kodda derleme, Codon'un CPython'un şeffaf bir ikamesi olarak kullanılmasını engelleyen bir dizi sınırlama getirir. Örneğin, Codon tamsayılar için 64-bit int tipini kullanırken, CPython sınırsız tamsayılara sahiptir.

Büyük kod tabanları için kodon desteği, kod değişiklikleri gerektirebilir. Uyumsuzluklar genellikle belirli Python modüllerinin Codon uygulamasının olmamasından ve dilin bazı dinamik özelliklerinin kullanılamamasından kaynaklanır. Bu uyumsuzlukların her biri için derleyici, sorunun nasıl giderileceğine ilişkin bilgileri içeren ayrıntılı bir tanılama iletisi yayınlar.

Derleyici, çalışma zamanı ve standart kitaplık kaynak kodu, C++ (LLVM geliştirmeleri kullanılarak) ve Python ile yazılır ve BSL lisansı altında dağıtılır (İş Kaynak Lisansı). BSL'nin özü, genişletilmiş işlevsellik kodunun başlangıçta değiştirilmek üzere mevcut olmasıdır, ancak bir süre için yalnızca atlamak için ticari bir lisansın satın alınmasını gerektiren ek koşullara tabi olarak ücretsiz olarak kullanılabilir.

Codon projesinin ek lisans koşulları, kodun 2.0 yıl sonra (3 Kasım 1) Apache License 2025'a aktarılmasını gerektirir. O zamana kadar lisans, ticari olmayan amaçlarla kullanıldığı sürece kopyalamaya, dağıtmaya ve değiştirmeye izin verir.

Linux'ta Codon nasıl kurulur?

Bu derleyiciyi kurabilmekle ilgilenenler, bunu oldukça kolay bir şekilde yapabileceklerini bilmeliler, sadece bir terminal açın ve kurulum betiğini indirip yükleyecek olan aşağıdaki komutu çalıştırın:

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

Kendi başlarına derleyebilmek isteyenler, aşağıdaki komutları çalıştırarak bunu yapabilirler:

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

Bundan sonra, şunlarla oluşturmaya devam ederler:

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

Sonuçve size daha fazla danışabileceğiniz aşağıdaki bağlantıyı bırakıyorum derlemenin ayrıntıları ve bu derleyicinin kullanımı hakkında daha fazla bilgiyi nerede bulabileceğiniz hakkında (kılavuz, örnekler, işlevler, diğer şeylerin yanı sıra).

Bağlantı bu.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.