Ruby 3.4.0 veröffentlicht
(ruby-lang.org)-
Wie in den vergangenen Jahren wurde Ruby 3.4.0 am 25. Dezember veröffentlicht.
-
Zu den wichtigsten Neuerungen gehören die Einführung der
it-Block-Parameterreferenz, die Umstellung auf Prism als Standard-Parser, die Unterstützung für Happy Eyeballs Version 2 in der Socket-Bibliothek, Verbesserungen an YJIT und ein modulares GC. -
it-Block-Parameterreferenz- Ein neues
itwurde eingeführt, mit dem sich Block-Parameter ohne Variablennamen referenzieren lassen. Es funktioniert ähnlich wie_1und ist für einfache Blöcke praktisch.
- Ein neues
-
Wechsel zu Prism als Standard-Parser
- Der Standard-Parser wurde von
parse.yauf Prism umgestellt. Für Nutzer:innen sollte sich dabei kaum etwas ändern; bei Kompatibilitätsproblemen bitten wir um eine Meldung.
- Der Standard-Parser wurde von
-
Happy Eyeballs Version 2 in der Socket-Bibliothek
- Die Socket-Bibliothek unterstützt nun Happy Eyeballs Version 2 (RFC 8305). Dies ermöglicht in modernen Internetumgebungen effiziente und zuverlässige Netzwerkverbindungen.
-
YJIT-Verbesserungen
- In den meisten Benchmarks wurden die Leistung verbessert, der Speicherverbrauch reduziert sowie diverse Fehler behoben und neue Funktionen hinzugefügt.
-
Modulares GC
- Es wurde ein modulares GC eingeführt, das es ermöglicht, alternative Garbage-Collector-Implementierungen dynamisch zu laden. Eine Rust-Toolchain wird benötigt.
-
Sprachänderungen
- In Dateien ohne
frozen_string_literal-Kommentar wird beim Ändern von String-Literalen eine Warnung ausgegeben. Dazu gehören außerdem Änderungen wie das Keyword-Splatting mit**nil.
- In Dateien ohne
-
Core-Class-Updates
- Mehrere Core-Klassen wurden aktualisiert, darunter die Erweiterung von
Exception#set_backtrace, die nun Arrays vonThread::Backtrace::Locationakzeptiert.
- Mehrere Core-Klassen wurden aktualisiert, darunter die Erweiterung von
-
Standardbibliotheks-Updates
- Mehrere Standardbibliotheken wie RubyGems, Bundler, JSON und Tempfile wurden in Bezug auf Leistung verbessert und um neue Funktionen erweitert.
-
Kompatibilitätsprobleme
- Kompatibilitätsrelevante Änderungen wie geänderte Fehler- und Backtrace-Ausgabe sowie eine veränderte
Hash#inspect-Darstellung sind enthalten.
- Kompatibilitätsrelevante Änderungen wie geänderte Fehler- und Backtrace-Ausgabe sowie eine veränderte
-
C-API-Updates
- C-API-Updates wie die Entfernung der Funktionen
rb_newobjundrb_newobj_ofsind enthalten.
- C-API-Updates wie die Entfernung der Funktionen
-
Weitere Änderungen
- Es gibt zahlreiche weitere Änderungen, darunter Warnungen beim Übergeben ungenutzter Blöcke an Methoden.
2 Kommentare
Hacker News Kommentare
Große Vorfreude auf die Änderungen am Ruby-Parser. Wir haben gelernt, dass man yacc verwenden sollte, aber Ruby gehört jetzt zu den Sprachen mit handgeschriebenem Parser.
parse.ydurch 22k Zeilenprism.czu ersetzen, ist ein mutiger Schritt.Ruby 3.4.1 gilt schon als veraltet.
In den letzten Jahren hat sich die Leistung von Ruby deutlich verbessert. Seit Version 3.3 lassen wir alle Apps mit der Option
--yjitlaufen und sehen einen großen Unterschied.Shopifys Strategie entspricht der YJIT-Story. Wenn wir keinen Service refaktorisieren können, würden wir Ruby refaktorisieren.
Leistungsverbesserungen auf JIT- und GC-Ebene sind eine willkommene Zusatzleistung.
Wie eine Weihnachts-Tradition freue ich mich jedes Jahr auf das Ruby-Release.
Wir aktualisieren Rails-Apps jedes Jahr zum Jahresende, und in letzter Zeit wurde das Update einfacher, da es stabiler ist und die Performance deutlich besser geworden ist.
Glückwunsch und Dank an das Ruby-Team.
Seit den Neuigkeiten zu Rails 8 wollte ich Ruby ausprobieren, habe es aber wegen des zu komplizierten Setups aufgegeben.
html.erb-Dateien in VSCode und anderen Editoren komplett kaputt.Es gibt ein Skript, das die Installation von Rails auf macOS erleichtert.
=>
https://rails.new/