Codon, un compilatore Python, hè publicatu

A startup Exaloop hà publicatu u codice per u prughjettu Codon, chì sviluppa un compilatore per a lingua Python capace di generà codice di macchina pura cum'è output, micca ligatu à u runtime Python. U compilatore hè sviluppatu da l'autori di a lingua simile à Python Seq è hè posizionatu cum'è una continuazione di u so sviluppu. U prughjettu offre ancu u so propiu runtime per i fugliali eseguibili è una biblioteca di funzioni chì rimpiazza e chjama di biblioteca in Python. I codici fonte di u compilatore, u runtime è a libreria standard sò scritti cù C ++ (aduprendu sviluppi da LLVM) è Python, è sò distribuiti sottu a BSL (Business Source License).

A licenza BSL hè stata pruposta da i cofundatori di MySQL cum'è una alternativa à u mudellu Open Core. L'essenza di BSL hè chì u codice di funziunalità avanzata hè inizialmente dispunibule per a mudificazione, ma per qualchì tempu pò esse usatu gratuitamente solu s'ellu ci sò cundizzioni supplementari, chì esigenu l'acquistu di una licenza cummerciale per evità. Termini di licenza supplementari di u prughjettu Codon necessitanu u codice per esse trasferitu à a licenza Apache 2.0 dopu à 3 anni (1 di nuvembre 2025). Finu à questu tempu, a licenza permette a copia, a distribuzione è a mudificazione, sempre chì hè aduprata per scopi non cummerciale.

A prestazione di i fugliali eseguibili di output hè presentata cum'è vicinu à i prugrammi scritti in lingua C. In cunfrontu cù l'usu di CPython, u guadagnu di rendiment quandu si compila cù Codon hè stimatu à esse 10-100 volte per l'esekzione unicu filatu. Inoltre, à u cuntrariu di Python, Codon implementa in più a capacità di utilizà multithreading, chì permette un aumentu ancu più grande di u rendiment. Codon permette ancu di cumpilà à u nivellu di funzione individuale per utilizà a rapprisentazione compilata in i prughjetti Python esistenti.

Codon hè custruitu cù una architettura modulare chì permette di aumentà a funziunalità attraversu plugins, cù quale pudete aghjunghje novi librerie, implementà ottimisazioni in u compilatore, è ancu furnisce supportu per sintassi supplementari. Per esempiu, parechji plugins sò sviluppati in parallelu per l'usu in bioinformatica è matematica finanziaria. U cullettore di basura Boehm hè utilizatu per gestisce a memoria.

U compilatore supporta a maiò parte di a sintassi di Python, ma a compilazione à u codice macchina impone una quantità di limitazioni chì impediscenu à Codon di esse usatu cum'è un sustitutu trasparente per CPython. Per esempiu, Codon usa u tipu int 64-bit per integers, mentri CPython usa una dimensione illimitata per integers. Grandi codebases ponu esse bisognu di cambiamenti di codice per ottene a cumpatibilità Codon. In regula, l'incompatibilità sò causati da a mancanza di implementazione per Codon di certi moduli Python è l'incapacità di utilizà alcune caratteristiche dinamiche di a lingua. Per ogni tali incompatibilità, u compilatore emette un missaghju di diagnosticu detallatu cù infurmazioni nantu à cumu aggirà u prublema.

Codon, un compilatore Python, hè publicatu


Source: opennet.ru

Add a comment