Ruby 2.2.0-preview2 發佈

很高興告訴大家 Ruby 2.2.0-preview2 發佈了。

Ruby 2.2.0-preview2 是 Ruby 2.2.0 第二個預覽版。針對使用者對 Ruby 的各式各樣的需求做了許多修正並添加了許多新功能與改良。

譬如,符號 GC 使得符號可以被垃圾回收器回收了。這降低了符號的記憶體使用量,因為在 2.2 版本之前,符號是不可以被 GC 回收的。Rails 5.0 將採用符號 GC 技術。僅支持 Ruby 2.2 以上的版本(參見 Rails 官方文章來了解更多細節)。

另外新搭載了增量化 GC,降低了 GC 所佔用的時間,對於運行 Rails 應用程式相當有用。

另一個與記憶體管理有關的新功能是給 configure.in 新增了一個設定,可以啟用 jemalloc,請參考 Feature #9113。這是一個實驗性的功能,預設沒有開啟。我們需要蒐集使用場景與效能資料來確定有良好的效果,確定之後這個功能會預設開啟。

另一個重要的變更是在 system() 和 spawn() 使用了 vfork(2)。這個變更預期可以大幅提昇 process 執行外部命令的速度。但 vfork(2) 是一個危險的系統呼叫,同樣我們需要蒐集使用場景和效能資料。

請試試看 Ruby 2.2.0-preview2 並享受與 Ruby 2.2.0-preview2 的編程時光,有任何問題或情報請告訴我們!

從 2.1 起重要的變更

  • 增量化 GCYARV Maniacs No.12);
  • 符號 GCpresentation at RubyKaigi 2014);
  • configure –with-jemalloc Feature #9113
  • 核心函式庫:
    • 支援 Unicode 7.0 #9092
    • 新增方法:
      • Enumerable#slice_after #9071、Enumerable#slice_when #9826
      • Float#next_float、Float#prev_float #9834
      • File.birthtime、File#birthtime #9647
      • String#unicode_normalize #10084
  • 系統內建函式庫:
    • 更新 Psych 至 2.0.6;
    • 更新 Rake 至 10.4.0(e47d0239);
    • 更新 RDoc 至 4.2.0.alpha(21b241a);
    • 更新 RubyGems 2.4.4+(2f6e42e);
    • rubygems 2.4.4+ (2f6e42e);
    • 更新 test-unit 至 3.0.7(從原碼庫移除,改綁定至 tarball 裡);
    • 更新 minitest 至 5.4.3(從原碼庫移除,改綁定至 tarball 裡);
    • 棄用 mathn。
  • C API:
    • 移除棄用的 API。

NEWS in Ruby repository (WIP) 來了解更多細節。

以上變更總共有 1239 變更的檔案,程式碼新增 98343 行,移除了 61858 行。

下載

  • https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0-preview2.tar.bz2
    • SIZE: 12505279 bytes
    • MD5: d7abace25a8ffe861cb2807bef1c58a6
    • SHA256: 9e49583f3fad3888fefc85b719fdb210a88ef54d80f9eac439b7ca4232fa7f0b
    • SHA512: c654d4c047f9463a5fb81eaea0fa5ab7bf316962bc7fb0fb356861e6336ce8ce2162c7779d8b27f72d7bc0e9604b5e5af2910abcb0b0a1f197b3138eaddfd4a5
  • https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0-preview2.tar.gz
    • SIZE: 15505521 bytes
    • MD5: bde388d6f10012a92d5dc36196fd6755
    • SHA256: dfcef7b01bd3acb41da6689993ac8dd30e2ecd4fd14bc1a833f46188a9fe2614
    • SHA512: e2d316a679c15c021e40b0f9b7810b319c6a5e771a9b869fda35b6745aecac881bbb05d62192893799816a8673e05c8f17713f10ccdec077f546483608ab85c1
  • https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0-preview2.tar.xz
    • SIZE: 9649216 bytes
    • MD5: 0d582e28b92ce9d1456e40fb8d821422
    • SHA256: d14d1fa045263fa242a515d7b9e8c485bf8a9ee9d9d3012dc2b6add0f3a370c6
    • SHA512: 4a8a75ab21b2bd43db4a22d9c63f189f3c7805d575d662b07a4ddc25aa5b156b0c23053d8c48eecf23d5e22f1ea7131467f1cdc48f9ae0a83214b4cd46b08491
  • https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0-preview2.zip
    • SIZE: 17239396 bytes
    • MD5: d94160c214016863932c25cc1ac6ff90
    • SHA256: 88d6c73ee1a4f5fe1f8ad37fe1f56c1ca50622f1338c20b9d46bbb5c2cd94040
    • SHA512: 0a021d31f54c47c5c3901ef6f2ab02a1bfb5cc698f971978c1e16b1aeda78fdadec0c1cdd48af1c8784b8f72ad00d35cf2433d78e20d4447fa0630e02b4e3917

發佈記

同時請參考發佈行程表以及其他資訊:

ReleaseEngineering22