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

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-pause und RubyVM::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 der ext/readline API kompatibel ist. Wir setzen zukünftig auf reline. Wenn Sie ext/readline verwenden müssen, können Sie ext/readline über rubygems.org mit gem install readline-ext installieren.
  • Wir müssen keine Bibliotheken wie libreadline oder libedit mehr 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

Weitere Neuigkeiten...