Ruby 3.4.0 preview1 veröffentlicht

Gepostet von naruse am 16 Mai 2024

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

Sprachänderungen

  • String-Literale in Dateien ohne ein frozen_string_literal Kommentar verhalten sich jetzt so, als wären sie eingefroren. Wenn sie modifiziert werden, wird eine Deprecation-Warnung ausgegeben. Diese Warnungen können mit -W:deprecated aktiviert oder durch Setzen von Warning[:deprecated] = true aktiviert werden. Um diese Änderung zu deaktivieren, können Sie Ruby mit dem --disable-frozen-string-literal Kommandozeilenargument 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 Arrays von Thread::Backtrace::Location. Kernel#raise, Thread#raise und Fiber#raise akzeptieren ebenfalls dieses neue Format. [Feature #13557]
  • Range

    • Range#size löst jetzt 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>'
    

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 wird zur besseren Leistung in Ruby neu geschrieben [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 den Commit-Logs.

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

Herunterladen

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

    SIZE: 22507726
    SHA1: 1619cbe06b5a8c774711b3351d18bb0f84f1d017
    SHA256: 1a3c322e90cb22e5fba0b5d257bb2be9988affa3867eba7642ed981fdde895bb
    SHA512: 29c0e32179f7b823b6708f5328e495cd333fe8dd88f7df7d9051deab47add67b14d899bba565bba1a77e1b04c9693d9708541445c112925777bb6891cb7b2b62
    
  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview1.tar.xz

    SIZE: 16709536
    SHA1: 6041ad2651527d01c36106de3d3cdab680ed3132
    SHA256: 4ee4ec44366050d4b2ee1d88034cc63e0b9174a1a6650285777f3d3447213a97
    SHA512: 4ce306b9beb1e2d88c76d7f809724b66bed17e354c07a2b54aa050fc2035652e4d83deadc8dbf7a375bbdb1c816f2996334bb8e7ff5e6c24b71a858bf6b0cb7c
    
  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview1.zip

    SIZE: 27731060
    SHA1: 5d79834050369ea9241d86467bf93e9e89e2ab7a
    SHA256: bd2a6c0e8396698e6f6768c00b0f155510859bb6fb92420f7b7abec610e71dbb
    SHA512: 36ea6897e6ad769141516f4c1bb18989fbde27a76f0f3abcce947f8b6b79639846ba93907e085181f7d305ab06ad73f1bbb37928049c8c951d33176ee444abbf
    

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...