Codon, kompiler Python, diterbitkan

Startup Exaloop telah menerbitkan kode untuk proyek Codon, yang mengembangkan kompiler untuk bahasa Python yang mampu menghasilkan kode mesin murni sebagai output, tidak terikat dengan runtime Python. Kompiler sedang dikembangkan oleh penulis bahasa mirip Python Seq dan diposisikan sebagai kelanjutan dari pengembangannya. Proyek ini juga menawarkan runtime sendiri untuk file yang dapat dieksekusi dan pustaka fungsi yang menggantikan panggilan pustaka dengan Python. Kode sumber compiler, runtime, dan pustaka standar ditulis menggunakan C++ (menggunakan pengembangan dari LLVM) dan Python, dan didistribusikan di bawah BSL (Business Source License).

Lisensi BSL diusulkan oleh salah satu pendiri MySQL sebagai alternatif model Open Core. Inti dari BSL adalah bahwa kode fungsionalitas tingkat lanjut pada awalnya tersedia untuk dimodifikasi, tetapi untuk beberapa waktu dapat digunakan secara gratis hanya jika kondisi tambahan terpenuhi, yang memerlukan pembelian lisensi komersial untuk menghindarinya. Persyaratan lisensi tambahan proyek Codon mengharuskan kode ditransfer ke lisensi Apache 2.0 setelah 3 tahun (1 November 2025). Hingga saat ini, lisensi mengizinkan penyalinan, distribusi dan modifikasi, asalkan digunakan untuk tujuan non-komersial.

Kinerja file keluaran yang dapat dieksekusi disajikan mendekati program yang ditulis dalam bahasa C. Dibandingkan menggunakan CPython, peningkatan kinerja saat kompilasi menggunakan Codon diperkirakan 10-100 kali lipat untuk eksekusi single-threaded. Selain itu, tidak seperti Python, Codon juga mengimplementasikan kemampuan untuk menggunakan multithreading, yang memungkinkan peningkatan kinerja yang lebih besar. Codon juga memungkinkan Anda melakukan kompilasi pada tingkat fungsi individual untuk menggunakan representasi yang dikompilasi dalam proyek Python yang ada.

Codon dibangun menggunakan arsitektur modular yang memungkinkan Anda meningkatkan fungsionalitas melalui plugin, yang dengannya Anda dapat menambahkan perpustakaan baru, mengimplementasikan optimasi dalam kompiler, dan bahkan memberikan dukungan untuk sintaks tambahan. Misalnya, beberapa plugin sedang dikembangkan secara paralel untuk digunakan dalam bioinformatika dan matematika keuangan. Pengumpul sampah Boehm digunakan untuk mengelola memori.

Kompiler mendukung sebagian besar sintaksis Python, tetapi kompilasi ke kode mesin menerapkan sejumlah batasan yang mencegah Codon digunakan sebagai pengganti CPython yang transparan. Misalnya, Codon menggunakan tipe int 64-bit untuk bilangan bulat, sedangkan CPython menggunakan ukuran tak terbatas untuk bilangan bulat. Basis kode yang besar mungkin memerlukan perubahan kode untuk mencapai kompatibilitas Codon. Biasanya, ketidakcocokan disebabkan oleh kurangnya implementasi kodon dari modul Python tertentu dan ketidakmampuan untuk menggunakan beberapa fitur dinamis bahasa. Untuk setiap ketidakcocokan tersebut, kompiler mengeluarkan pesan diagnostik terperinci dengan informasi tentang cara menghindari masalah tersebut.

Codon, kompiler Python, diterbitkan


Sumber: opennet.ru

Tambah komentar