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#concat
、Enumerable#sort_by
とString#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をダウンロードできます。