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.

In Pocket speichern vorlesen Druckansicht 13 Kommentare lesen

(Bild: Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Matthias Parbel
Inhaltsverzeichnis

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.

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.

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.

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)