Ruby 3.3.0-preview2 veröffentlicht
Gepostet von naruse am 14. Sep 2023
Wir freuen uns, die Veröffentlichung von Ruby 3.3.0-preview2 bekannt zu geben. Ruby 3.3 fügt einen neuen reinen Ruby JIT-Compiler namens RJIT hinzu, verwendet Lrama als Parsergenerator und viele Leistungsverbesserungen, insbesondere YJIT.
RJIT
- Eingeführt wurde ein reiner Ruby JIT-Compiler RJIT, der MJIT ersetzt hat.
- RJIT unterstützt nur die x86_64-Architektur auf Unix-Plattformen.
- Im Gegensatz zu MJIT ist zur Laufzeit kein C-Compiler erforderlich.
- RJIT existiert nur zu experimentellen Zwecken.
- Sie sollten weiterhin YJIT in der Produktion verwenden.
- Wenn Sie daran interessiert sind, JIT für Ruby zu entwickeln, sehen Sie sich bitte die Präsentation von k0kubun am Tag 3 der RubyKaigi an.
Verwenden Sie Lrama anstelle von Bison
- Ersetzen Sie Bison durch Lrama LALR-Parsergenerator Feature #19637
- Wenn Sie interessiert sind, lesen Sie bitte Die Zukunftsvision des Ruby-Parsers
YJIT
- Wesentliche Leistungsverbesserungen gegenüber 3.2
- Die Unterstützung für Splat- und Rest-Argumente wurde verbessert.
- Register werden für Stack-Operationen der virtuellen Maschine zugewiesen.
- Mehr Aufrufe mit optionalen Argumenten werden kompiliert.
- Ausnahmebehandler werden ebenfalls kompiliert.
- Instanzvariablen verlassen den Interpreter nicht mehr mit megamorphen Object Shapes.
- Nicht unterstützte Aufruftypen verlassen den Interpreter nicht mehr.
Integer#!=,String#!=,Kernel#block_given?,Kernel#is_a?,Kernel#instance_of?,Module#===sind speziell optimiert.- Jetzt mehr als 3x schneller als der Interpreter bei optcarrot!
- Metadaten für kompilierten Code verbrauchen deutlich weniger Speicher.
- Generiert kompakteren Code auf ARM64
- Option zum Starten von YJIT im pausierten Modus und zum späteren manuellen Aktivieren
--yjit-pauseundRubyVM::YJIT.resume- Dies kann verwendet werden, um YJIT erst zu aktivieren, wenn Ihre Anwendung gestartet wurde
- Die mit
--yjit-statserzeugteratio_in_yjit-Statistik ist jetzt in Release-Builds verfügbar. Eine spezielle Statistik oder ein Dev-Build ist nicht mehr erforderlich. - Exit-Tracing-Option unterstützt jetzt Sampling
--trace-exits-sample-rate=N
- Umfassendere Tests und mehrere Fehlerbehebungen
Weitere bemerkenswerte neue Funktionen
Sprache
Leistungsverbesserungen
defined?(@ivar)wird mit Objektformen optimiert.
Weitere bemerkenswerte Änderungen seit 3.2
IRB
IRB hat mehrere Verbesserungen erhalten, darunter aber nicht beschränkt auf
- Erweiterte
irb:rdbg-Integration, die ein gleichwertiges Debugging-Erlebnis wiepry-byebugbietet (Doku). - Pager-Unterstützung für Befehle wie
lsundshow_cmds. - Genauere und hilfreichere Informationen, die von den Befehlen
lsundshow_sourcebereitgestellt werden.
Darüber hinaus wurde IRB umfangreich refaktorisiert und Dutzende von Fehlern behoben, um zukünftige Erweiterungen zu erleichtern.
Kompatibilitätsprobleme
Hinweis: Ausgenommen sind Feature-Fehlerbehebungen.
Entfernte Konstanten
Die folgenden veralteten Konstanten wurden entfernt.
Entfernte Methoden
Die folgenden veralteten Methoden wurden entfernt.
Stdlib-Kompatibilitätsprobleme
ext/readline wird eingestellt
- Wir haben
reline, eine reine Ruby-Implementierung, die mit derext/readlineAPI kompatibel ist. Wir setzen zukünftig aufreline. Wenn Sieext/readlineverwenden müssen, können Sieext/readlineüber rubygems.org mitgem install readline-extinstallieren. - Wir müssen keine Bibliotheken wie
libreadlineoderlibeditmehr installieren.
C-API-Aktualisierungen
Aktualisierte C-APIs
Die folgenden APIs wurden aktualisiert.
Entfernte C-APIs
Die folgenden veralteten APIs wurden entfernt.
Aktualisierungen der Standardbibliothek
RubyGems und Bundler warnen, wenn Benutzer ein Gem anfordern, das in einer zukünftigen Ruby-Version zur gebündelten Gem-Liste werden soll.
Die folgenden Standard-Gems werden aktualisiert.
- RubyGems 3.5.0.dev
- bigdecimal 3.1.4
- bundler 2.5.0.dev
- csv 3.2.8
- erb 4.0.3
- fiddle 1.1.2
- fileutils 1.7.1
- irb 1.7.4
- nkf 0.1.3
- optparse 0.4.0.pre.1
- psych 5.1.0
- reline 0.3.8
- stringio 3.0.9
- strscan 3.0.7
- syntax_suggest 1.1.0
- time 0.2.2
- timeout 0.4.0
- uri 0.12.2
- yarp 0.9.0
Die folgenden gebündelten Gems werden aktualisiert.
- minitest 5.19.0
- test-unit 3.6.1
- rexml 3.2.6
- rss 0.3.0
- net-imap 0.3.7
- rbs 3.2.1
- typeprof 0.21.8
- debug 1.8.0
Das folgende Standardgem ist jetzt gebündelt.
- racc 1.7.1
Details zu den Standard-Gems oder gebündelten Gems finden Sie in den GitHub-Releases wie Logger oder im Changelog.
Weitere Details finden Sie unter NEWS oder Commit-Protokollen.
Mit diesen Änderungen wurden 4970 Dateien geändert, 239635 Einfügungen(+), 165275 Löschungen(-) seit Ruby 3.2.0!
Herunterladen
-
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.gz
SIZE: 21074209 SHA1: cf7329019235dc36b8e3f382a8b8b744922b1163 SHA256: 30ce8b0fe11b37b5ac088f5a5765744b935eac45bb89a9e381731533144f5991 SHA512: 1c5a13e519e8487fd40d932b96d14fa729521925c288e7841ab5eada628e506ceca2605bae36eea1aa505d9253383d53cd933b7a4bff96e6de5b1130c7c558e6 -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.xz
SIZE: 15600992 SHA1: 606d6423137a24eef4f6b07d167596b63c7aaa17 SHA256: 62b1c4f586c70bf1cb58f2d909d0d824506315782e835f9dd3fcc0b659a70fc1 SHA512: 5ff609a66b7359006df0d87477cf70e6e26c5f40ced81b8254f8154f4fc82c77fed297471b55706c1a4466f2a4257999e933b2ed085f695ace265757ab9500a2 -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.zip
SIZE: 26095651 SHA1: 4441cd0db23d133e6e2f7dea28f931a68dac6ca5 SHA256: c9771d24c9b1eab532c04ed076087285601693e4d1c63f131fd078c47c5c0cea SHA512: bfeed21d011f891fe22510fe7242992c98f7fd2ce863d8be5740f56a34b726134cb3f5304e8b2dcd468fbc939648f10aae482eee15c1bf6c64b705484ed9e197
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