Codon, ein Python-Compiler, wird veröffentlicht

Das Startup Exaloop hat den Code für das Codon-Projekt veröffentlicht, das einen Compiler für die Python-Sprache entwickelt, der in der Lage ist, reinen Maschinencode als Ausgabe zu generieren, der nicht an die Python-Laufzeit gebunden ist. Der Compiler wird von den Autoren der Python-ähnlichen Sprache Seq entwickelt und ist als Fortsetzung ihrer Entwicklung positioniert. Das Projekt bietet außerdem eine eigene Laufzeit für ausführbare Dateien und eine Funktionsbibliothek, die Bibliotheksaufrufe in Python ersetzt. Die Quellcodes des Compilers, der Laufzeit und der Standardbibliothek werden mit C++ (unter Verwendung von Entwicklungen von LLVM) und Python geschrieben und unter der BSL (Business Source License) vertrieben.

Die BSL-Lizenz wurde von den Mitbegründern von MySQL als Alternative zum Open-Core-Modell vorgeschlagen. Der Kern von BSL besteht darin, dass der Code mit erweiterter Funktionalität zunächst zur Änderung verfügbar ist, für einige Zeit jedoch nur dann kostenlos genutzt werden kann, wenn zusätzliche Bedingungen erfüllt sind, deren Umgehung den Erwerb einer kommerziellen Lizenz erfordert. Zusätzliche Lizenzbedingungen des Codon-Projekts erfordern, dass der Code nach 2.0 Jahren (3. November 1) auf die Apache 2025-Lizenz übertragen wird. Bis zu diesem Zeitpunkt erlaubt die Lizenz das Kopieren, Verbreiten und Verändern, sofern die Nutzung für nichtkommerzielle Zwecke erfolgt.

Die Leistung der ausführbaren Ausgabedateien ähnelt der Leistung von Programmen, die in der Sprache C geschrieben sind. Im Vergleich zur Verwendung von CPython beträgt der Leistungsgewinn beim Kompilieren mit Codon für die Single-Thread-Ausführung schätzungsweise das 10- bis 100-fache. Darüber hinaus implementiert Codon im Gegensatz zu Python zusätzlich die Möglichkeit, Multithreading zu nutzen, was eine noch größere Leistungssteigerung ermöglicht. Mit Codon können Sie auch auf der Ebene einzelner Funktionen kompilieren, um die kompilierte Darstellung in vorhandenen Python-Projekten zu verwenden.

Codon basiert auf einer modularen Architektur, die es Ihnen ermöglicht, die Funktionalität durch Plugins zu erweitern, mit denen Sie neue Bibliotheken hinzufügen, Optimierungen im Compiler implementieren und sogar Unterstützung für zusätzliche Syntax bereitstellen können. Beispielsweise werden parallel mehrere Plugins für den Einsatz in der Bioinformatik und Finanzmathematik entwickelt. Zur Speicherverwaltung wird der Boehm Garbage Collector verwendet.

Der Compiler unterstützt die meisten Python-Syntaxen, das Kompilieren in Maschinencode bringt jedoch eine Reihe von Einschränkungen mit sich, die verhindern, dass Codon als transparenter Ersatz für CPython verwendet wird. Codon verwendet beispielsweise den 64-Bit-Typ int für Ganzzahlen, während CPython eine unbegrenzte Größe für Ganzzahlen verwendet. Bei großen Codebasen sind möglicherweise Codeänderungen erforderlich, um Codon-Kompatibilität zu erreichen. Inkompatibilitäten werden in der Regel durch die fehlende Implementierung bestimmter Python-Module für Codon und die Unfähigkeit, einige dynamische Funktionen der Sprache zu nutzen, verursacht. Für jede dieser Inkompatibilitäten gibt der Compiler eine detaillierte Diagnosemeldung mit Informationen zur Umgehung des Problems aus.

Codon, ein Python-Compiler, wird veröffentlicht


Source: opennet.ru

Kommentar hinzufügen