Codon, pengkompil untuk Python diterbitkan

Startup Exaloop telah menerbitkan kod projek Codon, yang membangunkan pengkompil untuk bahasa Python, yang mampu menjana kod mesin tulen sebagai output, tidak terikat dengan runtime Python. Pengkompil dibangunkan oleh pengarang bahasa seperti Python Seq dan diletakkan sebagai kesinambungan pembangunannya. Projek ini juga menawarkan masa jalan sendiri untuk fail boleh laku dan perpustakaan fungsi yang menggantikan panggilan perpustakaan dalam bahasa Python. Kod sumber pengkompil, masa jalan dan perpustakaan standard ditulis menggunakan C++ (menggunakan pembangunan daripada LLVM) dan Python, dan diedarkan di bawah BSL (Lesen Sumber Perniagaan).

BSL telah dicadangkan oleh pengasas bersama MySQL sebagai alternatif kepada model Open Core. Intipati BSL ialah kod fungsi lanjutan pada mulanya tersedia untuk pengubahsuaian, tetapi untuk beberapa waktu ia boleh digunakan secara percuma hanya tertakluk kepada syarat tambahan, yang memerlukan pembelian lesen komersial untuk memintas. Syarat lesen tambahan bagi projek Codon memerlukan kod untuk dipindahkan ke lesen Apache 2.0 selepas 3 tahun (1 November 2025). Sehingga masa itu, lesen membenarkan penyalinan, pengedaran dan pengubahsuaian, dengan syarat ia digunakan untuk tujuan bukan komersial.

Prestasi output boleh laku disebut-sebut sebagai dekat dengan program yang ditulis dalam bahasa C. Berbanding dengan menggunakan CPython, keuntungan prestasi apabila menyusun menggunakan Codon dianggarkan 10-100 kali ganda untuk pelaksanaan satu benang. Pada masa yang sama, tidak seperti Python, Codon juga melaksanakan kemungkinan menggunakan multithreading, yang membolehkan anda mencapai peningkatan prestasi yang lebih besar. Codon juga membolehkan anda menyusun pada tahap fungsi untuk menggunakan paparan tersusun dalam projek Python sedia ada.

Codon dibina menggunakan seni bina modular yang membolehkan anda meluaskan fungsi melalui pemalam yang boleh menambah perpustakaan baharu, melaksanakan pengoptimuman pengkompil, dan juga menyediakan sokongan untuk sintaks tambahan. Sebagai contoh, beberapa pemalam sedang dibangunkan secara selari untuk digunakan dalam bioinformatik dan matematik kewangan. Pengumpul sampah Boehm digunakan untuk pengurusan ingatan.

Pengkompil menyokong kebanyakan sintaks Python, tetapi kompilasi kepada kod asli mengenakan beberapa batasan yang menghalang Codon daripada digunakan sebagai pengganti telus untuk CPython. Sebagai contoh, Codon menggunakan jenis int 64-bit untuk integer, manakala CPython mempunyai integer tanpa had. Keserasian kodon untuk pangkalan kod yang besar mungkin memerlukan perubahan kod. Biasanya, ketidakserasian disebabkan oleh kekurangan pelaksanaan untuk Codon modul Python tertentu dan ketidakupayaan untuk menggunakan beberapa ciri dinamik bahasa tersebut. Untuk setiap ketidakserasian tersebut, pengkompil mengeluarkan mesej diagnostik terperinci dengan maklumat tentang cara mengatasi masalah tersebut.

Codon, pengkompil untuk Python diterbitkan


Sumber: opennet.ru

Tambah komen