Codon, en Python-kompiler, er udgivet

Opstarten Exaloop har udgivet koden til Codon-projektet, som udvikler en compiler til Python-sproget, der er i stand til at generere ren maskinkode som output, ikke bundet til Python-runtimen. Compileren udvikles af forfatterne af det Python-lignende sprog Seq og er placeret som en fortsættelse af dets udvikling. Projektet tilbyder også sin egen runtime for eksekverbare filer og et bibliotek af funktioner, der erstatter bibliotekskald i Python. Kildekoderne til compileren, runtime og standardbiblioteket er skrevet ved hjælp af C++ (ved hjælp af udviklinger fra LLVM) og Python, og distribueres under BSL (Business Source License).

BSL-licensen blev foreslået af medstifterne af MySQL som et alternativ til Open Core-modellen. Essensen af ​​BSL er, at koden for avanceret funktionalitet i første omgang er tilgængelig for ændring, men i nogen tid kun kan bruges gratis, hvis yderligere betingelser er opfyldt, som kræver køb af en kommerciel licens for at omgå. Yderligere licensvilkår for Codon-projektet kræver, at koden overføres til Apache 2.0-licensen efter 3 år (1. november 2025). Indtil dette tidspunkt tillader licensen kopiering, distribution og ændring, forudsat at den bruges til ikke-kommercielle formål.

Ydeevnen af ​​de eksekverbare outputfiler præsenteres som værende tæt på programmer skrevet på C-sproget. Sammenlignet med at bruge CPython, er præstationsgevinsten ved kompilering ved hjælp af Codon estimeret til at være 10-100 gange for enkelttrådsudførelse. I modsætning til Python implementerer Codon desuden muligheden for at bruge multithreading, hvilket giver mulighed for en endnu større stigning i ydeevnen. Codon giver dig også mulighed for at kompilere på det individuelle funktionsniveau for at bruge den kompilerede repræsentation i eksisterende Python-projekter.

Codon er bygget ved hjælp af en modulær arkitektur, der giver dig mulighed for at øge funktionaliteten gennem plugins, hvormed du kan tilføje nye biblioteker, implementere optimeringer i compileren og endda give support til yderligere syntaks. For eksempel udvikles adskillige plugins sideløbende til brug i bioinformatik og finansiel matematik. Boehm-skraldsamleren bruges til at styre hukommelsen.

Compileren understøtter det meste Python-syntaks, men kompilering til maskinkode pålægger en række begrænsninger, der forhindrer Codon i at blive brugt som en gennemsigtig erstatning for CPython. For eksempel bruger Codon 64-bit int-typen til heltal, mens CPython bruger en ubegrænset størrelse for heltal. Store kodebaser kan kræve kodeændringer for at opnå Codon-kompatibilitet. Som regel skyldes inkompatibiliteter manglen på implementering for Codon af visse Python-moduler og manglende evne til at bruge nogle dynamiske funktioner i sproget. For hver sådan inkompatibilitet udsender compileren en detaljeret diagnosticeringsmeddelelse med information om, hvordan problemet kan omgås.

Codon, en Python-kompiler, er udgivet


Kilde: opennet.ru

Tilføj en kommentar