Codon, compiler para sa Python na inilathala

Inilathala ng Startup Exaloop ang code ng proyekto ng Codon, na bumubuo ng isang compiler para sa wikang Python, na may kakayahang bumuo ng purong machine code bilang output, na hindi nakatali sa Python runtime. Ang compiler ay binuo ng mga may-akda ng Python-like language na Seq at nakaposisyon bilang isang pagpapatuloy ng pag-unlad nito. Nag-aalok din ang proyekto ng sarili nitong runtime para sa mga executable na file at isang library ng mga function na pumapalit sa mga tawag sa library sa wikang Python. Ang source code ng compiler, runtime at standard library ay isinulat gamit ang C++ (gamit ang mga development mula sa LLVM) at Python, at ipinamahagi sa ilalim ng BSL (Business Source License).

Ang BSL ay iminungkahi ng MySQL co-founder bilang isang alternatibo sa Open Core na modelo. Ang kakanyahan ng BSL ay ang code ng pinalawig na pag-andar ay magagamit sa simula para sa pagbabago, ngunit para sa ilang oras maaari itong magamit nang walang bayad napapailalim lamang sa mga karagdagang kundisyon, na nangangailangan ng pagbili ng isang komersyal na lisensya upang ma-bypass. Ang mga karagdagang tuntunin ng lisensya ng proyekto ng Codon ay nangangailangan ng code na ilipat sa Apache 2.0 na lisensya pagkatapos ng 3 taon (Nobyembre 1, 2025). Hanggang sa panahong iyon, pinapayagan ng lisensya ang pagkopya, pamamahagi at pagbabago, sa kondisyon na ito ay ginagamit para sa mga di-komersyal na layunin.

Ang pagganap ng mga executable ng output ay itinuturing na malapit sa mga programang nakasulat sa wikang C. Kung ikukumpara sa paggamit ng CPython, ang performance gain kapag nag-compile gamit ang Codon ay tinatayang 10-100 beses para sa single-threaded execution. Kasabay nito, hindi tulad ng Python, ang Codon ay nagpapatupad din ng posibilidad ng paggamit ng multithreading, na nagbibigay-daan sa iyo upang makamit ang isang mas malaking pagtaas sa pagganap. Pinapayagan ka rin ng Codon na mag-compile sa antas ng pag-andar upang magamit ang pinagsama-samang view sa mga umiiral na proyekto ng Python.

Ang Codon ay binuo gamit ang isang modular na arkitektura na nagbibigay-daan sa iyong palawigin ang functionality sa pamamagitan ng mga plugin na maaaring magdagdag ng mga bagong library, magpatupad ng mga compiler optimization, at kahit na magbigay ng suporta para sa karagdagang syntax. Halimbawa, maraming mga plugin ang binuo nang magkatulad para magamit sa bioinformatics at financial mathematics. Ang Boehm garbage collector ay ginagamit para sa memory management.

Sinusuportahan ng compiler ang karamihan sa Python syntax, ngunit ang compilation sa native code ay nagpapataw ng ilang limitasyon na pumipigil sa Codon na magamit bilang isang transparent na kapalit para sa CPython. Halimbawa, ginagamit ng Codon ang 64-bit na uri ng int para sa mga integer, habang ang CPython ay may walang limitasyong mga integer. Ang pagiging tugma ng codon para sa malalaking codebase ay maaaring mangailangan ng mga pagbabago sa code. Karaniwan, ang mga hindi pagkakatugma ay sanhi ng kakulangan ng pagpapatupad para sa Codon ng ilang partikular na mga module ng Python at ang kawalan ng kakayahan na gamitin ang ilan sa mga dynamic na tampok ng wika. Para sa bawat hindi pagkakatugma, naglalabas ang compiler ng isang detalyadong mensahe ng diagnostic na may impormasyon kung paano aayusin ang problema.

Codon, compiler para sa Python na inilathala


Pinagmulan: opennet.ru

Magdagdag ng komento