Ruby 3.3.0-preview1 veröffentlicht
Gepostet von naruse am 12. Mai 2023
Wir freuen uns, die Veröffentlichung von Ruby 3.3.0-preview1 bekannt zu geben. Ruby 3.3 fügt einen neuen reinen Ruby JIT-Compiler namens RJIT hinzu, verwendet Lrama als Parser-Generator 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
- Signifikante Leistungsverbesserungen gegenüber 3.2
- Splat- und Rest-Argumente wurden verbessert.
- Register werden für Stack-Operationen der virtuellen Maschine zugewiesen.
- Mehr Aufrufe mit optionalen Argumenten werden kompiliert.
Integer#!=,String#!=,Kernel#block_given?,Kernel#is_a?,Kernel#instance_of?,Module#===sind speziell optimiert.- Instanzvariablen verlassen den Interpreter nicht mehr mit megamorphen Objektformen.
- Metadaten für kompilierten Code verbrauchen deutlich weniger Speicher.
- Verbesserte Codeerzeugung auf ARM64
- Option zum Starten von YJIT im Pausenmodus und spätere manuelle Aktivierung
--yjit-pauseundRubyVM::YJIT.resume- Dies kann verwendet werden, um YJIT erst zu aktivieren, wenn Ihre Anwendung vollständig gestartet ist.
- Exit-Tracing-Option unterstützt jetzt Sampling
--trace-exits-sample-rate=N
- Mehrere Fehlerbehebungen
Weitere bemerkenswerte neue Funktionen
Sprache
Leistungsverbesserungen
defined?(@ivar)wird mit Objektformen optimiert.
Weitere bemerkenswerte Änderungen seit 3.2
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
Die folgenden Standard-Gems werden aktualisiert.
- RubyGems 3.5.0.dev
- bigdecimal 3.1.4
- bundler 2.5.0.dev
- csv 3.2.7
- fiddle 1.1.2
- fileutils 1.7.1
- irb 1.6.4
- optparse 0.4.0.pre.1
- psych 5.1.0
- reline 0.3.3
- stringio 3.0.7
- strscan 3.0.7
- syntax_suggest 1.0.4
- time 0.2.2
- timeout 0.3.2
- uri 0.12.1
Die folgenden gebündelten Gems werden aktualisiert.
- minitest 5.18.0
- rbs 3.1.0
- typeprof 0.21.7
- debug 1.8.0
Details zu den Standard-Gems oder gebündelten Gems finden Sie in den GitHub-Releases wie Logger oder im Changelog.
Siehe NEWS oder Commit-Logs für weitere Details.
Mit diesen Änderungen wurden seit Ruby 3.2.0 1922 Dateien geändert, 75283 Einfügungen (+) und 44896 Löschungen (-)!
Herunterladen
-
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.gz
SIZE: 20428213 SHA1: 5445eec1cd9ddb44e03e74568cac94209c91b42d SHA256: c3454a911779b8d747ab0ea87041030d002d533edacb2485fe558b7084da25ed SHA512: 0f891f140ddc6372aa7c4459f8784126e0c341db7b80e72c51e441c5153c43c2d7b965f7807c076862ac84b9b8b0c6a66bbf66fc341746016151397bb21c782a -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.xz
SIZE: 15074600 SHA1: 4c22ebca287c87811e1050bf4d59b7d32255b212 SHA256: ae300b49e06c13087dd163b97eddd38db895dc8e0c9904284119795d75303fbb SHA512: 46c1134dba5810847f7f6b4298900a91f5225679d7873548b271f4ef2ad1dc168722562a2e468a2ccf136314176ee613d8c7792fd4411a3f7a44c80b93b417ee -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.zip
SIZE: 24846962 SHA1: 31774fa653c54107b6afc30adda3a0350d8f41d2 SHA256: 6ecafecf83f2cacf446b2326012f2b6ee1a0614d8dd29bb1fb3f105c27e2c553 SHA512: 794bef847fefbbdbbdced85975a00c9289ef6464810408af3f0f2055052d6b5ef5576dbd41e0d87bb73f1ad276d8e27c36018610f8e2b9936828c0e692f611f0
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