Programmiersprache: Crystal 1.7 führt neue Engine für reguläre Ausdrücke ein
Mit Verbesserungen, Bugfixes und der neuen Library PCRE2 für die Regex-Klasse startet die Programmiersprache Crystal 1.7 in das Jahr 2023.
(Bild: Shutterstock.com)
- Matthias Parbel
Crystal, eine – nach dem Verständnis des dahinterstehenden Entwicklerteams – "Programmiersprache für Menschen und Computer", hat Version 1.7 erreicht. Neben zahlreichen Fehlerbereinigungen und Verbesserungen wartet das neue Release der von Ruby inspirierten Sprache auch mit ein paar Neuerungen sowie Breaking Changes auf. Insgesamt hat das Crystal-Team laut Ankündigung 152 Änderungen gegenüber der Vorgängerversion 1.6.2 einfließen lassen.
Neue Engine für reguläre Ausdrücke
Für das Ausführen regulärer Ausdrücke in der regex
-Klasse nutzt Crystal bisher die Engine der Library PCRE. Mit dem neuen Release leitet das Entwicklungsteam den Übergang auf den Nachfolger PCRE2 ein. Obwohl im Hinblick auf die Rückwärtskompatibilität keine Probleme zu erwarten seien, müssen Entwicklerinnen und Entwickler libpcre2
vorläufig noch über den Compiler-Flag -Duse_pcre2
explizit aktivieren. Da der Compiler die Engine auch zum Validieren von Regex-Literalen nutzt, will das Crystal-Team etwaigen Schwierigkeiten vorbeugen, die sich durch das Verwenden verschiedener Engines mit leichten Unterschieden in der Syntax ergeben könnten. In einem der nächsten Crystal-Releases soll PCRE2 dann aber zur Standard-Engine avancieren.
Eine komfortablere Bedienung verspricht die REPL-Schnittstelle (Read Eval Print Loop) des Interpreters. Sie lässt unter anderem mehrzeilige Eingaben zu und bietet eine Befehlshistorie sowie mehrere Tastenbelegungen. Neu im Release ist zudem, dass Lib-Funktionen nun bereits in den Top-Level-Makros sichtbar sind.
Breaking Changes beachten
Beim Wechsel auf Crystal 1.7 sollten Entwicklerinnen und Entwickler aber auch einige Breaking Changes beachten. Im Sinne einer Vereinheitlichung wurde etwa File.real_path
in File.realpath
umbenannt. Die bisherige Variante ist inzwischen als veraltet (deprecated) gekennzeichnet, lässt sich aber noch bis zum Erscheinen des nächsten Major Release verwenden.
Im Zuge der Überarbeitung der Fehlerbehandlung für libXML2 wurde XML.errors
ebenfalls als veraltet (deprecated) gekennzeichnet. Die Library soll nun keine Fehler mehr außerhalb des aktuellen Kontexts ausgeben. Das Crystal-Team empfiehlt jedoch mit Nachdruck, auf Fehler stets direkt im jeweiligen Kontext über XML::Reader#errors
und XML::Node#errors
zuzugreifen.
Informationen zu den weiteren Neuerungen wie dem Update der Shards auf Version 0.17.2 finden sich im Blogbeitrag zu Crystal 1.7. Einen kompletten Überblick sämtlicher Änderungen bietet das Changelog im GitHub-Repo des Projekts.
Mit einer von Ruby inspirierten Syntax
Die Programmiersprache Crystal geht auf eine Schöpfung von Ary Borenzweig, Brian J. Cardiff und Juan Wajnerman zurück, die das Projekt 2011 noch unter dem Namen Joy gestartet hatten, sich dann aber binnen weniger Tage auf Crystal verständigten. Die statisch typisierte Sprache besitzt eine von Ruby inspirierte Syntax. Zudem setzt Crystal standardmäßig auf Null-Safety: Variablen dürfen unabhängig vom Typ nicht den Wert Nil
haben. Bis zur Veröffentlichung der ersten Hauptversion vergingen rund 10 Jahre. Seither geht die Weiterentwicklung deutlich schneller voran: Version 1.1, in der Makros Zugriff auf das Top-Level-Modul erhielten, erschien Mitte 2021 – und nun wurde bereits die zweite Hauptversion vorgelegt.
(map)