Ruby 2.7.0-preview1 veröffentlicht

Gepostet von naruse am 30. Mai 2019

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

Eine Vorschauversion wird veröffentlicht, um Feedback für die endgültige Veröffentlichung zu sammeln, die im Dezember geplant ist. Sie führt eine Reihe neuer Funktionen und Leistungsverbesserungen ein, insbesondere

  • Kompaktierende GC
  • Pattern Matching
  • REPL-Verbesserung

Kompaktierende GC

Diese Version führt die komprimierende GC ein, die einen fragmentierten Speicherplatz defragmentieren kann.

Einige multithreaded Ruby-Programme können zu Speicherfragmentierung führen, was zu hohem Speicherverbrauch und verringerter Geschwindigkeit führt.

Die Methode GC.compact wird zum Verdichten des Heaps eingeführt. Diese Funktion verdichtet aktive Objekte im Heap, sodass weniger Seiten benötigt werden und der Heap CoW-freundlicher ist. #15626

Pattern Matching [Experimentell]

Pattern Matching, eine weit verbreitete Funktion in funktionalen Programmiersprachen, wird als experimentelle Funktion eingeführt. #14912 Es kann ein gegebenes Objekt durchlaufen und dessen Wert zuweisen, wenn es einem Muster entspricht.

case JSON.parse('{...}', symbolize_names: true)
in {name: "Alice", children: [{name: "Bob", age: age}]}
  p age
  ...
end

Weitere Details finden Sie unter Pattern Matching - Neue Funktion in Ruby 2.7.

REPL-Verbesserung

irb, die integrierte interaktive Umgebung (REPL; Read-Eval-Print-Loop), unterstützt jetzt Mehrzeilenbearbeitung. Sie wird von reline, einer mit readline kompatiblen reinen Ruby-Implementierung, angetrieben. Sie bietet auch RDoc-Integration. In irb können Sie die Referenz für eine gegebene Klasse, ein Modul oder eine Methode anzeigen. #14683, #14787, #14918 Außerdem sind Quellzeilen, die bei binding.irb angezeigt werden, und Inspektionsergebnisse für Kernobjekte farblich hervorgehoben.

Weitere bemerkenswerte neue Funktionen

  • Ein Methodenreferenzoperator, .:, wird als experimentelle Funktion eingeführt. #12125, #13581

  • Nummerierte Parameter als Standard-Blockparameter werden als experimentelle Funktion eingeführt. #4475

  • Ein beginnloses Range wird experimentell eingeführt. Es ist möglicherweise nicht so nützlich wie ein endloses Range, aber gut für DSL-Zwecke. #14799

    ary[..3]  # identical to ary[0..3]
    rel.where(sales: ..100)
    
  • Enumerable#tally wird hinzugefügt. Es zählt die Häufigkeit jedes Elements.

    ["a", "b", "c", "b"].tally
    #=> {"a"=>1, "b"=>2, "c"=>1}
    

Leistungsverbesserungen

  • JIT [Experimentell]

    • JIT-kompilierter Code wird zu weniger optimiertem Code neu kompiliert, wenn eine Optimierungsannahme ungültig wird.

    • Methodeninlining wird durchgeführt, wenn eine Methode als rein betrachtet wird. Diese Optimierung ist noch experimentell und viele Methoden werden noch NICHT als rein betrachtet.

    • Der Standardwert von --jit-min-calls wurde von 5 auf 10.000 geändert

    • Der Standardwert von --jit-max-cache wurde von 1.000 auf 100 geändert

Weitere bemerkenswerte Änderungen seit 2.6

  • Proc.new und proc ohne Block in einer Methode, die mit einem Block aufgerufen wird, geben jetzt eine Warnung aus.

  • lambda ohne Block in einer Methode, die mit einem Block aufgerufen wird, erzeugt einen Fehler.

  • Unicode-Version und Emoji-Version von 11.0.0 auf 12.0.0 aktualisiert. [Feature #15321]

  • Unicode-Version auf 12.1.0 aktualisiert, Hinzufügen der Unterstützung für U+32FF SQUARE ERA NAME REIWA. [Feature #15195]

  • Date.jisx0301, Date#jisx0301 und Date.parse unterstützen vorläufig die neue japanische Ära als informelle Erweiterung, bis die neue JIS X 0301 herausgegeben wird. [Feature #15742]

  • Compiler erfordern die Unterstützung von C99 [Misc #15347]

Weitere Details finden Sie in NEWS oder in den Commit-Protokollen.

Mit diesen Änderungen wurden seit Ruby 2.6.0 1727 Dateien geändert, 76022 Einfügungen (+) und 60286 Löschungen (-) vorgenommen!

Viel Spaß beim Programmieren mit Ruby 2.7!

Herunterladen

  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.gz

    SIZE:   16021286 bytes
    SHA1:   2fbecf42b03a9d4391b81de42caec7fa497747cf
    SHA256: c44500af4a4a0c78a0b4d891272523f28e21176cf9bc1cc108977c5f270eaec2
    SHA512: f731bc9002edd3a61a4955e4cc46a75b5ab687a19c7964f02d3b5b07423d2360d25d7be5df340e884ca9945e3954e68e5eb11b209b65b3a687c71a1abc24b91f
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.zip

    SIZE:   20283343 bytes
    SHA1:   7488346fa8e58203a38158752d03c8be6b1da65b
    SHA256: fdf25573e72e1769b51b8d541d0e1a894a5394dbfdf1b08215aa093079cca64c
    SHA512: b3b1f59dce94c242ef88a4e68381a4c3a6f90ba0af699083e5a1a00b0fb1dce580f057dad25571fe789ac9aa95aa6e9c071ebb330328dc822217ac9ea9fbeb3f
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.bz2

    SIZE:   14038296 bytes
    SHA1:   f7e70cbc2604c53a9e818a2fc59cd0e2d6c859fa
    SHA256: d45b4a1712ec5c03a35e85e33bcb57c7426b856d35e4f04f7975ae3944d09952
    SHA512: a36b241fc1eccba121bb7c2cc5675b11609e0153e25a3a8961b67270c05414b1aa669ce5d4a5ebe4c6b2328ea2b8f8635fbba046b70de103320b3fdcb3d51248
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0-preview1.tar.xz

    SIZE:   11442988 bytes
    SHA1:   45e467debc194847a9e3afefb20b11e6dc28ea31
    SHA256: 8c546df3345398b3edc9d0ab097846f033783d33762889fd0f3dc8bb465c3354
    SHA512: d416e90bfa3e49cc0675c4c13243c8ec319b7a0836add1bd16bd7662d09eaf46656d26e772ef3b097e10779896e643edd8a6e4f885147e3235257736adfdf3b5
    

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