Compiler: Cython 0.28 bietet langerwartete neue Features
Der Compiler Cython (für Python und dessen C-Erweiterung Cython) steht aktuell in der Version 0.28 zur Verfügung. Zu den neuen Features zählen unter anderem die von den Nutzern lang erwarteten Read-Only Memory Views.
In einem aktuellen Blogeintrag hat Cython Core Developer Stefan Behnel die VerfĂĽgbarkeit der Version 0.28 des Cython-Compilers bekanntgegeben. Der Entwickler bezeichnet diese neue Version als einen groĂźen Schritt in der Entwicklung dieses Compilers.
Weiterlesen nach der Anzeige
Neben neuen Features und Verbesserungen beziehungsweise Optimierungen haben die Macher hinter dem Compiler fĂĽr Python und dessen C-Erweiterung Cython unter anderem die Integration aktueller Python-Features (einschlieĂźlich die der kommenden Version 3.7) verbessert. Die Integration mit dem Pythran-Compiler fĂĽr AusdrĂĽcke aus der Programmbibliothek NumPy wurde ebenfalls erweitert.
Bild: Python Software Foundation (PSF)
Lange erwartete Änderungen
Als die Änderung dieser Version, die wohl von vielen Nutzern am längsten nachgefragt wurde, bezeichnet Behnel die nun zur Verfügung stehende Unterstützung für Read-Only Memory Views. Entwickler können nun einen solchen Memory View recht einfach als const beziehungsweise const double [:,:] deklarieren. Dann wird Cython dafür einen Read-Only Puffer anfordern. Dadurch werden – so Behnel weiter – Interaktionen mit Bytes Objects und anderen Providern von nicht beschreibbaren Puffern möglich.
Eine zweite wichtige Änderung, die wohl ebenso häufig nachgefragt und gewünscht wurde, ist die Unterstützung für C-Code, der unverändert in die generierten Dateien übernommen wird. Der Hintergrund dazu: Einige Programmkonstrukte können nur im unveränderten C-Code verfasst werden, wenn sie von Cython genutzt werden sollen.
Dazu zählen ganz besonders C-Hacks und -Makros aber auch einige Anpassungen an C-Spezifika, die von externen Bibliotheken eingesetzt werden. Bis jetzt mussten die Cython-Nutzer deshalb einen externen C-Header erstellen, um diese Dinge zu implementieren. Anschließend mussten sie dann noch einen cdef extern from... Block verwenden, um den Code in Cython zu integrieren. Cython 0.28 erlaubt nun docstrings für diese cdef extern Blocks (sowohl mit als auch ohne einen spezifischen Namen für die Header-Datei), die dann beliebigen C/C++-Code beinhalten können.
Allerdings warnt der Cython-Entwickler an dieser Stelle, dass dieses Feature absolut nur für Experten geeignet sei, da der C-Code völlig unverändert übernommen wird und Cython so keinerlei Möglichkeit besitzt, ihn zu überprüfen oder gar in Hinblick auf die Sicherheit zu untersuchen. Entwickler können dieses Feature also nur auf eigenes Risiko einsetzen.
Weiterlesen nach der Anzeige
Weitere Einzelheiten zu den Verbesserungen und Erweiterungen in Cython 0.28 finden Entwickler in dem sehr ausfĂĽhrlichen "What's new"-Blogeintrag oder auf der Cython Website, wo auch Links zum Download von Cython bereitstehen.
(fms)
Über 90.000 Leser vertrauen bereits darauf – wählen Sie jetzt Ihr passendes Paket!
Mit heise+ lesen Sie alle Inhalte auf heise online. Zusätzlich zu unseren Magazin-Inhalten erhalten Sie damit weitere exklusive Tests, Ratgeber und Hintergründe.