Ruby2.6の新機能

由緒ある動的言語の最新バージョンであるRuby2.6が、製品リリースとして利用可能になりました。

Ruby2.6の新機能

Ruby 2.6は、プログラム実行のパフォーマンスを向上させるために、JIT(ジャストインタイムコンパイラ)の初期実装を追加します。RubyのJITコンパイラは、Cコードをディスクに書き込み、ネイティブコードを生成するためのCコンパイラプロセスを生成します。JITコンパイラは、RubyがGCCコンパイラ、Clang、またはMicrosoft Visual C ++によってビルドされている場合にサポートされます。これらは、実行時に使用可能である必要があります。

Ruby2.6のその他の新機能は次のとおりです。

  • 言語の変更で$SAFEは、はプロセスのグローバル状態であり、0を再度設定できます。
  • パラメータとして渡されるblock.callときのパフォーマンスが向上blockしましたblock
  • Proc#call スピードアップしました。
  • RubyVM::AST文字列のコードを解析してASTノードを返すparseメソッドを持つ実験 モジュール。また、この parse_ fileメソッドはコードファイルを解析し、ASTノードを返します。
  • 実験RubyVM::AST::Nodeクラスは、Node オブジェクトから位置情報と子ノードを表示します。
  • 定数名は、ASCII以外の大文字で始めることができます。
  • 終わりがないかのように機能する無限の範囲が導入されています。
  • 一時ヒープ(theap)が導入され、theap特定のクラスによって参照される短期間のメモリオブジェクトのマネージヒープとして機能します。
  • Unicodeのサポートはバージョン11になりました。
  • gemの依存関係を管理するためのBundlerがデフォルトのgemになりました。

Ruby2.6をダウンロードする場所

Ruby2.6はRubyプロジェクトのWebサイトからダウンロードできます。

以前のバージョン:Ruby 2.5

2017年のクリスマスに到着したRuby2.5.0は、2.5シリーズの最初の安定版リリースです。

オーバーヘッドであることが判明したバイトコードからトレース命令を削除することにより、パフォーマンスが5〜10パーセント向上します。代わりに、動的な計測手法が使用されます。また、Lazy Proc割り当て手法を使用することで、ブロックパラメーターによるブロックの受け渡しがRuby2.4の3倍高速になりました。

パフォーマンスを向上させるその他の機能は次のとおりです。

  • 従来の字句解析プログラムからIRBからRipperに切り替えることで、ドキュメントの生成が促進されました。
  • Mutexこのクラスは、それがより小さく、より高速にするために書き直されました。Mutex並行スレッドからの共有データへのアクセスを管理するために使用できます。
  • ERBは、バージョン2.4の2倍の速度でテンプレートからコードを生成します。
  • パフォーマンスは、ビルトイン含む方法で改善されているArray#concatEnumerable#sort_byString#concat

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

  • Struct/new キーワード引数を受け入れるクラスを作成できます。
  • Do/endブロックはensure/rescue/else。で直接機能するようになりました。
  • pp.rbライブラリは自動的にロードされます。
  • バックトレースを逆の順序で出力するオプションが追加されました。目的は、スクロールせずにメインのエラーメッセージを取得することです。
  • テストを改善するために、ブランチおよびメソッドカバレッジ測定のサポートが提供されます。ブランチカバレッジは実行されたブランチを示し、メソッドカバレッジは呼び出されたメソッドを示します。

Ruby 2.5には、乱数を生成するためのSecureRandomライブラリのバグ修正も含まれています。これにより、OpenSSLよりもOSが提供するソースが優先されるようになりました。また、cmath、csv、date、dbm、ipaddrなどの標準ライブラリがgemに昇格しました。

Ruby2.5をダウンロードする場所

このtar.gzファイルまたはこのZipファイルを開くと、バージョン2.5をダウンロードできます。