- 发布日期2023-09-14
- 感知时间2023-09-14
- 漏洞类型普通更新
- 风险等级未知
- 更新版本未知
- 情报贡献TSRC
Ruby 3.3.0-preview2 Released
We are pleased to announce the release of Ruby 3.3.0-preview2. Ruby 3.3 adds a new pure-Ruby JIT compiler named RJIT, uses Lrama as a parser generator, and many performance improvements especially YJIT.<br/><br/>RJIT<br/><br/><br/> Introduced a pure-Ruby JIT compiler RJIT and replaced MJIT.<br/> <br/> RJIT supports only x86_64 architecture on Unix platforms.<br/> Unlike MJIT, it doesn’t require a C compiler at runtime.<br/> <br/> <br/> RJIT exists only for experimental purposes.<br/> <br/> You should keep using YJIT in production.<br/> <br/> <br/> If you are interested in developing JIT for Ruby, please check out k0kubun’s presentation on Day 3 of RubyKaigi.<br/><br/><br/>Use Lrama instead of Bison<br/><br/><br/> Replace Bison with Lrama LALR parser generator Feature #19637<br/> <br/> If you have interest, please see The future vision of Ruby Parser<br/> <br/> <br/><br/><br/>YJIT<br/><br/><br/> Major performance improvements over 3.2<br/> <br/> Support for splat and rest arguments has been improved.<br/> Registers are allocated for stack operations of the virtual machine.<br/> More calls with optional arguments are compiled.<br/> Exception handlers are also compiled.<br/> Instance variables no longer exit to the interpreter<br/>with megamorphic Object Shapes.<br/> Unsupported call types no longer exit to the interpreter.<br/> Integer#!=, String#!=, Kernel#block_given?, Kernel#is_a?,<br/>Kernel#instance_of?, Module#=== are specially optimized.<br/> Now more than 3x faster than the interpreter on optcarrot!<br/> <br/> <br/> Metadata for compiled code uses a lot less memory.<br/> Generate more compact code on ARM64<br/> Option to start YJIT in paused mode and then later enable it manually<br/> <br/> --yjit-pause and RubyVM::YJIT.resume<br/> This can be used to enable YJIT only once your application is done booting<br/> <br/> <br/> ratio_in_yjit stat produced by --yjit-stats is now avaiable in release builds,<br/>a special stats or dev build is no longer required.<br/> Exit tracing option now supports sampling<br/> <br/> --trace-exits-sample-rate=N<br/> <br/> <br/> More thorough testing and multiple bug fixes<br/><br/><br/>Other Notable New Features<br/><br/>Language<br/><br/>Performance improvements<br/><br/><br/> defined?(@ivar) is optimized with Object Shapes.<br/><br/><br/>Other notable changes since 3.2<br/><br/>IRB<br/><br/>IRB has received several enhancements, including but not limited to:<br/><br/><br/> Advanced irb:rdbg integration that provides an equivalent debugging experience to pry-byebug (doc).<br/> Pager support for commands like ls and show_cmds.<br/> More accurate and helpful information provided by the ls and show_source commands.<br/><br/><br/>In addition, IRB has also undergone extensive refactoring and received dozens of bug fixes to facilitate easier future enhancements.<br/><br/>Compatibility issues<br/><br/>Note: Excluding feature bug fixes.<br/><br/>Removed constants<br/><br/>The following deprecated constants are removed.<br/><br/>Removed methods<br/><br/>The following deprecated methods are removed.<br/><br/>Stdlib compatibility issues<br/><br/>ext/readline is retired<br/><br/><br/> We have reline that is pure Ruby implementation compatible with ext/readline API. We rely on reline in the future. If you need to use ext/readline, you can install ext/readline via rubygems.org with gem install readline-ext.<br/> We no longer need to install libraries like libreadline or libedit.<br/><br/><br/>C API updates<br/><br/>Updated C APIs<br/><br/>The following APIs are updated.<br/><br/>Removed C APIs<br/><br/>The following deprecated APIs are removed.<br/><br/>Standard library updates<br/><br/>RubyGems and Bundler warn if users require gem that is scheduled to become the bundled gems in the future version of Ruby.<br/><br/>The following default gems are updated.<br/><br/><br/> RubyGems 3.5.0.dev<br/> bigdecimal 3.1.4<br/> bundler 2.5.0.dev<br/> csv 3.2.8<br/> erb 4.0.3<br/> fiddle 1.1.2<br/> fileutils 1.7.1<br/> irb 1.7.4<br/> nkf 0.1.3<br/> optparse 0.4.0.pre.1<br/> psych 5.1.0<br/> reline 0.3.8<br/> stringio 3.0.9<br/> strscan 3.0.7<br/> syntax_suggest 1.1.0<br/> time 0.2.2<br/> timeout 0.4.0<br/> uri 0.12.2<br/> yarp 0.9.0<br/><br/><br/>The following bundled gems are updated.<br/><br/><br/> minitest 5.19.0<br/> test-unit 3.6.1<br/> rexml 3.2.6<br/> rss 0.3.0<br/> net-imap 0.3.7<br/> rbs 3.2.1<br/> typeprof 0.21.8<br/> debug 1.8.0<br/><br/><br/>The following default gem is now bundled.<br/><br/><br/> racc 1.7.1<br/><br/><br/>See GitHub releases like Logger or<br/>changelog for details of the default gems or bundled gems.<br/><br/>See NEWS<br/>or commit logs<br/>for more details.<br/><br/>With those changes, 4970 files changed, 239635 insertions(+), 165275 deletions(-)<br/>since Ruby 3.2.0!<br/><br/>Download<br/><br/><br/> <br/> https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.gz<br/><br/> SIZE: 21074209<br/>SHA1: cf7329019235dc36b8e3f382a8b8b744922b1163<br/>SHA256: 30ce8b0fe11b37b5ac088f5a5765744b935eac45bb89a9e381731533144f5991<br/>SHA512: 1c5a13e519e8487fd40d932b96d14fa729521925c288e7841ab5eada628e506ceca2605bae36eea1aa505d9253383d53cd933b7a4bff96e6de5b1130c7c558e6<br/> <br/> <br/> <br/> https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.xz<br/><br/> SIZE: 15600992<br/>SHA1: 606d6423137a24eef4f6b07d167596b63c7aaa17<br/>SHA256: 62b1c4f586c70bf1cb58f2d909d0d824506315782e835f9dd3fcc0b659a70fc1<br/>SHA512: 5ff609a66b7359006df0d87477cf70e6e26c5f40ced81b8254f8154f4fc82c77fed297471b55706c1a4466f2a4257999e933b2ed085f695ace265757ab9500a2<br/> <br/> <br/> <br/> https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.zip<br/><br/> SIZE: 26095651<br/>SHA1: 4441cd0db23d133e6e2f7dea28f931a68dac6ca5<br/>SHA256: c9771d24c9b1eab532c04ed076087285601693e4d1c63f131fd078c47c5c0cea<br/>SHA512: bfeed21d011f891fe22510fe7242992c98f7fd2ce863d8be5740f56a34b726134cb3f5304e8b2dcd468fbc939648f10aae482eee15c1bf6c64b705484ed9e197<br/> <br/> <br/><br/><br/>What is Ruby<br/><br/>Ruby was first developed by Matz (Yukihiro Matsumoto) in 1993,<br/>and is now developed as Open Source. It runs on multiple platforms<br/>and is used all over the world especially for web development.<br/><br/>Posted by naruse on 14 Sep 2023
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License.
暂无
暂无
暂无
https://www.ruby-lang.org/en/news/2023/09/14/ruby-3-3-0-preview2-released/