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_literalKommentar verhalten sich jetzt so, als wären sie eingefroren. Wenn sie modifiziert werden, wird eine Deprecation-Warnung ausgegeben. Diese Warnungen können mit-W:deprecatedaktiviert oder durch Setzen vonWarning[:deprecated] = trueaktiviert werden. Um diese Änderung zu deaktivieren, können Sie Ruby mit dem--disable-frozen-string-literalKommandozeilenargument ausführen. [Feature #20205] -
itwird hinzugefügt, um auf einen Blockparameter zu verweisen. [Feature #18980] -
Keyword-Splatting mit
nilbeim Aufrufen von Methoden wird nun unterstützt.**nilwird ä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_backtraceakzeptiert nun Arrays vonThread::Backtrace::Location.Kernel#raise,Thread#raiseundFiber#raiseakzeptieren ebenfalls dieses neue Format. [Feature #13557]
-
Range
Range#sizelö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 vonThread::Backtrace::Locationusw. 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_newobjundrb_newobj_of(und entsprechende MakrosRB_NEWOBJ,RB_NEWOBJ_OF,NEWOBJ,NEWOBJ_OF) wurden entfernt. [Feature #20265]- Entfernte deprecated Funktion
rb_gc_force_recycle. [Feature #18290]
Implementierungsverbesserungen
Array#eachwird 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.freezeoderInteger#+, erzeugt nun eine Performance-Klassenwarnung (-W:performanceoderWarning[: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