Ruby 2.7はガベージコレクション、パターンマッチングを改善します

Rubyプログラミング言語の最新のアップグレードであるRuby2.7が、製品リリースとして一般提供されるようになりました。新しいリリースでは、ガベージコレクション、パターンマッチング、およびREPL(read-eval-print-loop)が改善されています。

Ruby 2.7の新機能は、断片化されたメモリ空間を最適化するために使用される圧縮ガベージコレクションです。このGC.compactメソッドは、ヒープ内のオブジェクトを圧縮して、使用されるページを減らします。Ruby開発チームのメンバーは、一部のマルチスレッドRubyプログラムがメモリの断片化を引き起こし、メモリ使用率が高くなり、速度が低下する可能性があると説明しました。

Ruby2.7.0のその他の改善点は次のとおりです。

  • 実験的なパターンマッチング機能。特定のオブジェクトをトラバースし、パターンに一致する場合に値を割り当てることができます。パターンマッチングは、関数型プログラミング言語で広く使用されています。
  • irbインタラクティブRubyシェルで複数行編集がサポートされるようになりました。Rubyドキュメントシステムであるrdocとの統合も提供されます。を使用すると irb、開発者はクラス、メソッド、またはモジュールの参照を表示できます。また、binding.irbコアクラスオブジェクトに表示され、結果を検査するソース行が色付けされるようになりました。
  • キーワード引数と位置引数の自動変換は非推奨になりました。この機能はRuby3で削除されます。
  • Ruby 2.6で最初に導入されたまだ実験的なジャストインタイム(JIT)コンパイラーの場合、最適化が無効になると、JITされたコードは最適化されていないコードに再コンパイルされます。さらに、メソッドのインライン化は、メソッドが純粋であると見なされる場合に実行されます。ただし、多くの方法はまだ純粋とは見なされていません。
  • アンは、Enumerable#tally 各要素の出現をカウントします。
  • また、デフォルトのブロックパラメータとして番号付きパラメータも導入されています。

Ruby2.7はruby-lang.orgからダウンロードできます。