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_literalKommentar geben nun eine Deprecation-Warnung aus, wenn sie mutiert werden. Diese Warnungen können mit-W:deprecatedoder durch Setzen vonWarning[:deprecated] = trueaktiviert werden. Um diese Änderung zu deaktivieren, können Sie Ruby mit dem Kommandozeilenargument--disable-frozen-string-literalausfü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 ein Array vonThread::Backtrace::Location.Kernel#raise,Thread#raiseundFiber#raiseakzeptieren ebenfalls dieses neue Format. [Feature #13557]
-
Range
Range#sizelöst nunTypeErroraus, 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>' - Die Darstellung von
Hash#inspectwurde 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}'
- Symbolschlüssel werden mit der modernen Symbolschlüsselsyntax angezeigt:
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#eachwurde 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.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 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