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/ensuredürfen nun direkt mitdo/endBlöcken verwendet werden. [Feature #12906]- Fügt
yield_selfhinzu, um einen gegebenen Block in seinem Kontext zu ergeben. Im Gegensatz zutapgibt 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). Dietrace-Anweisung wurde hinzugefügt, umTracePointzu unterstützen. In den meisten Fällen wirdTracePointjedoch nicht verwendet undtrace-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.
- Es fügt den Abwesenheitsoperator hinzu.
- Beachten Sie, dass Ruby 2.4.1 diese Änderung ebenfalls enthält.
- 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_exceptionist 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