4 Punkte von GN⁺ 2024-12-26 | 2 Kommentare | Auf WhatsApp teilen
  • 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 it wurde eingeführt, mit dem sich Block-Parameter ohne Variablennamen referenzieren lassen. Es funktioniert ähnlich wie _1 und ist für einfache Blöcke praktisch.
  • Wechsel zu Prism als Standard-Parser

    • Der Standard-Parser wurde von parse.y auf Prism umgestellt. Für Nutzer:innen sollte sich dabei kaum etwas ändern; bei Kompatibilitätsproblemen bitten wir um eine Meldung.
  • 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.
  • Core-Class-Updates

    • Mehrere Core-Klassen wurden aktualisiert, darunter die Erweiterung von Exception#set_backtrace, die nun Arrays von Thread::Backtrace::Location akzeptiert.
  • 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.
  • C-API-Updates

    • C-API-Updates wie die Entfernung der Funktionen rb_newobj und rb_newobj_of sind enthalten.
  • Weitere Änderungen

    • Es gibt zahlreiche weitere Änderungen, darunter Warnungen beim Übergeben ungenutzter Blöcke an Methoden.

2 Kommentare

 
GN⁺ 2024-12-26
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.

    • 16k Zeilen parse.y durch 22k Zeilen prism.c zu 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 --yjit laufen 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.

    • Die Installation von Ruby 3.3 auf Mac und Windows war eine große Herausforderung.
    • Auch in Docker musste die Version angepasst werden, und in devContainers gab es ebenfalls Probleme.
    • Nach der Installation war das Syntax-Highlighting für Rails-html.erb-Dateien in VSCode und anderen Editoren komplett kaputt.
    • Ich habe online nach einer Lösung gesucht, aber kein Glück gehabt und es schließlich aufgegeben.
    • Ich habe es auf Mac, Windows und Linux versucht und jedes Mal gescheitert; wenn jemand dieses Problem lösen könnte, wäre das ein Weihnachtsgeschenk.
 
eajrezz 2024-12-26

Nach den Rails-8-News wollte ich Ruby ausprobieren, habe es aber aufgegeben, weil der Installationsprozess zu schwierig war.

Es gibt ein Skript, das die Installation von Rails auf macOS erleichtert.
=>
https://rails.new/