Ruby 2.5.0 veröffentlicht

Gepostet von naruse am 25. Dez 2017

Wir freuen uns, die Veröffentlichung von Ruby 2.5.0 bekannt zu geben.

Ruby 2.5.0 ist die erste stabile Veröffentlichung der Ruby 2.5-Serie. Sie führt viele neue Funktionen und Leistungsverbesserungen ein. Die bemerkenswerten Änderungen sind wie folgt:

Neue Funktionen

  • rescue/else/ensure dürfen nun direkt mit do/end Blöcken verwendet werden. [Feature #12906]
  • Fügt yield_self hinzu, um einen gegebenen Block in seinem Kontext zu ergeben. Im Gegensatz zu tap gibt es das Ergebnis des Blocks zurück. [Feature #6721]
  • Unterstützt die Messung von Branch-Coverage und Method-Coverage. Die Branch-Coverage zeigt an, welche Zweige ausgeführt werden und welche nicht. Die Method-Coverage zeigt an, welche Methoden aufgerufen werden und welche nicht. Durch Ausführen einer Testsuite mit diesen neuen Funktionen wissen Sie, welche Zweige und Methoden ausgeführt werden, und können die Gesamtabdeckung der Testsuite strenger bewerten. [Feature #13901]
  • Hash#slice [Feature #8499] und Hash#transform_keys [Feature #13583]
  • Struct.new kann Klassen erstellen, die Schlüsselwortargumente akzeptieren. [Feature #11925]
  • Enumerable#any?, all?, none? und one? akzeptieren ein Musterargument. [Feature #11286]
  • Die Suche nach Top-Level-Konstanten ist nicht mehr verfügbar. [Feature #11547]
  • Eine unserer beliebtesten Bibliotheken, pp.rb, wird jetzt automatisch geladen. Sie müssen require "pp" nicht mehr schreiben. [Feature #14123]
  • Druckt Backtrace und Fehlermeldung in umgekehrter Reihenfolge (älteste Meldung zuerst, jüngste Meldung zuletzt). Wenn ein langer Backtrace auf Ihrem Terminal (TTY) angezeigt wird, können Sie die Fehlerzeile am Ende des Backtraces leicht finden. Beachten Sie, dass die Reihenfolge nur dann umgekehrt ist, wenn der Backtrace direkt auf dem Terminal ausgegeben wird. [Feature #8661] [experimentell]

Leistungsverbesserungen

  • Etwa 5-10 % Leistungssteigerung durch Entfernen aller trace-Anweisungen aus dem gesamten Bytecode (Instruktionssequenzen). Die trace-Anweisung wurde hinzugefügt, um TracePoint zu unterstützen. In den meisten Fällen wird TracePoint jedoch nicht verwendet und trace-Anweisungen sind reiner Overhead. Stattdessen verwenden wir nun eine dynamische Instrumentierungstechnik. Weitere Informationen finden Sie unter [Feature #14104].
  • Die Übergabe von Blöcken durch Blockparameter (z. B. def foo(&b); bar(&b); end) ist durch die Technik der „Lazy Proc Allocation“ etwa 3-mal schneller als bei Ruby 2.4. [Feature #14045]
  • Mutex wurde überarbeitet, um kleiner und schneller zu sein. [Feature #13517]
  • ERB generiert Code aus einer Vorlage jetzt doppelt so schnell wie Ruby 2.4.
  • Verbessert die Leistung einiger integrierter Methoden, darunter Array#concat, Enumerable#sort_by, String#concat, String#index, Time#+ und weitere.
  • IO.copy_stream verwendet copy_file_range(2) für Offload-Kopien. [Feature #13867]

Weitere bemerkenswerte Änderungen seit 2.4

  • SecureRandom bevorzugt nun vom Betriebssystem bereitgestellte Quellen gegenüber OpenSSL. [Bug #9569]
  • Verschiebt cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr, scanf, sdbm, stringio, strscan, webrick, zlib von Standardbibliotheken zu Standard-Gems.
  • Update auf Onigmo 6.1.3.
  • Update auf Psych 3.0.2.
  • Update auf RubyGems 2.7.3.
  • Update auf RDoc 6.0.1.
    • Wechselt den Lexer von IRB-basiert zu Ripper. Dies verbessert die Dokumentengenerierungsleistung erheblich.
    • Behebt eine beträchtliche Anzahl von Fehlern, die über zehn Jahre existierten.
    • Fügt Unterstützung für neue Ruby-Syntax aus den neuesten Versionen hinzu.
  • Aktualisiert die unterstützte Unicode-Version auf 10.0.0.
  • Thread.report_on_exception ist nun standardmäßig auf true gesetzt. Diese Änderung hilft beim Debugging von Multithread-Programmen. [Feature #14143]
  • IO#write empfängt nun mehrere Argumente. [Feature #9323]

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

Mit diesen Änderungen wurden 6158 Dateien geändert, 348484 Einfügungen(+), 82747 Löschungen(-) seit Ruby 2.4.0!

Frohe Weihnachten, schöne Feiertage und viel Spaß beim Programmieren mit Ruby 2.5!

Herunterladen

  • https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz

    SIZE:   15834941 bytes
    SHA1:   58f77301c891c1c4a08f301861c26b1ea46509f6
    SHA256: 46e6f3630f1888eb653b15fa811d77b5b1df6fd7a3af436b343cfe4f4503f2ab
    SHA512: 0712fe68611f5d0cd6dd54b814f825478e64b6a62bdf67bce431f4dca2dc00b1a33f77bebfbcd0a151118a1152554ab457decde435b424aa1f004bc0aa40580d
    
  • https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.zip

    SIZE:   19495617 bytes
    SHA1:   700b6f55d689a5c8051c8c292b9e77a1b50bf96e
    SHA256: 94559ea6e3c619423da604e503ce1dc1c465d6e0747a07fbdc5f294acaf14c24
    SHA512: e4324064cee8c65b80192e3eff287e915d2d40464d300744c36fb326ae4b1846911400a99d4332192d8a217009d3a5209b43eb5e8bc0b739035bef89cc493e84
    
  • https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.bz2

    SIZE:   13955820 bytes
    SHA1:   827b9a3bcffa86d1fc9ed96d403cb9dc37731688
    SHA256: d87eb3021f71d4f62e5a5329628ac9a6665902173296e551667edd94362325cc
    SHA512: 8f6fdf6708e7470f55bc009db2567cd8d4e633ad0678d83a015441ecf5b5d88bd7da8fb8533a42157ff83b74d00b6dc617d39bbb17fc2c6c12287a1d8eaa0f2c
    
  • https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.xz

    SIZE:   11292472 bytes
    SHA1:   9c7babcf9e299be3f197d9091024ae458f1a1273
    SHA256: 1da0afed833a0dab94075221a615c14487b05d0c407f991c8080d576d985b49b
    SHA512: 55714a33d7661fe8b432f73c34fd67b49699f8b79df1cbd680a74899124d31111ab0f444677672aac1ba725820182940d485efb2db0bf2bc96737c5d40c54578
    

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