Ruby 3.4.0 preview2 veröffentlicht

Gepostet von naruse am 7 Okt 2024

Wir freuen uns, die Veröffentlichung von Ruby 3.4.0-preview2 bekannt zu geben.

Prism

Der Standardparser wird von parse.y auf Prism umgeschaltet. [Feature #20564]

Sprachänderungen

  • String-Literale in Dateien ohne frozen_string_literal Kommentar geben nun eine Deprecation-Warnung aus, wenn sie mutiert werden. Diese Warnungen können mit -W:deprecated oder durch Setzen von Warning[:deprecated] = true aktiviert werden. Um diese Änderung zu deaktivieren, können Sie Ruby mit dem Kommandozeilenargument --disable-frozen-string-literal ausführen. [Feature #20205]

  • it wird hinzugefügt, um auf einen Blockparameter zu verweisen. [Feature #18980]

  • Keyword-Splatting mit nil beim Aufrufen von Methoden wird nun unterstützt. **nil wird ähnlich wie **{} behandelt, es werden keine Schlüsselwörter übergeben und keine Konvertierungsmethoden aufgerufen. [Bug #20064]

  • Blockübergabe ist im Index nicht mehr erlaubt. [Bug #19918]

  • Keyword-Argumente sind im Index nicht mehr erlaubt. [Bug #20218]

Aktualisierungen der Kernklassen

Hinweis: Hier werden nur herausragende Klassenaktualisierungen aufgeführt.

  • Ausnahme

    • Exception#set_backtrace akzeptiert nun ein Array von Thread::Backtrace::Location. Kernel#raise, Thread#raise und Fiber#raise akzeptieren ebenfalls dieses neue Format. [Feature #13557]
  • Range

    • Range#size löst nun TypeError aus, wenn der Bereich nicht iterierbar ist. [Misc #18984]

Kompatibilitätsprobleme

Hinweis: Ausgenommen sind Feature-Fehlerbehebungen.

  • Fehlermeldungen und Backtrace-Anzeigen wurden geändert.
    • Verwendung eines einfachen Anführungszeichens anstelle eines Backticks als öffnendes Zitat. [Feature #16495]
    • Klassenname wird vor dem Methodennamen angezeigt (nur wenn die Klasse einen permanenten Namen hat). [Feature #19117]
    • Kernel#caller, Methoden von Thread::Backtrace::Location usw. wurden ebenfalls entsprechend geändert.
    Old:
    test.rb:1:in `foo': undefined method `time' for an instance of Integer
            from test.rb:2:in `<main>'
    
    New:
    test.rb:1:in 'Object#foo': undefined method 'time' for an instance of Integer
            from test.rb:2:in '<main>'
    
  • Die Darstellung von Hash#inspect wurde geändert. [Bug #20433]
    • Symbolschlüssel werden mit der modernen Symbolschlüsselsyntax angezeigt: "{user: 1}"
    • Andere Schlüssel haben nun Leerzeichen um =>: '{"user" => 1}', während sie vorher keine hatten: '{"user"=>1}'

C-API-Aktualisierungen

  • rb_newobj und rb_newobj_of (und entsprechende Makros RB_NEWOBJ, RB_NEWOBJ_OF, NEWOBJ, NEWOBJ_OF) wurden entfernt. [Feature #20265]
  • Entfernte deprecated Funktion rb_gc_force_recycle. [Feature #18290]

Implementierungsverbesserungen

  • Array#each wurde in Ruby neu geschrieben, um die Leistung zu verbessern [Feature #20182].

Verschiedene Änderungen

  • Die Übergabe eines Blocks an eine Methode, die den übergebenen Block nicht verwendet, erzeugt eine Warnung im ausführlichen Modus (-w). [Feature #15554]

  • Das Neudefinieren einiger Kernmethoden, die vom Interpreter und JIT speziell optimiert werden, wie z. B. String.freeze oder Integer#+, erzeugt nun eine Performance-Klassenwarnung (-W:performance oder Warning[:performance] = true). [Feature #20429]

Details zu den Standard-Gems oder gebündelten Gems finden Sie in den GitHub-Releases wie Logger oder im Changelog.

Weitere Details finden Sie in NEWS oder in den Commit-Logs.

Mit diesen Änderungen wurden 4422 Dateien geändert, 163889 Einfügungen(+), 243380 Löschungen(-) seit Ruby 3.3.0!

Herunterladen

  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview2.tar.gz

    SIZE: 22722332
    SHA1: c23265acf6c07b4c1df1e41eebf8b4cf2f25b97b
    SHA256: 443cd7ec54ade4786bc974ce9f5d49f172a60f8edc84b597b7fe2bd2a94b8371
    SHA512: 0946d256587597bdf13437a50f7a3298c151133edea161a1c4806a04dcbd8c2e8a7fd617f3eda16c5c05f6e6346317562cc30ba67698f1fdd92237c03bdbd23e
    
  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview2.tar.xz

    SIZE: 16878876
    SHA1: dbff404b969012702dc500cac72f4d6b3822068e
    SHA256: 626bf4fe952323c15ec9a8999f470ec136ef91c0fc34c484646aaaa9a0b62ca7
    SHA512: f23257896a35d3a581cbf5e8c94fe28e45725e39608a7669f47f31085338b1b4929a4db40d826d8fee628afb97b0c25b2f9e7bda4cd42e80c1208c46caf54265
    
  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview2.zip

    SIZE: 28101194
    SHA1: 479bd223bca3225fb3a15984e3eae4efb9a40189
    SHA256: e00a6fbf6f9e25a725711a8aac7e38be6bed61de4db9862a405172b96bf38b5b
    SHA512: 0d9ee1c41920e4d594b0f2c40d02339b4e9a2cd5232f5ee914cab5a685cb4a2279fbbfd8fbad40ef0a53866db4e1de96068c62580ede6d8fab02550393bcbe81
    

Was ist Ruby

Ruby wurde erstmals 1993 von Matz (Yukihiro Matsumoto) entwickelt und wird nun als Open Source entwickelt. Es läuft auf mehreren Plattformen und wird weltweit, insbesondere für die Webentwicklung, eingesetzt.

Aktuelle Nachrichten

Ruby 4.0.0 veröffentlicht

Wir freuen uns, die Veröffentlichung von Ruby 4.0.0 bekannt zu geben. Ruby 4.0 führt „Ruby Box“ und „ZJIT“ ein und bringt viele Verbesserungen mit sich.

Veröffentlicht von naruse am 25. Dez 2025

Ein neuer Look für Rubys Dokumentation

Nach dem Redesign von ruby-lang.org gibt es weitere Neuigkeiten zur Feier des 30-jährigen Jubiläums von Ruby: docs.ruby-lang.org hat ein komplett neues Erscheinungsbild mit Aliki – dem neuen Standard-Theme von RDoc.

Veröffentlicht von Stan Lo am 23. Dez 2025

Neues Website-Erscheinungsbild

Wir freuen uns, ein umfassendes Redesign unserer Website bekannt zu geben. Das Design für dieses Update wurde von Taeko Akatsuka erstellt.

Veröffentlicht von Hiroshi SHIBATA am 22. Dez 2025

Ruby 4.0.0 preview3 veröffentlicht

Wir freuen uns, die Veröffentlichung von Ruby 4.0.0-preview3 bekannt zu geben. Ruby 4.0 führt Ruby::Box und „ZJIT“ ein und bringt viele Verbesserungen mit sich.

Veröffentlicht von naruse am 18. Dez 2025

Weitere Neuigkeiten...