Das Ruby-Projekt hat am 25. Dezember 2016 Ruby 2.4.0 als erste stabile Version der neuen Reihe veröffentlicht. Die Laufzeit führt die bisher getrennten Klassen Fixnum und Bignum zu Integer zusammen. Weitere Änderungen betreffen Unicode, reguläre Ausdrücke und die Untersuchung von Fehlern in laufenden Programmen.
Native Erweiterungen müssen den Integer-Umbau berücksichtigen
Die Versionshinweise zu Ruby 2.4.0 nennen Folgen für Code, der von den bisherigen Ganzzahlklassen abhängt. Auf Ruby-Ebene verweisen die alten Konstanten auf Integer. In der C-Schnittstelle entfallen dagegen rb_cFixnum und rb_cBignum. Erweiterungen, die diese verwenden, müssen angepasst werden.
Ein erfolgreich gestartetes Ruby-Skript allein reicht daher nicht als Migrationsprüfung. Auch verwendete Gems mit nativem Code und Tests für bisherige Typunterscheidungen gehören dazu. Werkzeuge wie GitHubs Ruby-Bibliothek Scientist zum Vergleich alter und neuer Implementierungen behandeln einen anderen Teil der Qualitätssicherung und ersetzen solche Laufzeit- und Kompatibilitätstests nicht.
Unicode und Fehlersuche erhalten neue Funktionen
Methoden zum Wechsel der Groß- und Kleinschreibung berücksichtigen nun Unicode statt ausschließlich ASCII. Regexp#match? liefert einen Wahrheitswert, ohne die Rückreferenz $~ zu verändern. Das vermeidet zusätzliche Objekte, wenn lediglich geprüft werden soll, ob ein Muster passt.
Mit binding.irb lässt sich an einer Stelle im Programm eine interaktive IRB-Sitzung öffnen. Für Threads kann report_on_exception aktiviert werden, um unbehandelte Ausnahmen sichtbar zu machen. Die Meldungen der Deadlock-Erkennung zeigen zusätzlich Backtraces und Abhängigkeiten zwischen wartenden Threads.

