diff options
Diffstat (limited to 'NEWS.md')
| -rw-r--r-- | NEWS.md | 438 |
1 files changed, 215 insertions, 223 deletions
@@ -1,277 +1,269 @@ -# NEWS for Ruby 3.5.0 +# NEWS for Ruby 4.1.0 This document is a list of user-visible feature changes -since the **3.4.0** release, except for bug fixes. +since the **4.0.0** release, except for bug fixes. Note that each entry is kept to a minimum, see links for details. ## Language changes -* `*nil` no longer calls `nil.to_a`, similar to how `**nil` does - not call `nil.to_hash`. [[Feature #21047]] +* `Module#clone` and `Module#dup` no longer rewrite the lexical scope of + copied methods. Constants and class variables resolve through the + original class, consistent with inheritance and mixins. + [[Feature #21981]] ## Core classes updates Note: We're only listing outstanding class updates. -* Kernel - - * `Kernel#inspect` now checks for the existence of a `#instance_variables_to_inspect` method, - allowing control over which instance variables are displayed in the `#inspect` string: - - ```ruby - class DatabaseConfig - def initialize(host, user, password) - @host = host - @user = user - @password = password - end - - private def instance_variables_to_inspect = [:@host, :@user] - end - - conf = DatabaseConfig.new("localhost", "root", "hunter2") - conf.inspect #=> #<DatabaseConfig:0x0000000104def350 @host="localhost", @user="root"> - ``` - - [[Feature #21219]] - -* Binding - - * `Binding#local_variables` does no longer include numbered parameters. - Also, `Binding#local_variable_get` and `Binding#local_variable_set` reject - to handle numbered parameters. [[Bug #21049]] - -* IO +* Array - * `IO.select` accepts +Float::INFINITY+ as a timeout argument. - [[Feature #20610]] + * `Array#pack` accepts a new format `R` and `r` for unpacking unsigned + and signed LEB128 encoded integers. [[Feature #21785]] + * `Array#pack` accepts a new format `^` that returns the current offset. + Useful when combined with variable width formats like LEB128. [[Feature #21796]] -* Math +* ENV - * `Math.log1p` and `Math.expm1` are added. [[Feature #21527]] + * `ENV.fetch_values` is added. It returns an array of values for the + given names, raising `KeyError` for missing names unless a block is + given. [[Feature #21781]] -* Socket - - * `Socket.tcp` & `TCPSocket.new` accepts `open_timeout` as a keyword argument to specify - the timeout for the initial connection. [[Feature #21347]] - -* Ractor - - * `Ractor::Port` class was added for a new synchronization mechanism - to communicate between Ractors. [[Feature #21262]] - - ```ruby - port1 = Ractor::Port.new - port2 = Ractor::Port.new - Ractor.new port1, port2 do |port1, port2| - port1 << 1 - port2 << 11 - port1 << 2 - port2 << 12 - end - 2.times{ p port1.receive } #=> 1, 2 - 2.times{ p port2.receive } #=> 11, 12 - ``` - - `Ractor::Port` provides the following methods: - - * `Ractor::Port#receive` - * `Ractor::Port#send` (or `Ractor::Port#<<`) - * `Ractor::Port#close` - * `Ractor::Port#closed?` - - As result, `Ractor.yield` and `Ractor#take` were removed. +* Kernel - * `Ractor#join` and `Ractor#value` were added to wait for the - termination of a Ractor. These are similar to `Thread#join` - and `Thread#value`. + * `Kernel#autoload_relative` and `Module#autoload_relative` are added. + These methods work like `autoload`, but resolve the file path relative + to the file where the method is called, similar to `require_relative`. + This makes it easier to autoload constants from files in the same + directory without hardcoding absolute paths or manipulating `$LOAD_PATH`. + [[Feature #15330]] - * `Ractor#monitor` and `Ractor#unmonitor` were added as low-level - interfaces used internally to implement `Ractor#join`. +* MatchData - * `Ractor.select` now only accepts Ractors and Ports. If Ractors are given, - it returns when a Ractor terminates. + * `MatchData#integer_at` is added. It converts the matched substring to + integer and return the result. [[Feature #21932]] - * `Ractor#default_port` was added. Each `Ractor` has a default port, - which is used by `Ractor.send`, `Ractor.receive`. +* Regexp - * `Ractor#close_incoming` and `Ractor#close_outgoing` were removed. + * All instances of `Regexp` are now frozen, not just literals. + Subclasses of `Regexp` are not frozen for compatibility. + [[Feature #8948]] * Set - * Set is now a core class, instead of an autoloaded stdlib class. - [[Feature #21216]] - -* String - - * Update Unicode to Version 16.0.0 and Emoji Version 16.0. - [[Feature #19908]][[Feature #20724]] (also applies to Regexp) - -* Thread - - * Introduce support for `Thread#raise(cause:)` argument similar to - `Kernel#raise`. [[Feature #21360]] - -* Fiber - - * Introduce support for `Fiber#raise(cause:)` argument similar to - `Kernel#raise`. [[Feature #21360]] - -* Fiber::Scheduler - - * Introduce `Fiber::Scheduler#fiber_interrupt` to interrupt a fiber with a - given exception. The initial use case is to interrupt a fiber that is - waiting on a blocking IO operation when the IO operation is closed. - [[Feature #21166]] - -* Pathname - - * Pathname has been promoted from a default gem to a core class of Ruby. - [[Feature #17473]] + * A deprecated behavior, `Set#to_set`, `Range#to_set`, and + `Enumerable#to_set` accepting arguments, was removed. [[Feature #21390]] ## Stdlib updates -The following bundled gems are promoted from default gems. +### The following bundled gems are added. -* ostruct 0.6.3 -* pstore 0.2.0 -* benchmark 0.4.1 -* logger 1.7.0 -* rdoc 6.14.2 -* win32ole 1.9.2 -* irb 1.15.2 -* reline 0.6.2 -* readline 0.0.4 -* fiddle 1.1.8 We only list stdlib changes that are notable feature changes. Other changes are listed in the following sections. We also listed release -history from the previous bundled version that is Ruby 3.3.0 if it has GitHub +history from the previous bundled version that is Ruby 3.4.0 if it has GitHub releases. -The following default gem is added. - -* win32-registry 0.1.0 - -The following default gems are updated. - -* RubyGems 3.8.0.dev -* bundler 2.8.0.dev -* erb 5.0.2 -* etc 1.4.6 -* io-console 0.8.1 -* io-nonblock 0.3.2 -* io-wait 0.3.2 -* json 2.13.2 -* optparse 0.7.0.dev.2 -* prism 1.4.0 -* psych 5.2.6 -* resolv 0.6.2 -* stringio 3.1.8.dev -* strscan 3.1.6.dev -* uri 1.0.3 -* weakref 0.1.4 - -The following bundled gems are added. - - -The following bundled gems are updated. - -* minitest 5.25.5 -* rake 13.3.0 -* test-unit 3.7.0 -* rexml 3.4.1 -* net-imap 0.5.9 -* net-smtp 0.5.1 -* matrix 0.4.3 -* prime 0.1.4 -* rbs 3.9.4 -* debug 1.11.0 -* base64 0.3.0 -* bigdecimal 3.2.2 -* drb 2.2.3 -* syslog 0.3.0 -* csv 3.3.5 -* repl_type_completor 0.1.11 +### The following bundled gems are promoted from default gems. + +* tsort 0.2.0 +* win32-registry 0.1.2 + +### The following default gem is added. + +### The following default gems are updated. + +* RubyGems 4.1.0.dev + * 4.0.3 to [v4.0.4][RubyGems-v4.0.4], [v4.0.5][RubyGems-v4.0.5], [v4.0.6][RubyGems-v4.0.6], [v4.0.7][RubyGems-v4.0.7], [v4.0.8][RubyGems-v4.0.8], [v4.0.9][RubyGems-v4.0.9], [v4.0.10][RubyGems-v4.0.10], [v4.0.11][RubyGems-v4.0.11], [v4.0.12][RubyGems-v4.0.12], [v4.0.13][RubyGems-v4.0.13] +* bundler 4.1.0.dev + * 4.0.3 to [v4.0.4][bundler-v4.0.4], [v4.0.5][bundler-v4.0.5], [v4.0.6][bundler-v4.0.6], [v4.0.7][bundler-v4.0.7], [v4.0.8][bundler-v4.0.8], [v4.0.9][bundler-v4.0.9], [v4.0.10][bundler-v4.0.10], [v4.0.11][bundler-v4.0.11], [v4.0.12][bundler-v4.0.12], [v4.0.13][bundler-v4.0.13] +* erb 6.0.4 + * 6.0.1 to [v6.0.1.1][erb-v6.0.1.1], [v6.0.2][erb-v6.0.2], [v6.0.3][erb-v6.0.3], [v6.0.4][erb-v6.0.4] +* ipaddr 1.2.9 + * 1.2.8 to [v1.2.9][ipaddr-v1.2.9] +* json 2.19.8 + * 2.18.0 to [v2.18.1][json-v2.18.1], [v2.19.0][json-v2.19.0], [v2.19.1][json-v2.19.1], [v2.19.2][json-v2.19.2], [v2.19.3][json-v2.19.3], [v2.19.4][json-v2.19.4], [v2.19.5][json-v2.19.5], [v2.19.6][json-v2.19.6], [v2.19.7][json-v2.19.7] +* openssl 4.0.2 + * 4.0.0 to [v4.0.1][openssl-v4.0.1], [v4.0.2][openssl-v4.0.2] +* prism 1.9.0 + * 1.7.0 to [v1.8.0][prism-v1.8.0], [v1.8.1][prism-v1.8.1], [v1.9.0][prism-v1.9.0] +* psych 5.4.0 +* resolv 0.7.1 + * 0.7.0 to [v0.7.1][resolv-v0.7.1] +* stringio 3.2.1.dev +* strscan 3.1.9.dev + * 3.1.6 to [v3.1.7][strscan-v3.1.7], [v3.1.8][strscan-v3.1.8] +* syntax_suggest 3.0.0 +* timeout 0.6.1 + * 0.6.0 to [v0.6.1][timeout-v0.6.1] +* zlib 3.2.3 + * 3.2.2 to [v3.2.3][zlib-v3.2.3] + +### The following bundled gems are updated. + +* minitest 6.0.6 +* rake 13.4.2 + * 13.3.1 to [v13.4.0][rake-v13.4.0], [v13.4.1][rake-v13.4.1], [v13.4.2][rake-v13.4.2] +* test-unit 3.7.8 + * 3.7.5 to [3.7.6][test-unit-3.7.6], [3.7.7][test-unit-3.7.7], [3.7.8][test-unit-3.7.8] +* net-imap 0.6.4 + * 0.6.2 to [v0.6.3][net-imap-v0.6.3], [v0.6.4][net-imap-v0.6.4] +* rbs 4.0.2 + * 3.10.0 to [v3.10.1][rbs-v3.10.1], [v3.10.2][rbs-v3.10.2], [v3.10.3][rbs-v3.10.3], [v3.10.4][rbs-v3.10.4], [v4.0.0.dev.5][rbs-v4.0.0.dev.5], [v4.0.0][rbs-v4.0.0], [v4.0.2][rbs-v4.0.2] +* typeprof 0.32.0 +* mutex_m 0.3.0 +* bigdecimal 4.1.2 + * 4.0.1 to [v4.1.0][bigdecimal-v4.1.0], [v4.1.1][bigdecimal-v4.1.1], [v4.1.2][bigdecimal-v4.1.2] +* resolv-replace 0.2.0 + * 0.1.1 to [v0.2.0][resolv-replace-v0.2.0] +* syslog 0.4.0 + * 0.3.0 to [v0.4.0][syslog-v0.4.0] +* repl_type_completor 0.1.15 + * 0.1.12 to [v0.1.13][repl_type_completor-v0.1.13], [v0.1.14][repl_type_completor-v0.1.14], [v0.1.15][repl_type_completor-v0.1.15] +* pstore 0.2.1 + * 0.2.0 to [v0.2.1][pstore-v0.2.1] +* rdoc 7.2.0 + * 7.0.3 to [v7.0.4][rdoc-v7.0.4], [v7.1.0][rdoc-v7.1.0], [v7.2.0][rdoc-v7.2.0] +* win32ole 1.9.3 + * 1.9.2 to [v1.9.3][win32ole-v1.9.3] +* irb 1.18.0 + * 1.16.0 to [v1.17.0][irb-v1.17.0], [v1.18.0][irb-v1.18.0] + +### RubyGems and Bundler + +Ruby 4.0 bundled RubyGems and Bundler version 4. see the following links for details. ## Supported platforms ## Compatibility issues -* The following methods were removed from Ractor due because of `Ractor::Port`: +## Stdlib compatibility issues - * `Ractor.yield` - * `Ractor#take` - * `Ractor#close_incoming` - * `Ractor#close_outgoging` +## C API updates - [[Feature #21262]] +### Embedded TypedData -## Stdlib compatibility issues +* The `RUBY_TYPED_EMBEDDABLE` flag is now public and documented and can be used by C extensions. + It allows allocating C structs directly into Ruby object slots, which reduces pointer chasing, + and in some case memory usage. + See the C extension documentation for details. [[Feature #21853]] -* CGI library is removed from the default gems. Now we only provide `cgi/escape` for - the following methods: +* Added new C23 inspired allocator functions, that takes the previous memory size. + This allow the Ruby GC to better keep track of memory usage, improving its heuristics. + It also improves the performance of system allocators that support C23 `free_sized`. - * `CGI.escape` and `CGI.unescape` - * `CGI.escapeHTML` and `CGI.unescapeHTML` - * `CGI.escapeURIComponent` and `CGI.unescapeURIComponent` - * `CGI.escapeElement` and `CGI.unescapeElement` + However, it is important to note that passing an incorrect size to these function is undefined + behavior and may result in crashes or memory leaks. - [[Feature #21258]] + - `ruby_xfree_sized(void *ptr, size_t size)` + - `ruby_xrealloc_sized(void *ptr, size_t newsiz, size_t oldsiz)` + - `ruby_xrealloc2_sized(void *ptr, size_t newelems, size_t newsiz, size_t oldelems)` -* With the move of `Set` from stdlib to core class, `set/sorted_set.rb` has - been removed, and `SortedSet` is no longer an autoloaded constant. Please - install the `sorted_set` gem and `require 'sorted_set'` to use `SortedSet`. - [[Feature #21287]] + [[Feature #21861]] -## C API updates +### Removed APIs -* IO +The following APIs, which have been deprecated for many years, are removed. +[[Feature #21768]] - * `rb_thread_fd_close` is deprecated and now a no-op. If you need to expose - file descriptors from C extensions to Ruby code, create an `IO` instance - using `RUBY_IO_MODE_EXTERNAL` and use `rb_io_close(io)` to close it (this - also interrupts and waits for all pending operations on the `IO` - instance). Directly closing file descriptors does not interrupt pending - operations, and may lead to undefined behaviour. In other words, if two - `IO` objects share the same file descriptor, closing one does not affect - the other. [[Feature #18455]] +* old postponed job functions, +* untyped data object type/functions, +* old APIs to allocate a data object, +* taintedness/trustedness enums/macros, +* `rb_gc_force_recycle` function, +* `rb_iterate` function, +* and some functions and constants for internal use. ## Implementation improvements +### Ractor + +A lot of work has gone into making Ractors more stable, performant, and usable. These improvements bring Ractor implementation closer to leaving experimental status. + ## JIT -* YJIT - * YJIT stats - * `ratio_in_yjit` no longer works in the default build. - Use `--enable-yjit=stats` on `configure` to enable it on `--yjit-stats`. - * Add `invalidate_everything` to default stats, which is - incremented when every code is invalidated by TracePoint. - * Add `mem_size:` and `call_threshold:` options to `RubyVM::YJIT.enable`. -* ZJIT - * Add an experimental method-based JIT compiler. - Use `--enable-zjit` on `configure` to enable the `--zjit` support. - * As of Ruby 3.5.0-preview2, ZJIT is not yet ready for speeding up most benchmarks. - Please refrain from evaluating ZJIT just yet. Stay tuned for the Ruby 3.5 release. -* RJIT - * `--rjit` is removed. We will move the implementation of the third-party JIT API - to the [ruby/rjit](https://github.com/ruby/rjit) repository. - -[Feature #17473]: https://bugs.ruby-lang.org/issues/17473 -[Feature #18455]: https://bugs.ruby-lang.org/issues/18455 -[Feature #19908]: https://bugs.ruby-lang.org/issues/19908 -[Feature #20610]: https://bugs.ruby-lang.org/issues/20610 -[Feature #20724]: https://bugs.ruby-lang.org/issues/20724 -[Feature #21047]: https://bugs.ruby-lang.org/issues/21047 -[Bug #21049]: https://bugs.ruby-lang.org/issues/21049 -[Feature #21166]: https://bugs.ruby-lang.org/issues/21166 -[Feature #21216]: https://bugs.ruby-lang.org/issues/21216 -[Feature #21219]: https://bugs.ruby-lang.org/issues/21219 -[Feature #21258]: https://bugs.ruby-lang.org/issues/21258 -[Feature #21262]: https://bugs.ruby-lang.org/issues/21262 -[Feature #21287]: https://bugs.ruby-lang.org/issues/21287 -[Feature #21347]: https://bugs.ruby-lang.org/issues/21347 -[Feature #21360]: https://bugs.ruby-lang.org/issues/21360 -[Feature #21527]: https://bugs.ruby-lang.org/issues/21527 +[Feature #8948]: https://bugs.ruby-lang.org/issues/8948 +[Feature #15330]: https://bugs.ruby-lang.org/issues/15330 +[Feature #21390]: https://bugs.ruby-lang.org/issues/21390 +[Feature #21768]: https://bugs.ruby-lang.org/issues/21768 +[Feature #21785]: https://bugs.ruby-lang.org/issues/21785 +[Feature #21796]: https://bugs.ruby-lang.org/issues/21796 +[Feature #21853]: https://bugs.ruby-lang.org/issues/21853 +[Feature #21861]: https://bugs.ruby-lang.org/issues/21861 +[Feature #21932]: https://bugs.ruby-lang.org/issues/21932 +[Feature #21981]: https://bugs.ruby-lang.org/issues/21981 +[RubyGems-v4.0.4]: https://github.com/rubygems/rubygems/releases/tag/v4.0.4 +[RubyGems-v4.0.5]: https://github.com/rubygems/rubygems/releases/tag/v4.0.5 +[RubyGems-v4.0.6]: https://github.com/rubygems/rubygems/releases/tag/v4.0.6 +[RubyGems-v4.0.7]: https://github.com/rubygems/rubygems/releases/tag/v4.0.7 +[RubyGems-v4.0.8]: https://github.com/rubygems/rubygems/releases/tag/v4.0.8 +[RubyGems-v4.0.9]: https://github.com/rubygems/rubygems/releases/tag/v4.0.9 +[RubyGems-v4.0.10]: https://github.com/rubygems/rubygems/releases/tag/v4.0.10 +[RubyGems-v4.0.11]: https://github.com/rubygems/rubygems/releases/tag/v4.0.11 +[RubyGems-v4.0.12]: https://github.com/rubygems/rubygems/releases/tag/v4.0.12 +[RubyGems-v4.0.13]: https://github.com/rubygems/rubygems/releases/tag/v4.0.13 +[bundler-v4.0.4]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.4 +[bundler-v4.0.5]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.5 +[bundler-v4.0.6]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.6 +[bundler-v4.0.7]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.7 +[bundler-v4.0.8]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.8 +[bundler-v4.0.9]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.9 +[bundler-v4.0.10]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.10 +[bundler-v4.0.11]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.11 +[bundler-v4.0.12]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.12 +[bundler-v4.0.13]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.13 +[erb-v6.0.1.1]: https://github.com/ruby/erb/releases/tag/v6.0.1.1 +[erb-v6.0.2]: https://github.com/ruby/erb/releases/tag/v6.0.2 +[erb-v6.0.3]: https://github.com/ruby/erb/releases/tag/v6.0.3 +[erb-v6.0.4]: https://github.com/ruby/erb/releases/tag/v6.0.4 +[ipaddr-v1.2.9]: https://github.com/ruby/ipaddr/releases/tag/v1.2.9 +[json-v2.18.1]: https://github.com/ruby/json/releases/tag/v2.18.1 +[json-v2.19.0]: https://github.com/ruby/json/releases/tag/v2.19.0 +[json-v2.19.1]: https://github.com/ruby/json/releases/tag/v2.19.1 +[json-v2.19.2]: https://github.com/ruby/json/releases/tag/v2.19.2 +[json-v2.19.3]: https://github.com/ruby/json/releases/tag/v2.19.3 +[json-v2.19.4]: https://github.com/ruby/json/releases/tag/v2.19.4 +[json-v2.19.5]: https://github.com/ruby/json/releases/tag/v2.19.5 +[json-v2.19.6]: https://github.com/ruby/json/releases/tag/v2.19.6 +[json-v2.19.7]: https://github.com/ruby/json/releases/tag/v2.19.7 +[openssl-v4.0.1]: https://github.com/ruby/openssl/releases/tag/v4.0.1 +[openssl-v4.0.2]: https://github.com/ruby/openssl/releases/tag/v4.0.2 +[prism-v1.8.0]: https://github.com/ruby/prism/releases/tag/v1.8.0 +[prism-v1.8.1]: https://github.com/ruby/prism/releases/tag/v1.8.1 +[prism-v1.9.0]: https://github.com/ruby/prism/releases/tag/v1.9.0 +[resolv-v0.7.1]: https://github.com/ruby/resolv/releases/tag/v0.7.1 +[strscan-v3.1.7]: https://github.com/ruby/strscan/releases/tag/v3.1.7 +[strscan-v3.1.8]: https://github.com/ruby/strscan/releases/tag/v3.1.8 +[timeout-v0.6.1]: https://github.com/ruby/timeout/releases/tag/v0.6.1 +[zlib-v3.2.3]: https://github.com/ruby/zlib/releases/tag/v3.2.3 +[rake-v13.4.0]: https://github.com/ruby/rake/releases/tag/v13.4.0 +[rake-v13.4.1]: https://github.com/ruby/rake/releases/tag/v13.4.1 +[rake-v13.4.2]: https://github.com/ruby/rake/releases/tag/v13.4.2 +[test-unit-3.7.6]: https://github.com/test-unit/test-unit/releases/tag/3.7.6 +[test-unit-3.7.7]: https://github.com/test-unit/test-unit/releases/tag/3.7.7 +[test-unit-3.7.8]: https://github.com/test-unit/test-unit/releases/tag/3.7.8 +[net-imap-v0.6.3]: https://github.com/ruby/net-imap/releases/tag/v0.6.3 +[net-imap-v0.6.4]: https://github.com/ruby/net-imap/releases/tag/v0.6.4 +[rbs-v3.10.1]: https://github.com/ruby/rbs/releases/tag/v3.10.1 +[rbs-v3.10.2]: https://github.com/ruby/rbs/releases/tag/v3.10.2 +[rbs-v3.10.3]: https://github.com/ruby/rbs/releases/tag/v3.10.3 +[rbs-v3.10.4]: https://github.com/ruby/rbs/releases/tag/v3.10.4 +[rbs-v4.0.0.dev.5]: https://github.com/ruby/rbs/releases/tag/v4.0.0.dev.5 +[rbs-v4.0.0]: https://github.com/ruby/rbs/releases/tag/v4.0.0 +[rbs-v4.0.2]: https://github.com/ruby/rbs/releases/tag/v4.0.2 +[bigdecimal-v4.1.0]: https://github.com/ruby/bigdecimal/releases/tag/v4.1.0 +[bigdecimal-v4.1.1]: https://github.com/ruby/bigdecimal/releases/tag/v4.1.1 +[bigdecimal-v4.1.2]: https://github.com/ruby/bigdecimal/releases/tag/v4.1.2 +[resolv-replace-v0.2.0]: https://github.com/ruby/resolv-replace/releases/tag/v0.2.0 +[syslog-v0.4.0]: https://github.com/ruby/syslog/releases/tag/v0.4.0 +[repl_type_completor-v0.1.13]: https://github.com/ruby/repl_type_completor/releases/tag/v0.1.13 +[repl_type_completor-v0.1.14]: https://github.com/ruby/repl_type_completor/releases/tag/v0.1.14 +[repl_type_completor-v0.1.15]: https://github.com/ruby/repl_type_completor/releases/tag/v0.1.15 +[pstore-v0.2.1]: https://github.com/ruby/pstore/releases/tag/v0.2.1 +[rdoc-v7.0.4]: https://github.com/ruby/rdoc/releases/tag/v7.0.4 +[rdoc-v7.1.0]: https://github.com/ruby/rdoc/releases/tag/v7.1.0 +[rdoc-v7.2.0]: https://github.com/ruby/rdoc/releases/tag/v7.2.0 +[win32ole-v1.9.3]: https://github.com/ruby/win32ole/releases/tag/v1.9.3 +[irb-v1.17.0]: https://github.com/ruby/irb/releases/tag/v1.17.0 +[irb-v1.18.0]: https://github.com/ruby/irb/releases/tag/v1.18.0 |
