Codon, en Python-kompilator, er publisert

Oppstarten Exaloop har publisert koden for Codon-prosjektet, som utvikler en kompilator for Python-språket som er i stand til å generere ren maskinkode som utdata, ikke knyttet til Python-kjøretiden. Kompilatoren utvikles av forfatterne av det Python-lignende språket Seq og er posisjonert som en fortsettelse av utviklingen. Prosjektet tilbyr også sin egen kjøretid for kjørbare filer og et bibliotek med funksjoner som erstatter bibliotekanrop i Python. Kildekodene til kompilatoren, kjøretiden og standardbiblioteket er skrevet ved hjelp av C++ (ved hjelp av utviklinger fra LLVM) og Python, og distribueres under BSL (Business Source License).

BSL-lisensen ble foreslått av medgründerne av MySQL som et alternativ til Open Core-modellen. Essensen av BSL er at koden for avansert funksjonalitet i utgangspunktet er tilgjengelig for modifikasjon, men i noen tid kan brukes gratis bare hvis ytterligere betingelser er oppfylt, som krever kjøp av en kommersiell lisens for å omgå. Ytterligere lisensvilkår for Codon-prosjektet krever at koden overføres til Apache 2.0-lisensen etter 3 år (1. november 2025). Inntil dette tidspunktet tillater lisensen kopiering, distribusjon og modifikasjon, forutsatt at den brukes til ikke-kommersielle formål.

Ytelsen til de kjørbare filene presenteres som nær programmer skrevet på C-språket. Sammenlignet med bruk av CPython, er ytelsesgevinsten ved kompilering ved bruk av Codon estimert til å være 10-100 ganger for enkelt-tråds utførelse. Dessuten, i motsetning til Python, implementerer Codon i tillegg muligheten til å bruke multithreading, noe som gir en enda større økning i ytelse. Codon lar deg også kompilere på individuelt funksjonsnivå for å bruke den kompilerte representasjonen i eksisterende Python-prosjekter.

Codon er bygget ved hjelp av en modulær arkitektur som lar deg øke funksjonaliteten gjennom plugins, som du kan legge til nye biblioteker med, implementere optimaliseringer i kompilatoren og til og med gi støtte for ekstra syntaks. For eksempel utvikles flere plugins parallelt for bruk i bioinformatikk og finansiell matematikk. Boehm søppelsamler brukes til å administrere minne.

Kompilatoren støtter de fleste Python-syntaks, men kompilering til maskinkode pålegger en rekke begrensninger som forhindrer at Codon brukes som en transparent erstatning for CPython. For eksempel bruker Codon 64-biters int-typen for heltall, mens CPython bruker en ubegrenset størrelse for heltall. Store kodebaser kan kreve kodeendringer for å oppnå Codon-kompatibilitet. Som regel er inkompatibiliteter forårsaket av manglende implementering for Codon av visse Python-moduler og manglende evne til å bruke noen dynamiske funksjoner i språket. For hver slik inkompatibilitet utsteder kompilatoren en detaljert diagnostisk melding med informasjon om hvordan man kan omgå problemet.

Codon, en Python-kompilator, er publisert


Kilde: opennet.ru

Legg til en kommentar