Ruby 2.6.0-preview1 veröffentlicht

Veröffentlicht von naruse am 24. Feb 2018

Wir freuen uns, die Veröffentlichung von Ruby 2.6.0-preview1 bekannt zu geben.

Ruby 2.6.0-preview1 ist die erste Vorschau auf Ruby 2.6.0. Dieses Preview1 wird früher als üblich veröffentlicht, da es eine wichtige neue Funktion enthält: JIT.

JIT

Ruby 2.6 führt eine erste Implementierung eines JIT-Compilers (Just-in-time) ein.

Der JIT-Compiler zielt darauf ab, die Leistung jeder Ruby-Programmausführung zu verbessern. Im Gegensatz zu gewöhnlichen JIT-Compilern für andere Sprachen führt der JIT-Compiler von Ruby die JIT-Kompilierung auf einzigartige Weise durch, indem er C-Code auf eine Festplatte schreibt und einen gängigen C-Compiler-Prozess startet, um nativen Code zu generieren. Siehe auch: MJIT-Organisation von Vladimir Makarov.

Verwendung: Geben Sie einfach --jit in der Befehlszeile oder die Umgebungsvariable $RUBYOPT an. Die Angabe von --jit-verbose=1 ermöglicht die Ausgabe grundlegender Informationen über die laufende JIT-Kompilierung. Weitere Optionen finden Sie in ruby --help.

Der Hauptzweck dieser JIT-Veröffentlichung ist es, eine Gelegenheit zu bieten, zu überprüfen, ob es auf Ihrer Plattform funktioniert und Sicherheitsschwachstellen vor der 2.6-Version zu finden. Derzeit wird der JIT-Compiler nur unterstützt, wenn Ruby mit gcc oder clang kompiliert wurde und der Compiler zur Laufzeit verfügbar ist. Andernfalls können Sie ihn derzeit nicht verwenden.

Ab 2.6.0-preview1 bereiten wir gerade die Infrastruktur für JIT vor und nur sehr wenige Optimierungen sind implementiert. Mit dieser Veröffentlichung können Sie einige potenzielle Verbesserungen in Mikro-Benchmarks messen, aber sie ist NICHT für Benchmarking der endgültigen Leistung des JIT-Compilers von Ruby bereit, insbesondere für große Programme wie Rails-Anwendungen.

Wir werden das Inlining von Methoden im JIT-Compiler implementieren, was die Leistung von Ruby voraussichtlich erheblich steigern wird.

Außerdem planen wir, die unterstützten Plattformen zu erweitern, und der nächste Plan ist die Unterstützung von Visual Studio.

Bleiben Sie dran für das neue Zeitalter der Ruby-Performance.

Neue Funktionen

  • Fügt Random.bytes hinzu. [Feature #4938]
  • Fügt Binding#source_location hinzu. [Feature #14230]

    Diese Methode gibt den Quellcode-Standort der Bindung zurück, ein 2-Element-Array von __FILE__ und __LINE__. Traditionell konnten dieselben Informationen durch eval("[__FILE__, __LINE__]", binding) abgerufen werden, aber wir planen, dieses Verhalten zu ändern, sodass Kernel#eval den Quellcode-Standort von binding ignoriert [Bug #4352]. Daher sollten Benutzer diese neu eingeführte Methode anstelle von Kernel#eval verwenden.

  • Fügt die Option :exception hinzu, damit Kernel.#system einen Fehler auslöst, anstatt false zurückzugeben. [Feature #14386]

Leistungsverbesserungen

  • Beschleunigt Proc#call, da wir uns nicht mehr um $SAFE kümmern müssen. [Feature #14318]

    Mit dem Benchmark lc_fizzbuzz, der Proc#call so oft verwendet, können wir Verbesserungen von x1,4 messen [Bug #10212].

  • Beschleunigt block.call, wobei block ein Blockparameter übergeben wird. [Feature #14330]

    Ruby 2.5 verbessert die Leistung der Blockübergabe. [Feature #14045] Zusätzlich verbessert Ruby 2.6 die Leistung des Aufrufs übergebener Blöcke. Mit Mikro-Benchmarks können wir eine 2,6-fache Verbesserung feststellen.

Weitere bemerkenswerte Änderungen seit 2.5

  • $SAFE ist ein prozessglobaler Zustand und wir können ihn wieder auf 0 setzen. [Feature #14250]

  • Das Übergeben von safe_level an ERB.new ist veraltet. Die Argumente trim_mode und eoutvar wurden zu Schlüsselwortargumenten geändert. [Feature #14256]

  • RubyGems 2.7.6 zusammengeführt

Siehe NEWS oder die Commit-Protokolle für Details.

Mit diesen Änderungen wurden seit Ruby 2.5.0 1115 Dateien geändert, 23023 Einfügungen (+), 14748 Löschungen (-)!

Heute, am 24. Februar, hat Ruby seinen 25. Geburtstag. Alles Gute zum Geburtstag Ruby, und viel Spaß beim Programmieren mit Ruby 2.6.0-preview1!

Herunterladen

  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.tar.gz

    SIZE:   16082501 bytes
    SHA1:   94b4a2f5f992dc9855364284e9c64316bf129c90
    SHA256: 2023c42676d9237481e1a97157d5e2ecc10db5e320d5b9cf872ec1d293265d61
    SHA512: 004696c4f087333ba7cb2285418dcce70f399966ae8fed817aab9759fd2d75beb088c4aeb294fcd4260112e8422f490cd4dbdfce402d73f96bb679b8bb3e1607
    
  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.zip

    SIZE:   19807007 bytes
    SHA1:   24d76f67bf913348eca783a2ecf6f3faf37299ae
    SHA256: 6c883927e80430cf07f2d90728d6c2c71164223f378a48ebf964d3b66319f623
    SHA512: 1e7f318cec1b7875fd9891df671078de7585b556695a2a85708483ddcacfd6e0b63b70ec2535e92ff981b4f72063721ed552df49688e066666fcd7ae520ae667
    
  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.tar.bz2

    SIZE:   14104578 bytes
    SHA1:   9f0fb79643a4673a839b0c8496eccc6e1dbd022d
    SHA256: 8bd6c373df6ee009441270a8b4f86413d101b8f88e8051c55ef62abffadce462
    SHA512: d9cb270529a97670d54f43a0236fab072714e715c39277dab70b7a1843ec818e6700e47e1384c7256f9e0ae41ab2c0b768a0de38a5ecf4f4fff5da6ef5ad4944
    
  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0-preview1.tar.xz

    SIZE:   11423984 bytes
    SHA1:   bbbc89d760cdaadbca3cbff587295864edeff0af
    SHA256: 1d99139116e4e245ce543edb137b2a8873c26e9f0bde88d8cee6789617cc8d0e
    SHA512: d12ff29778d8d940344619881b4d8247c2fb6b44ac2b2dbddb7078828e893cfac9a5a95b5588f0afdbed52bdb6dea95cff1b9ce3ad47dfa62209e97dab8810b6
    

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...