Ruby 新闻更新 https://ruby.github.net.cn/feeds/news.rss zh-CN 40 来自 ruby-lang.org 的最新文章。 Ruby 新闻更新 <p>我们很高兴地宣布 Ruby 3.3.0-preview2 发布。 Ruby 3.3 新增了纯 Ruby 实现的 JIT 编译器 RJIT;使用 Lrama 作为解析生成器;另有许多性能改进,尤其是 YJIT。</p> <h2>RJIT</h2> <ul> <li>引入了纯 Ruby 的 JIT 编译器 RJIT 并替代 MJIT。 <ul> <li>RJIT 仅支持 x86_64 架构上的 Unix 平台。</li> <li>不同于 MJIT,RJIT在运行时不需要 C 编译器。</li> </ul> </li> <li>RJIT 目前仅用于实验目的。 <ul> <li>您在生产环境中应当继续使用 YJIT。</li> </ul> </li> <li>如果您有兴趣为 Ruby 开发 JIT,请查看 <a href="https://rubykaigi.org/2023/presentations/k0kubun.html#day3">k0kubun 在 RubyKaigi 第 3 天 中的演讲</a>。</li> </ul> <h2>使用 Lrama 替代 Bison</h2> <ul> <li>使用 <a href="https://github.com/yui-knk/lrama">Lrama LALR 解析生成器</a> 替换 Bison <a href="https://bugs.ruby-lang.org/issues/19637">Feature #19637</a> <ul> <li>如果您有兴趣,请参阅 <a href="https://rubykaigi.org/2023/presentations/spikeolaf.html">Ruby 解析器的未来愿景</a></li> </ul> </li> </ul> <h2>YJIT</h2> <ul> <li>相对于 3.2 的主要性能提升 <ul> <li>改进了 splat 和 rest 参数支持。</li> <li>虚拟机的栈操作分配了寄存器。</li> <li>更多带有可选参数的调用被编译。</li> <li>错误处理也被编译。</li> <li>不支持的调用类型不再退出到解释器执行。</li> <li>拥有复杂对象形状的实例变量不再退出到解释器执行。</li> <li>特别优化了 <code class="language-plaintext highlighter-rouge">Integer#!=</code>, <code class="language-plaintext highlighter-rouge">String#!=</code>, <code class="language-plaintext highlighter-rouge">Kernel#block_given?</code>, <code class="language-plaintext highlighter-rouge">Kernel#is_a?</code>, <code class="language-plaintext highlighter-rouge">Kernel#instance_of?</code>, <code class="language-plaintext highlighter-rouge">Module#===</code>。</li> <li>目前比 optcarrot 的解释器快 3 倍以上!</li> </ul> </li> <li>编译代码使用的元数据使用更少的内存。</li> <li>在 ARM64 中的生成更紧凑的代码。</li> <li>可以在暂停模式下启动 YJIT,并后续手动启动 <ul> <li><code class="language-plaintext highlighter-rouge">--yjit-pause</code> 和 <code class="language-plaintext highlighter-rouge">RubyVM::YJIT.resume</code></li> <li>这可以用来在应用程序启动完成后,仅启用 YJIT 一次</li> </ul> </li> <li>发布版本中,现在可以用到通过 <code class="language-plaintext highlighter-rouge">--yjit-stats</code> 产生的 <code class="language-plaintext highlighter-rouge">ratio_in_yjit</code> 统计信息,不再需要特殊的统计信息或开发版本。</li> <li>退出跟踪选项现在支持采样 <ul> <li><code class="language-plaintext highlighter-rouge">--trace-exits-sample-rate=N</code></li> </ul> </li> <li>更彻底的测试及多个错误修复</li> </ul> <h2>其他值得关注的新功能</h2> <h3>语言</h3> <h2>性能提升</h2> <ul> <li>根据对象形状,优化 <code class="language-plaintext highlighter-rouge">defined?(@ivar)</code>。</li> </ul> <h2>自 3.2 以来,其他值得注意的变化</h2> <h3>IRB</h3> <p>IRB 进行了多项增强功能,包括但不限于:</p> <ul> <li>高级 <code class="language-plaintext highlighter-rouge">irb:rdbg</code> 集成,提供了类似 <code class="language-plaintext highlighter-rouge">pry-byebug</code> 的调试体验(<a href="https://github.com/ruby/irb#debugging-with-irb">文档</a>)。</li> <li>为 <code class="language-plaintext highlighter-rouge">ls</code> 和 <code class="language-plaintext highlighter-rouge">show_cmds</code> 这样的方法提供分页支持。</li> <li>为 <code class="language-plaintext highlighter-rouge">ls</code> 和 <code class="language-plaintext highlighter-rouge">show_source</code> 方法提供更准确更有用的信息。</li> </ul> <p>另外,IRB 还进行了广泛的重构,修复了数十个错误,以便未来的增强。</p> <h2>兼容性问题</h2> <p>注意:不包括 bug 修复。</p> <h3>删除的常量</h3> <p>删除了以下已废弃的常量。</p> <h3>删除的方法</h3> <p>删除了以下已废除的方法。</p> <h2>标准库兼容性问题</h2> <h3><code class="language-plaintext highlighter-rouge">ext/readline</code> 已退役</h3> <ul> <li>我们有了纯 Ruby 实现的 <code class="language-plaintext highlighter-rouge">reline</code>,兼容 <code class="language-plaintext highlighter-rouge">ext/readline</code> API。未来我们将依赖 <code class="language-plaintext highlighter-rouge">reline</code>。如果您需要使用 <code class="language-plaintext highlighter-rouge">ext/readline</code>,可以通过 rubygems.org 进行安装 <code class="language-plaintext highlighter-rouge">gem install readline-ext</code>。</li> <li>我们不再需要安装类似 <code class="language-plaintext highlighter-rouge">libreadline</code> 或 <code class="language-plaintext highlighter-rouge">libedit</code> 这样的库了。</li> </ul> <h2>C API 更新</h2> <h3>更新的 C API</h3> <p>更新了以下 API。</p> <h3>已移除的 C API</h3> <p>移除了以下废弃的 API。</p> <h2>标准库更新</h2> <p>当用户 require 在将来 Ruby 版本中成为绑定 gem 的库时,RubyGems 和 Bundler 会发出警告。</p> <p>更新了以下默认 gems。</p> <ul> <li>RubyGems 3.5.0.dev</li> <li>bigdecimal 3.1.4</li> <li>bundler 2.5.0.dev</li> <li>csv 3.2.8</li> <li>erb 4.0.3</li> <li>fiddle 1.1.2</li> <li>fileutils 1.7.1</li> <li>irb 1.7.4</li> <li>nkf 0.1.3</li> <li>optparse 0.4.0.pre.1</li> <li>psych 5.1.0</li> <li>reline 0.3.8</li> <li>stringio 3.0.9</li> <li>strscan 3.0.7</li> <li>syntax_suggest 1.1.0</li> <li>time 0.2.2</li> <li>timeout 0.4.0</li> <li>uri 0.12.2</li> <li>yarp 0.9.0</li> </ul> <p>更新了以下绑定 gems。</p> <ul> <li>minitest 5.19.0</li> <li>test-unit 3.6.1</li> <li>rexml 3.2.6</li> <li>rss 0.3.0</li> <li>net-imap 0.3.7</li> <li>rbs 3.2.1</li> <li>typeprof 0.21.8</li> <li>debug 1.8.0</li> </ul> <p>以下默认 gem 成为绑定 gem</p> <ul> <li>racc 1.7.1</li> </ul> <p>有关默认 gems 和 绑定 gems 的细节,可以参考 GitHub 上的发布,例如 <a href="https://github.com/ruby/logger/releases">日志</a> 或相应的变更日志。</p> <p>更多详情,可参见 <a href="https://github.com/ruby/ruby/blob/v3_3_0_preview2/NEWS.md">NEWS</a> 或 <a href="https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview2">提交日志</a>。</p> <p>自 Ruby 3.2.0 以来,<a href="https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview2#file_bucket">4970 个文件被更改,新增 239635 行(+), 删除 165275 行(-)</a>!</p> <h2>Download</h2> <ul> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.gz">https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.gz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 21074209 SHA1: cf7329019235dc36b8e3f382a8b8b744922b1163 SHA256: 30ce8b0fe11b37b5ac088f5a5765744b935eac45bb89a9e381731533144f5991 SHA512: 1c5a13e519e8487fd40d932b96d14fa729521925c288e7841ab5eada628e506ceca2605bae36eea1aa505d9253383d53cd933b7a4bff96e6de5b1130c7c558e6 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.xz">https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.xz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 15600992 SHA1: 606d6423137a24eef4f6b07d167596b63c7aaa17 SHA256: 62b1c4f586c70bf1cb58f2d909d0d824506315782e835f9dd3fcc0b659a70fc1 SHA512: 5ff609a66b7359006df0d87477cf70e6e26c5f40ced81b8254f8154f4fc82c77fed297471b55706c1a4466f2a4257999e933b2ed085f695ace265757ab9500a2 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.zip">https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.zip</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 26095651 SHA1: 4441cd0db23d133e6e2f7dea28f931a68dac6ca5 SHA256: c9771d24c9b1eab532c04ed076087285601693e4d1c63f131fd078c47c5c0cea SHA512: bfeed21d011f891fe22510fe7242992c98f7fd2ce863d8be5740f56a34b726134cb3f5304e8b2dcd468fbc939648f10aae482eee15c1bf6c64b705484ed9e197 </code></pre></div> </div> </li> </ul> <h2>What is Ruby</h2> <p>Ruby 最初由 Matz (松本行弘,Yukihiro Matsumoto) 于 1993 年开发,现在以开源软件的形式开发。它可以在多个平台上运行,并在全球得到广泛使用,尤其是Web开发领域。</p> <p>由 naruse 发表于 2023-09-14<br />翻译: GAO Jun</p> Thu, 14 Sep 2023 00:00:00 +0000 https://ruby.github.net.cn/news/2023/09/14/ruby-3-3-0-preview2-released/ https://ruby.github.net.cn/news/2023/09/14/ruby-3-3-0-preview2-released/ Ruby 新闻更新 <p>我们刚发布了包含 ReDoS 漏洞补丁的 <code class="language-plaintext highlighter-rouge">uri</code> gem 版本 0.12.2 和 0.10.3。 此漏洞的 CVE 编号为 <a href="https://www.cve.org/CVERecord?id=CVE-2023-36617">CVE-2023-36617</a>。</p> <h2>详情</h2> <p>在 URI 组件 0.12.1 中发现了一个 ReDoS 问题。URI 解析器会错误处理包含特殊字符的错误 URL。 导致通过 rf2396_parser.rb 和 rfc3986_parser.rb 将字符串解析为 URI 对象的处理时间增长。</p> <p>注意:此问题是由于 <a href="https://www.ruby-lang.org/en/news/2023/03/28/redos-in-uri-cve-2023-28755/">CVE-2023-28755</a> 的不完整修复而导致的。</p> <p>受此漏洞影响的 <code class="language-plaintext highlighter-rouge">uri</code> gem 版本包括:0.12.1 以及 0.12.1 之前的版本。</p> <h2>建议操作</h2> <p>我们建议将 <code class="language-plaintext highlighter-rouge">uri</code> gem 更新到 0.12.1。为了保证各个 Ruby 系列中绑定版本的兼容性您也可以按照下列方式进行更新:</p> <ul> <li>Ruby 3.0:更新 <code class="language-plaintext highlighter-rouge">uri</code> 至 0.10.3</li> <li>Ruby 3.1 和 3.2:更新 <code class="language-plaintext highlighter-rouge">uri</code> 至 0.12.2</li> </ul> <p>您可以通过 <code class="language-plaintext highlighter-rouge">gem update uri</code> 进行更新。如果您使用 bundler,请在您的 <code class="language-plaintext highlighter-rouge">Gemfile</code> 中增加 <code class="language-plaintext highlighter-rouge">gem "uri", "&gt;= 0.12.2"</code> (或上面提到的其他版本)。</p> <h2>受影响版本</h2> <ul> <li>uri gem 0.12.1 及之前版本</li> </ul> <h2>致谢</h2> <p>感谢 <a href="https://hackerone.com/ooooooo_q">ooooooo_q</a> 发现此问题。</p> <p>感谢 <a href="https://github.com/nobu">nobu</a> 修复此问题。</p> <h2>历史</h2> <ul> <li>最初发布于 2023-06-29 01:00:00 (UTC)</li> </ul> <p>由 hsbt 发表于 2023-06-29<br />翻译: GAO Jun</p> Thu, 29 Jun 2023 01:00:00 +0000 https://ruby.github.net.cn/news/2023/06/29/redos-in-uri-CVE-2023-36617/ https://ruby.github.net.cn/news/2023/06/29/redos-in-uri-CVE-2023-36617/ Ruby 新闻更新 <p>我们很高兴地宣布 Ruby 3.3.0-preview1 发布。Ruby 3.3 新增了纯 Ruby 实现的 JIT 编译器 RJIT;使用 Lrama 作为解析生成器;另有许多性能改进,尤其是 YJIT。</p> <h2>RJIT</h2> <ul> <li>引入了纯 Ruby 的 JIT 编译器 RJIT 并替代 MJIT。 <ul> <li>RJIT 仅支持 x86_64 架构上的 Unix 平台。</li> <li>不同于 MJIT,RJIT在运行时不需要 C 编译器。</li> </ul> </li> <li>RJIT 目前仅用于实验目的。 <ul> <li>您在生产环境中应当继续使用 YJIT。</li> </ul> </li> <li>如果您有兴趣为 Ruby 开发 JIT,请查看<a href="https://rubykaigi.org/2023/presentations/k0kubun.html#day3">k0kubun 在 RubyKaigi 第 3 天 中的演讲</a>。</li> </ul> <h2>使用 Lrama 替代 Bison</h2> <ul> <li>使用 <a href="https://github.com/yui-knk/lrama">Lrama LALR 解析生成器</a> 替换 Bison <a href="https://bugs.ruby-lang.org/issues/19637">Feature #19637</a> <ul> <li>如果您有兴趣,请参阅 <a href="https://rubykaigi.org/2023/presentations/spikeolaf.html">Ruby 解析器的未来愿景</a></li> </ul> </li> </ul> <h2>YJIT</h2> <ul> <li>相对于 3.2 有显著的性能提升 <ul> <li>改进了 splat 和 rest 参数支持。</li> <li>虚拟机的栈操作分配了寄存器。</li> <li>更多带有可选参数的调用被编译。</li> <li>特别优化了 <code class="language-plaintext highlighter-rouge">Integer#!=</code>, <code class="language-plaintext highlighter-rouge">String#!=</code>, <code class="language-plaintext highlighter-rouge">Kernel#block_given?</code>, <code class="language-plaintext highlighter-rouge">Kernel#is_a?</code>, <code class="language-plaintext highlighter-rouge">Kernel#instance_of?</code>, <code class="language-plaintext highlighter-rouge">Module#===</code>。</li> <li>拥有复杂对象形状的实例变量不再用于解析器执行。</li> </ul> </li> <li>编译代码使用的元数据使用更少的内存。</li> <li>改进 ARM64 中的代码生成。</li> <li>可以在暂停模式下启动 YJIT,并后续手动启动 <ul> <li><code class="language-plaintext highlighter-rouge">--yjit-pause</code> 和 <code class="language-plaintext highlighter-rouge">RubyVM::YJIT.resume</code></li> <li>这可以用来在应用程序启动完成后,仅启用 YJIT 一次</li> </ul> </li> <li>退出跟踪选项现在支持采样 <ul> <li><code class="language-plaintext highlighter-rouge">--trace-exits-sample-rate=N</code></li> </ul> </li> <li>多个错误修复</li> </ul> <h2>其他值得关注的新功能</h2> <h3>语言</h3> <h2>性能提升</h2> <ul> <li>根据对象形状,优化 <code class="language-plaintext highlighter-rouge">defined?(@ivar)</code>。</li> </ul> <h2>自 3.2 以来,其他值得注意的变化</h2> <h2>兼容性问题</h2> <p>注意:不包括 bug 修复。</p> <h3>删除的常量</h3> <p>删除了以下已废弃的常量。</p> <h3>删除的方法</h3> <p>删除了以下已废除的方法。</p> <h2>标准库兼容性问题</h2> <h3><code class="language-plaintext highlighter-rouge">ext/readline</code> 已退役</h3> <ul> <li>我们有了纯 Ruby 实现的 <code class="language-plaintext highlighter-rouge">reline</code>,兼容 <code class="language-plaintext highlighter-rouge">ext/readline</code> API。未来我们将依赖 <code class="language-plaintext highlighter-rouge">reline</code>。如果您需要使用 <code class="language-plaintext highlighter-rouge">ext/readline</code>,可以通过 rubygems.org 进行安装 <code class="language-plaintext highlighter-rouge">gem install readline-ext</code>。</li> <li>我们不再需要安装类似 <code class="language-plaintext highlighter-rouge">libreadline</code> 或 <code class="language-plaintext highlighter-rouge">libedit</code> 这样的库了。</li> </ul> <h2>C API 更新</h2> <h3>更新的 C API</h3> <p>更新了以下 API。</p> <h3>已移除的 C API</h3> <p>移除了以下废弃的 API。</p> <h2>标准库更新</h2> <p>更新了以下默认 gems。</p> <ul> <li>RubyGems 3.5.0.dev</li> <li>bigdecimal 3.1.4</li> <li>bundler 2.5.0.dev</li> <li>csv 3.2.7</li> <li>fiddle 1.1.2</li> <li>fileutils 1.7.1</li> <li>irb 1.6.4</li> <li>optparse 0.4.0.pre.1</li> <li>psych 5.1.0</li> <li>reline 0.3.3</li> <li>stringio 3.0.7</li> <li>strscan 3.0.7</li> <li>syntax_suggest 1.0.4</li> <li>time 0.2.2</li> <li>timeout 0.3.2</li> <li>uri 0.12.1</li> </ul> <p>更新了以下绑定 gems。</p> <ul> <li>minitest 5.18.0</li> <li>rbs 3.1.0</li> <li>typeprof 0.21.7</li> <li>debug 1.8.0</li> </ul> <p>有关默认 gems 和 绑定 gems 的细节,可以参考 GitHub 上的发布,例如 <a href="https://github.com/ruby/logger/releases">Logger</a> 或相应的变更日志。</p> <p>更多详情,可参见 <a href="https://github.com/ruby/ruby/blob/v3_3_0_preview1/NEWS.md">NEWS</a> 或 <a href="https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview1">提交日志</a>。</p> <p>自 Ruby 3.2.0 以来,<a href="https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview1#file_bucket">1922 个文件被更改,新增 75283 行(+), 删除 44896 行(-)</a>!</p> <h2>下载</h2> <ul> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.gz">https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.gz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>文件大小: 20428213 SHA1: 5445eec1cd9ddb44e03e74568cac94209c91b42d SHA256: c3454a911779b8d747ab0ea87041030d002d533edacb2485fe558b7084da25ed SHA512: 0f891f140ddc6372aa7c4459f8784126e0c341db7b80e72c51e441c5153c43c2d7b965f7807c076862ac84b9b8b0c6a66bbf66fc341746016151397bb21c782a </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.xz">https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.xz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>文件大小: 15074600 SHA1: 4c22ebca287c87811e1050bf4d59b7d32255b212 SHA256: ae300b49e06c13087dd163b97eddd38db895dc8e0c9904284119795d75303fbb SHA512: 46c1134dba5810847f7f6b4298900a91f5225679d7873548b271f4ef2ad1dc168722562a2e468a2ccf136314176ee613d8c7792fd4411a3f7a44c80b93b417ee </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.zip">https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.zip</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>文件大小: 24846962 SHA1: 31774fa653c54107b6afc30adda3a0350d8f41d2 SHA256: 6ecafecf83f2cacf446b2326012f2b6ee1a0614d8dd29bb1fb3f105c27e2c553 SHA512: 794bef847fefbbdbbdced85975a00c9289ef6464810408af3f0f2055052d6b5ef5576dbd41e0d87bb73f1ad276d8e27c36018610f8e2b9936828c0e692f611f0 </code></pre></div> </div> </li> </ul> <h2>Ruby是什么</h2> <p>Ruby 最初由 Matz (松本行弘,Yukihiro Matsumoto) 于 1993 年开发,现在以开源软件的形式开发。它可以在多个平台上运行,并在全球得到广泛使用,尤其是Web开发领域。</p> <p>由 naruse 发表于 2023-05-12<br />翻译: GAO Jun</p> Fri, 12 May 2023 00:00:00 +0000 https://ruby.github.net.cn/news/2023/05/12/ruby-3-3-0-preview1-released/ https://ruby.github.net.cn/news/2023/05/12/ruby-3-3-0-preview1-released/ Ruby 新闻更新 <p>Ruby 3.2.2 已发布。</p> <p>此版本包括安全补丁。 请通过以下条目来获取详情。</p> <ul> <li><a href="/zh_cn/news/2023/03/28/redos-in-uri-cve-2023-28755/">CVE-2023-28755: URI 包中的 ReDoS 漏洞</a></li> <li><a href="/zh_cn/news/2023/03/30/redos-in-time-cve-2023-28756/">CVE-2023-28756:Time 包中的 ReDoS 漏洞</a></li> </ul> <p>此版本还修复了一些构建问题。 您可以通过 <a href="https://github.com/ruby/ruby/releases/tag/v2_7_8">发布说明</a> 获取进一步信息。</p> <h2>下载</h2> <ul> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz">https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 20467023 SHA1: 670fce00d83771a1349b116e56a8a3b0ad323769 SHA256: 96c57558871a6748de5bc9f274e93f4b5aad06cd8f37befa0e8d94e7b8a423bc SHA512: bcc68f3f24c1c8987d9c80b57332e5791f25b935ba38daf5addf60dbfe3a05f9dcaf21909681b88e862c67c6ed103150f73259c6e35c564f13a00f432e3c1e46 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.xz">https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.xz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 15118856 SHA1: 087af286b70b0e17f88c9c4469b471eca2010161 SHA256: 4b352d0f7ec384e332e3e44cdbfdcd5ff2d594af3c8296b5636c710975149e23 SHA512: a29f24cd80f563f6368952d06d6273f7241a409fa9ab2f60e03dde2ac58ca06bee1750715b6134caebf4c061d3503446dc37a6059e19860bb0010eef34951935 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.zip">https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.zip</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 24615317 SHA1: a1b6d57019d41dca269b4b16a80784755d34b81d SHA256: cc216ecb4f49064d8f44e10ecf9218cfd7b28cf4168bb79ecdf171e321db4af1 SHA512: 569a68d89cc9a646cd0319d7cb8d57df3a55c0ac2c64f1f61607cc9c06b3aa8415eb8d38f7893ab3dbf072da9e919fbc454a9338e924c20a6a5110a1fa301d52 </code></pre></div> </div> </li> </ul> <h2>发布说明</h2> <p>许多提交者、开发人员以及用户提供了问题报告,帮助我们完成了此版本。 感谢他们的贡献。</p> <p>由 naruse 发表于 2023-03-30<br />翻译: GAO Jun</p> Thu, 30 Mar 2023 12:00:00 +0000 https://ruby.github.net.cn/news/2023/03/30/ruby-3-2-2-released/ https://ruby.github.net.cn/news/2023/03/30/ruby-3-2-2-released/ Ruby 新闻更新 <p>Ruby 3.1.4 已发布。</p> <p>此版本包括安全补丁。 请通过以下条目来获取详情。</p> <ul> <li><a href="/zh_cn/news/2023/03/28/redos-in-uri-cve-2023-28755/">CVE-2023-28755: URI 包中的 ReDoS 漏洞</a></li> <li><a href="/zh_cn/news/2023/03/30/redos-in-time-cve-2023-28756/">CVE-2023-28756:Time 包中的 ReDoS 漏洞</a></li> </ul> <p>此版本还修复了一些构建问题。 您可以通过 <a href="https://github.com/ruby/ruby/releases/tag/v2_7_8">发布说明</a> 获取进一步信息。</p> <h2>下载</h2> <ul> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz">https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 20917933 SHA1: 38eddfc5a7536b6c8133183563009a4ed9bbe6db SHA256: a3d55879a0dfab1d7141fdf10d22a07dbf8e5cdc4415da1bde06127d5cc3c7b6 SHA512: 41cf1561dd7eb249bb2c2f5ea958884880648cc1d11da9315f14158a2d0ff94b2c5c7d75291a67e57e1813d2ec7b618e5372a9f18ee93be6ed306f47b0d3199a </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.xz">https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.xz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 15316604 SHA1: 2e2fbf43b7db6f24280548a3544912535bed8212 SHA256: 1b6d6010e76036c937b9671f4752f065aeca800a6c664f71f6c9a699453af94f SHA512: a627bb629a10750b8b2081ad451a41faea0fc85d95aa1e267e3d2a0f56a35bb58195d4a8d13bbdbd82f4197a96dae22b1cee1dfc83861ec33a67ece07aef5633 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.zip">https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.zip</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 25241255 SHA1: 1061632623caa82a68a04a35777ed8f1797a9f8f SHA256: 1fce1ab3d61d10a857dc821dab6e77fa41d0663c5dbbfaa5d9b9c2bdec5ce303 SHA512: 3a334302df97c2c7fec3c2d05d19a40b1ec6f95fef52c85d397196ce62fac4834f96783f0ac7fcba6e2a670f004bcc275db6f1810ace6c68a594e7d2fd9b297b </code></pre></div> </div> </li> </ul> <h2>发布说明</h2> <p>许多提交者、开发人员以及用户提供了问题报告,帮助我们完成了此版本。 感谢他们的贡献。</p> <p>由 nagachika 发表于 2023-03-30<br />翻译: GAO Jun</p> Thu, 30 Mar 2023 12:00:00 +0000 https://ruby.github.net.cn/news/2023/03/30/ruby-3-1-4-released/ https://ruby.github.net.cn/news/2023/03/30/ruby-3-1-4-released/ Ruby 新闻更新 <p>Ruby 3.0.6 已发布。</p> <p>此版本包括安全补丁。 请通过以下条目来获取详情。</p> <ul> <li><a href="/zh_cn/news/2023/03/28/redos-in-uri-cve-2023-28755/">CVE-2023-28755: URI 包中的 ReDoS 漏洞</a></li> <li><a href="/zh_cn/news/2023/03/30/redos-in-time-cve-2023-28756/">CVE-2023-28756:Time 包中的 ReDoS 漏洞</a></li> </ul> <p>此版本还修复了一些构建问题。 您可以通过 <a href="https://github.com/ruby/ruby/releases/tag/v2_7_8">发布说明</a> 获取进一步信息。</p> <p>此版本发布后,我们将结束 Ruby 3.0 的普通维护期,Ruby 3.0 进入安全维护期。 这意味着除了安全补丁,我们将不再移植任何错误修复到 Ruby 3.0。</p> <p>安全维护期的期限为一年。 Ruby 3.0 将在安全维护期结束时达到 EOL,此时官方支持也将终结。 因此,我们建议您开始规划升级到 Ruby 3.1 或 Ruby 3.2。</p> <h2>下载</h2> <ul> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.gz">https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.gz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 21315725 SHA1: 1052441f0abbb0302fb9f1481d2db99dfb4d4c29 SHA256: 6e6cbd490030d7910c0ff20edefab4294dfcd1046f0f8f47f78b597987ac683e SHA512: d596bfd374ae777717379b409afe8ee1655ade0c0539ada7a10af4780b818efe25a28aa50a2a7226741d1776d744e10ad916641f9d12fb31c7444b0a01d0e0cc </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.xz">https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.xz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 15864560 SHA1: 7880c34d7193224e967163b12f33bf7aaf7304f6 SHA256: b5cbee93e62d85cfb2a408c49fa30a74231ae8409c2b3858e5f5ea254d7ddbd1 SHA512: abbf883cd9f3ddbd171df8f8c3cd35d930623c4c01a5e01387de0aee9811cca7604b82163e18e04f809773bf1ca5a450f13f62f3db14f191f610e116ae4fa6f8 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.zip">https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.zip</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 25694359 SHA1: e75d1bc14dd89c176145dc3968774e30f3a17652 SHA256: 428d518d12f09df4146fc31dbed47c8d7e10fcccd2426948e5c0862d9321480d SHA512: 576d11c668acac57cf4952228b148d17f16ab1dc491145355a4f2068b15f6cab8a4007a84d9d1eda4c1b62837675c82be99ebe6379c314f46c6ebbbf89677b5e </code></pre></div> </div> </li> </ul> <h2>发布说明</h2> <p>许多提交者、开发人员以及用户提供了问题报告,帮助我们完成了此版本。 感谢他们的贡献。</p> <p>包括这个版本在内的 Ruby 3.0 的维护,都基于 Ruby 协会 (Ruby Association) 的“Ruby 稳定版协议(Agreement for the Ruby stable version)”。</p> <p>由 usa 发表于 2023-03-30<br />翻译: GAO Jun</p> Thu, 30 Mar 2023 12:00:00 +0000 https://ruby.github.net.cn/news/2023/03/30/ruby-3-0-6-released/ https://ruby.github.net.cn/news/2023/03/30/ruby-3-0-6-released/ Ruby 新闻更新 <p>Ruby 2.7.8 已发布。</p> <p>此版本包括安全补丁。 请通过以下条目来获取详情。</p> <ul> <li><a href="/zh_cn/news/2023/03/28/redos-in-uri-cve-2023-28755/">CVE-2023-28755: URI 包中的 ReDoS 漏洞</a></li> <li><a href="/zh_cn/news/2023/03/30/redos-in-time-cve-2023-28756/">CVE-2023-28756:Time 包中的 ReDoS 漏洞</a></li> </ul> <p>此版本还修复了一些构建问题。 您可以通过 <a href="https://github.com/ruby/ruby/releases/tag/v2_7_8">发布说明</a> 获取进一步信息。</p> <p>此版本发布后,Ruby 2.7 达到 EOL。也就是说,这应该是 Ruby 2.7 系列的最后一个版本。 即使发现安全漏洞,我们也不会发布 Ruby 2.7.9(但如果发现严重回归问题时,则有可能会发布)。 我们建议所有 Ruby 2.7 用户立即开始迁移到 Ruby 3.2,3.1 或 3.0。</p> <h2>下载</h2> <ul> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.bz2">https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.bz2</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 14851891 SHA1: 3e1c6a7bac0b7ea6becb94a1a8e8630173903387 SHA256: 09ccf12051d86e5b3877c9e9db8b7eb6495bea180cab88a1fc99851434137c67 SHA512: 3a9db8d9e79318f869417f2ebf3365907febc0d1428116eabf3253c51d8420f255782b32fa30a54802b9f5f4187fad80dab0611cc80436feec84db87b0456ec6 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.gz">https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.gz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 16950365 SHA1: 8779ab7cd912697d78dee62ea9f976acdf600c54 SHA256: c2dab63cbc8f2a05526108ad419efa63a67ed4074dbbcf9fc2b1ca664cb45ba0 SHA512: 23195d29cec81f54061db14fbc9d0d75aca71ca4de35da3d5712eb08d71fbe27a3f0f2594b58692cf20225188334879e413ac078d10d7b635af0200d02f25ecb </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.xz">https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.xz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 12105320 SHA1: 9e7c7b790652d6c81ce1157b18eab5f8b11b0a27 SHA256: f22f662da504d49ce2080e446e4bea7008cee11d5ec4858fc69000d0e5b1d7fb SHA512: 4b49dff3e1c2e79d914e10418e4c03026f5d4c137dc337f5c720fe26cb9fcdcf4afc6b7c967356cf5fbe04cc5ef431174c48a035becf3e2322c2c45d3c9b2f59 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.zip">https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.zip</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SIZE: 20732352 SHA1: c38d38d03d840599e152a2ec62567075cb6ca253 SHA256: 9567ed0e9015f238ff6bbd5e4fd4ee9df39174eb7a29762beb8920788068661c SHA512: e7ad3380cc81ecfebccb39acad7364a20bc5ebf9ce74ca5d82225fe0dea76e2ee46aa97e49b975dd9a00c7ff60d94907d9a27acdbb5c5a48b88a3c58e0a998be </code></pre></div> </div> </li> </ul> <h2>发布说明</h2> <p>许多提交者、开发人员以及用户提供了问题报告,帮助我们完成了此版本。 感谢他们的贡献。</p> <p>由 usa 发表于 2023-03-30<br />翻译: GAO Jun</p> Thu, 30 Mar 2023 12:00:00 +0000 https://ruby.github.net.cn/news/2023/03/30/ruby-2-7-8-released/ https://ruby.github.net.cn/news/2023/03/30/ruby-2-7-8-released/ Ruby 新闻更新 <p>我们刚发布了包含 ReDos 漏洞补丁的 <code class="language-plaintext highlighter-rouge">time</code> gem 版本 0.1.1 和 0.2.2。 此漏洞的 CVE编号为 <a href="https://www.cve.org/CVERecord?id=CVE-2023-28756">CVE-2023-28756</a>.</p> <h2>详情</h2> <p>Time 解析器会错误处理包含特殊字符的错误字符串。这会导致将字符串解析为时间的处理时间变长。</p> <p>受此 ReDoS 问题影响的 <code class="language-plaintext highlighter-rouge">time</code> gem 版本包括:0.1.0,0.2.1 以及 Ruby 2.7.7 中使用的版本。</p> <h2>建议操作</h2> <p>我们建议将 <code class="language-plaintext highlighter-rouge">time</code> gem 更新到 0.2.2 或后续版本。为了保证各个 Ruby 系列中绑定版本的兼容性,您可以参照下面的提示进行更新:</p> <ul> <li>Ruby 3.0 用户:更新 <code class="language-plaintext highlighter-rouge">time</code> 至 0.1.1</li> <li>Ruby 3.1/3.2 用户:更新 <code class="language-plaintext highlighter-rouge">time</code> 至 0.2.2</li> </ul> <p>您可以通过 <code class="language-plaintext highlighter-rouge">gem update time</code> 进行更新。如果您使用 bundler,请在您的 <code class="language-plaintext highlighter-rouge">Gemfile</code>中增加 <code class="language-plaintext highlighter-rouge">gem "time", "&gt;= 0.2.2"</code>。</p> <p>不幸的是,<code class="language-plaintext highlighter-rouge">time</code> gem 的操作只能用于 Ruby 3.0 及之后的版本。如果您正在使用 Ruby 2.7,请使用最新版本的 Ruby。</p> <h2>受影响版本</h2> <ul> <li>Ruby 2.7.7 及之前版本</li> <li><code class="language-plaintext highlighter-rouge">time</code> gem 0.1.0</li> <li><code class="language-plaintext highlighter-rouge">time</code> gem 0.2.1</li> </ul> <h2>致谢</h2> <p>感谢 <a href="https://hackerone.com/ooooooo_q?type=user">ooooooo_q</a> 发现此问题。</p> <h2>历史</h2> <ul> <li>最初发布于 2023-03-30 11:00:00 (UTC)</li> </ul> <p>由 hsbt 发表于 2023-03-30<br />翻译: GAO Jun</p> Thu, 30 Mar 2023 11:00:00 +0000 https://ruby.github.net.cn/news/2023/03/30/redos-in-time-cve-2023-28756/ https://ruby.github.net.cn/news/2023/03/30/redos-in-time-cve-2023-28756/ Ruby 新闻更新 <p>我们刚发布了包含 ReDoS 漏洞补丁的 <code class="language-plaintext highlighter-rouge">uri</code> gem 版本 0.12.1,0.11.1,0.10.2 和 0.10.0.1。 此漏洞的 CVE 编号为 <a href="https://www.cve.org/CVERecord?id=CVE-2023-28755">CVE-2023-28755</a>。</p> <h2>详情</h2> <p>在 URI 组件中发现了一个 ReDoS 问题。URI 解析器会错误处理包含特殊字符的错误 URL。这会导致将字符串解析为 URI 的处理时间增长。</p> <p>受此漏洞影响的 <code class="language-plaintext highlighter-rouge">uri</code> gem 版本包括:0.12.0,0.11.0,0.10.1,0.10.0 以及 0.10.0 之前的版本。</p> <h2>建议操作</h2> <p>我们建议将 <code class="language-plaintext highlighter-rouge">uri</code> gem 更新到 0.12.1。为了保证各个 Ruby 系列中绑定版本的兼容性您也可以按照下列方式进行更新:</p> <ul> <li>Ruby 2.7:更新 <code class="language-plaintext highlighter-rouge">uri</code> 至 0.10.0.1</li> <li>Ruby 3.0:更新 <code class="language-plaintext highlighter-rouge">uri</code> 至 0.10.2</li> <li>Ruby 3.1:更新 <code class="language-plaintext highlighter-rouge">uri</code> 至 0.11.1</li> <li>Ruby 3.2:更新 <code class="language-plaintext highlighter-rouge">uri</code> 至 0.12.1</li> </ul> <p>您可以通过 <code class="language-plaintext highlighter-rouge">gem update uri</code> 进行更新。如果您使用 bundler,请在您的 <code class="language-plaintext highlighter-rouge">Gemfile</code> 中增加 <code class="language-plaintext highlighter-rouge">gem "uri", "&gt;= 0.12.1"</code> (或上面提到的其他版本)。</p> <h2>受影响版本</h2> <ul> <li><code class="language-plaintext highlighter-rouge">uri</code> gem 0.12.0</li> <li><code class="language-plaintext highlighter-rouge">uri</code> gem 0.11.0</li> <li><code class="language-plaintext highlighter-rouge">uri</code> gem 0.10.1</li> <li><code class="language-plaintext highlighter-rouge">uri</code> gem 0.10.0 及之前版本</li> </ul> <h2>致谢</h2> <p>感谢 <a href="https://hackerone.com/dee-see?type=user">Dominic Couture</a> 发现此问题。</p> <h2>历史</h2> <ul> <li>最初发布于 2023-03-28 01:00:00 (UTC)</li> <li>受影响版本更新于 2023-03-28 02:00:00 (UTC)</li> </ul> <p>由 hsbt 发表于 2023-03-28<br />翻译: GAO Jun</p> Tue, 28 Mar 2023 01:00:00 +0000 https://ruby.github.net.cn/news/2023/03/28/redos-in-uri-cve-2023-28755/ https://ruby.github.net.cn/news/2023/03/28/redos-in-uri-cve-2023-28755/ Ruby 新闻更新 <p>Ruby 3.2.1 已发布。</p> <p>这是 Ruby 3.2 系列的第一个小版本更新。</p> <p>您可以通过 <a href="https://github.com/ruby/ruby/compare/v3_2_0...v3_2_1">提交日志</a> 获取更多信息。</p> <h2>下载</h2> <ul> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.gz">https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.gz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>文件大小: 20448976 SHA1: aa570c9c89dc19090f623dc31083a4fa4e2b8a7b SHA256: 13d67901660ee3217dbd9dd56059346bd4212ce64a69c306ef52df64935f8dbd SHA512: f8bbff5e237b501f4042ddc70a19ac1ce74f72f147c90daf7f3007a940136abde37c12a0f7444f713ede09ba847c2cc2897a1742823832e3dc8cce80073164e1 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.xz">https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.xz</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>文件大小: 15094384 SHA1: eab9eaa05c6f572032e8c8f6108c9a4fe229ddd3 SHA256: 746c8661ae25449cbdc5297d1092702e93e66f365a75fecb740d4f292ced630c SHA512: 69caadab9be6b56905ea4fc92fa0e36704f9fa6a0e7e7f4c6bdb79e9cbe8dc57c524f96d9c18802d61aa1ca578fed2e9758692f9d701bf0dba938f0206b721b3 </code></pre></div> </div> </li> <li> <p><a href="https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.zip">https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.zip</a></p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>文件大小: 24595108 SHA1: fa35be65563b8d989ecf529b938e391b5d595ac4 SHA256: b6e132b65ec1a821067a5a1ca281936aa6f8967d3f758c623a9f4f22e711a317 SHA512: 795e1b74f70552d756c0a75c12ff9f3150866546643dd86afbbe8c0bcaa4df53ae928004e3632e703e14bb76d671c4627dfd01eb453d039067186200ea058d74 </code></pre></div> </div> </li> </ul> <h2>版本说明</h2> <p>许多提交者、开发人员以及用户提供了问题报告,帮助我们完成了此版本。 感谢他们的贡献。</p> <p>由 naruse 发表于 2023-02-08<br />翻译: GAO Jun</p> Wed, 08 Feb 2023 12:00:00 +0000 https://ruby.github.net.cn/news/2023/02/08/ruby-3-2-1-released/ https://ruby.github.net.cn/news/2023/02/08/ruby-3-2-1-released/