Menü
Developer

Alternative Ruby-Implementierung Rubinius in die dritte Epoche gestartet

Nachdem im September 2015 das Versionierungsschema der Ruby-Implementierung geändert wurde, begann kürzlich die 3.x-Reihe. Zeit einen Blick darauf zu werden, was sie erreichen soll.

Von
vorlesen Drucken Kommentare lesen
Rubinius in dritte Epoche gestartet

Den Beginn der 3.x-Serie hat Rubinius-Mitentwickler Brian Shirai zum Anlass genommen, um die Gemeinde rund um die alternative Ruby-Implementierung durch einen Blogeintrag auf den neusten Stand zu bringen. Die sogenannte dritte Epoche begann mit der Veröffentlichung von Version 3.0 am ersten Tag des Jahres 2016. Seitdem erschienen bereits fünf Updates, sodass momentan Rubinius 3.5 aktuell ist.

Für die 3.x-Reihe gibt es eine Reihe von Zielen, zu denen unter anderem die intensivere Nutzung von LLVM und das Entfernen von Ruby aus dem Build-System und den Kernkomponenten zählen. Was den Einsatz der Compilerinfrastruktur angeht, soll LLVM unter anderem für eine neue Version des Foreign Function Interface zum Einsatz kommen. Außerdem sollen sich künftig mehr Artefakte mit ihr erstellen lassen und das Team strebt an, LLVM-Funktionen besser in Rubinius zu nutzen.

Aber auch die Performance soll in der dritten Epoche angegangen werden. So plant Shirai unter anderem, neue Instruktionen einzuführen und die Garbage Collection zu überarbeiten. Zudem ist eine Event Loop im Gespräch und man arbeitet bereits an einer CodeDB, welche beispielsweise die Analyse zur Laufzeit beschleunigen soll.

Versionierung und aktuelle Neuerungen

Das Projekt folgt seit September 2015 einem MAJOR.MINOR- oder EPOCH.SEQ-Versionierungsschema, in dem die erste Zahl die Epoche, eine Spanne zwischen zwei bedeutenden Ereignissen oder vorher festgelegten Werten, angibt und die zweite mit jedem Release hochgezählt wird. Für die Markierungen der Enden einer Epoche ließen sich die Entwickler durch die Mathematik inspirieren: Für die dritte Epoche sind 3.14159265 Aktualisierungen vorgesehen, das Ende der zweiten signalisierte Version 2.71828182. Jede neue Veröffentlichung führt neuen Code beziehungsweise Hinweise auf veralteten Code ein oder entfernt zuvor als veraltet markierte Elemente. Das neue Schema sollte den Release-Prozess vereinfachen und die Auslieferung neuer Funktionen und fehlerbehebender Maßnahmen erleichtern.

In den ersten fünf Updates der 3.x-Reihe wurden unter anderem die Docker-Dateien aktualisiert, die Diagnosemöglichkeiten verbessert und die Thread-Gruppierungsoption ThreadGroup überarbeitet.
Zudem war die Halting-Funktion des Systems Gegenstand einiger Maßnahmen, was einer der ersten Schritte zur Einführung eines Systemobjekts ist, das einige Aufgaben des Umgebungsobjekt übernehmen soll. Eine komplette Übersicht der Neuerungen lässt sich den Release Notes entnehmen. (jul)