ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ???????????????????????????????????? ???????????????????????????????????? ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ???????????????????????????????????? ???????????????????????????????????? U:RDoc::TopLevel[ iI"NEWS/NEWS-3.1.0.md:ETcRDoc::Parser::Markdowno:RDoc::Markup::Document: @parts[7S:RDoc::Markup::Heading: leveli: textI"NEWS for Ruby 3.1.0;To:RDoc::Markup::Paragraph;[I"mThis document is a list of user-visible feature changes since the *3.0.0* release, except for bug fixes.;To; ;[I"FNote that each entry is kept to a minimum, see links for details.;TS; ; i; I"Language changes;To:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0;[o; ;[I"The block argument can now be anonymous if the block will only be passed to another method. [{Feature #11256}[https://bugs.ruby-lang.org/issues/11256]];Fo:RDoc::Markup::Verbatim;[I"def foo(&) bar(&) end ;F: @format: rubyo;;0;[o; ;[I"fPin operator now takes an expression. [{Feature #17411}[https://bugs.ruby-lang.org/issues/17411]];Fo;;[I"gPrime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #=> [[3, 5], [5, 7], [11, 13]] ;F;;o;;0;[o; ;[I"|Pin operator now supports instance, class, and global variables. [{Feature #17724}[https://bugs.ruby-lang.org/issues/17724]];Fo;;[I"D@n = 5 Prime.each_cons(2).lazy.find{_1 in [n, ^@n]} #=> [3, 5] ;F;;o;;0;[o; ;[I"9One-line pattern matching is no longer experimental.;Fo;;0;[o; ;[I"yParentheses can be omitted in one-line pattern matching. [{Feature #16182}[https://bugs.ruby-lang.org/issues/16182]];Fo;;[I"1[0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2 ;F;;o;;0;[o; ;[I"Multiple assignment evaluation order has been made consistent with single assignment evaluation order. With single assignment, Ruby uses a left-to-right evaluation order. With this code:;Fo;;[I"foo[0] = bar ;F;;o; ;[I",The following evaluation order is used:;Fo; ;: NUMBER;[o;;0;[o; ;[I"foo;To;;0;[o; ;[I"bar;To;;0;[o; ;[I">[]= called on the result of foo;To; ;[I"dIn Ruby before 3.1.0, multiple assignment did not follow this evaluation order. With this code:;Fo;;[I"foo[0], bar.baz = a, b ;F;;o; ;[I"HVersions of Ruby before 3.1.0 would evaluate in the following order;Fo; ;;;[ o;;0;[o; ;[I"a;To;;0;[o; ;[I"b;To;;0;[o; ;[I"foo;To;;0;[o; ;[I">[]= called on the result of foo;To;;0;[o; ;[I"bar;To;;0;[o; ;[I"?baz= called on the result of bar;To; ;[I"Starting in Ruby 3.1.0, the evaluation order is now consistent with single assignment, with the left-hand side being evaluated before the right-hand side:;Fo; ;;;[ o;;0;[o; ;[I"foo;To;;0;[o; ;[I"bar;To;;0;[o; ;[I"a;To;;0;[o; ;[I"b;To;;0;[o; ;[I">[]= called on the result of foo;To;;0;[o; ;[I"?baz= called on the result of bar;To; ;[I":[{Bug #4443}[https://bugs.ruby-lang.org/issues/4443]];To;;0;[ o; ;[I"~Values in Hash literals and keyword arguments can be omitted. [{Feature #14579}[https://bugs.ruby-lang.org/issues/14579]];Fo; ;[I"For example,;Fo; ;;;[o;;0;[o; ;[I"J{x:, y:} is a syntax sugar of {x: x, y: y}.;To;;0;[o; ;[I"Pfoo(x:, y:) is a syntax sugar of foo(x: x, y: y).;To; ;[I"Constant names, local variable names, and method names are allowed as key names. Note that a reserved word is considered as a local variable or method name even if it's a pseudo variable name such as self.;Fo;;0;[o; ;[I"Non main-Ractors can get instance variables (ivars) of classes/modules if ivars refer to shareable objects. [{Feature #17592}[https://bugs.ruby-lang.org/issues/17592]];Fo;;0;[o; ;[I"A command syntax is allowed in endless method definitions, i.e., you can now write def foo = puts "Hello". Note that private def foo = puts "Hello" does not parse. [{Feature #17398}[https://bugs.ruby-lang.org/issues/17398]];FS; ; i; I"Command line options;To; ;;;[o;;0;[o; ;[I"--disable-gems is now explicitly declared as "just for debugging". Never use it in any real-world codebase. [{Feature #17684}[https://bugs.ruby-lang.org/issues/17684]];TS; ; i; I"Core classes updates;To; ;[I"8Note: We're only listing outstanding class updates.;To; ;;;[o;;0;[o; ;[I" Array;Fo; ;;;[o;;0;[o; ;[I"[Array#intersect? is added. [{Feature #15198}[https://bugs.ruby-lang.org/issues/15198]];Fo;;0;[o; ;[I" Class;Fo; ;;;[o;;0;[o; ;[I"Class#subclasses, which returns an array of classes directly inheriting from the receiver, not including singleton classes. [{Feature #18273}[https://bugs.ruby-lang.org/issues/18273]];Fo;;[I"class A; end class B < A; end class C < B; end class D < A; end A.subclasses #=> [D, B] B.subclasses #=> [C] C.subclasses #=> [] ;F;;o;;0;[o; ;[I"Enumerable;Fo; ;;;[o;;0;[o; ;[I"]Enumerable#compact is added. [{Feature #17312}[https://bugs.ruby-lang.org/issues/17312]];Fo;;0;[o; ;[I"xEnumerable#tally now accepts an optional hash to count. [{Feature #17744}[https://bugs.ruby-lang.org/issues/17744]];Fo;;0;[o; ;[I"rEnumerable#each_cons and each_slice to return a receiver. [{GH-1509}[https://github.com/ruby/ruby/pull/1509]];Fo;;[I"y[1, 2, 3].each_cons(2){} # 3.0 => nil # 3.1 => [1, 2, 3] [1, 2, 3].each_slice(2){} # 3.0 => nil # 3.1 => [1, 2, 3] ;F;;o;;0;[o; ;[I"Enumerator::Lazy;Fo; ;;;[o;;0;[o; ;[I"cEnumerator::Lazy#compact is added. [{Feature #17312}[https://bugs.ruby-lang.org/issues/17312]];Fo;;0;[o; ;[I" File;Fo; ;;;[o;;0;[o; ;[I"File.dirname now accepts an optional argument for the level to strip path components. [{Feature #12194}[https://bugs.ruby-lang.org/issues/12194]];Fo;;0;[o; ;[I"GC;Fo; ;;;[o;;0;[o; ;[I"5"GC.measure_total_time = true" enables the measurement of GC. Measurement can introduce overhead. It is enabled by default. GC.measure_total_time returns the current setting. GC.stat[:time] or GC.stat(:time) returns measured time in milli-seconds. [[{Feature #10917}[https://bugs.ruby-lang.org/issues/10917]]];Fo;;0;[o; ;[I"wGC.total_time returns measured time in nano-seconds. [[{Feature #10917}[https://bugs.ruby-lang.org/issues/10917]]];Fo;;0;[o; ;[I" Integer;Fo; ;;;[o;;0;[o; ;[I"^Integer.try_convert is added. [{Feature #15211}[https://bugs.ruby-lang.org/issues/15211]];Fo;;0;[o; ;[I" Kernel;Fo; ;;;[o;;0;[o; ;[I"Kernel#load now accepts a module as the second argument, and will load the file using the given module as the top-level module. [{Feature #6210}[https://bugs.ruby-lang.org/issues/6210]];Fo;;0;[o; ;[I" Marshal;Fo; ;;;[o;;0;[o; ;[I"Marshal.load now accepts a freeze: true option. All returned objects are frozen except for Class and Module instances. Strings are deduplicated. [{Feature #18148}[https://bugs.ruby-lang.org/issues/18148]];Fo;;0;[o; ;[I"MatchData;Fo; ;;;[o;;0;[o; ;[I"YMatchData#match is added [{Feature #18172}[https://bugs.ruby-lang.org/issues/18172]];Fo;;0;[o; ;[I"`MatchData#match_length is added [{Feature #18172}[https://bugs.ruby-lang.org/issues/18172]];Fo;;0;[o; ;[I"Method / UnboundMethod;Fo; ;;;[o;;0;[o; ;[I"Method#public?, Method#private?, Method#protected?, UnboundMethod#public?, UnboundMethod#private?, UnboundMethod#protected? have been added. [{Feature #11689}[https://bugs.ruby-lang.org/issues/11689]];Fo;;0;[o; ;[I" Module;Fo; ;;;[o;;0;[o; ;[I"Module#prepend now modifies the ancestor chain if the receiver already includes the argument. Module#prepend still does not modify the ancestor chain if the receiver has already prepended the argument. [{Bug #17423}[https://bugs.ruby-lang.org/issues/17423]];Fo;;0;[o; ;[I"1Module#private, #public, #protected, and #module_function will now return their arguments. If a single argument is given, it is returned. If no arguments are given, nil is returned. If multiple arguments are given, they are returned as an array. [{Feature #12495}[https://bugs.ruby-lang.org/issues/12495]];Fo;;0;[o; ;[I" Process;Fo; ;;;[o;;0;[o; ;[I">Process._fork is added. This is a core method for fork(2). Do not call this method directly; it is called by existing fork methods: Kernel.#fork, Process.fork, and IO.popen("-"). Application monitoring libraries can overwrite this method to hook fork events. [{Feature #17795}[https://bugs.ruby-lang.org/issues/17795]];Fo;;0;[o; ;[I" Struct;Fo; ;;;[o;;0;[o; ;[I"Passing only keyword arguments to Struct#initialize is warned. You need to use a Hash literal to set a Hash to a first member. [{Feature #16806}[https://bugs.ruby-lang.org/issues/16806]];Fo;;0;[o; ;[I"cStructClass#keyword_init? is added [{Feature #18008}[https://bugs.ruby-lang.org/issues/18008]];Fo;;0;[o; ;[I" String;Fo; ;;;[o;;0;[o; ;[I"Update Unicode version to 13.0.0 [{Feature #17750}[https://bugs.ruby-lang.org/issues/17750]] and Emoji version to 13.0 [{Feature #18029}[https://bugs.ruby-lang.org/issues/18029]];Fo;;0;[o; ;[I":String#unpack and String#unpack1 now accept an offset: keyword argument to start the unpacking after an arbitrary number of bytes have been skipped. If offset is outside of the string bounds ArgumentError is raised. [{Feature #18254}[https://bugs.ruby-lang.org/issues/18254]];Fo;;0;[o; ;[I" Thread;Fo; ;;;[o;;0;[o; ;[I"bThread#native_thread_id is added. [{Feature #17853}[https://bugs.ruby-lang.org/issues/17853]];Fo;;0;[o; ;[I"Thread::Backtrace;Fo; ;;;[o;;0;[o; ;[I"Thread::Backtrace.limit, which returns the value to limit backtrace length set by --backtrace-limit command line option, is added. [{Feature #17479}[https://bugs.ruby-lang.org/issues/17479]];Fo;;0;[o; ;[I"Thread::Queue;Fo; ;;;[o;;0;[o; ;[I"Thread::Queue.new now accepts an Enumerable of initial values. [{Feature #17327}[https://bugs.ruby-lang.org/issues/17327]];Fo;;0;[o; ;[I" Time;Fo; ;;;[o;;0;[ o; ;[I"Time.new now accepts optional in: keyword argument for the timezone, as well as Time.at and Time.now, so that is now you can omit minor arguments to Time.new. [{Feature #17485}[https://bugs.ruby-lang.org/issues/17485]];Fo;;[I"HTime.new(2021, 12, 25, in: "+07:00") #=> 2021-12-25 00:00:00 +0700 ;F;;o; ;[I"ZAt the same time, time component strings are converted to integers more strictly now.;Fo;;[I"`Time.new(2021, 12, 25, "+07:30") #=> invalid value for Integer(): "+07:30" (ArgumentError) ;F;;o; ;[I"Ruby 3.0 or earlier returned probably unexpected result 2021-12-25 07:00:00, not 2021-12-25 07:30:00 nor 2021-12-25 00:00:00 +07:30.;Fo;;0;[o; ;[I"Time#strftime supports RFC 3339 UTC for unknown offset local time, -0000, as %-z. [{Feature #17544}[https://bugs.ruby-lang.org/issues/17544]];Fo;;0;[o; ;[I"TracePoint;Fo; ;;;[o;;0;[o; ;[I"TracePoint.allow_reentry is added to allow reenter while TracePoint callback. [{Feature #15912}[https://bugs.ruby-lang.org/issues/15912]];Fo;;0;[o; ;[I"$LOAD_PATH;Fo; ;;;[o;;0;[o; ;[I"p$LOAD_PATH.resolve_feature_path does not raise. [{Feature #16043}[https://bugs.ruby-lang.org/issues/16043]];Fo;;0;[o; ;[I"Fiber Scheduler;Fo; ;;;[ o;;0;[o; ;[I"Add support for Addrinfo.getaddrinfo using address_resolve hook. [{Feature #17370}[https://bugs.ruby-lang.org/issues/17370]];Fo;;0;[o; ;[I"Introduce non-blocking Timeout.timeout using timeout_after hook. [{Feature #17470}[https://bugs.ruby-lang.org/issues/17470]];Fo;;0;[o; ;[I"Introduce new scheduler hooks io_read and io_write along with a low level IO::Buffer for zero-copy read/write. [{Feature #18020}[https://bugs.ruby-lang.org/issues/18020]];Fo;;0;[o; ;[I"IO hooks io_wait, io_read, io_write, receive the original IO object where possible. [{Bug #18003}[https://bugs.ruby-lang.org/issues/18003]];Fo;;0;[o; ;[I"bMake Monitor fiber-safe. [{Bug #17827}[https://bugs.ruby-lang.org/issues/17827]];Fo;;0;[o; ;[I"tReplace copy coroutine with pthread implementation. [{Feature #18015}[https://bugs.ruby-lang.org/issues/18015]];Fo;;0;[o; ;[I"Refinement;Fo; ;;;[o;;0;[o; ;[I"New class which represents a module created by Module#refine. include and prepend are deprecated, and import_methods is added instead. [{Bug #17429}[https://bugs.ruby-lang.org/issues/17429]];FS; ; i; I"Stdlib updates;To; ;;;[ o;;0;[o; ;[I"+The following default gem are updated.;Fo; ;;;[so;;0;[o; ;[I"RubyGems 3.3.3;Fo;;0;[o; ;[I"base64 0.1.1;Fo;;0;[o; ;[I"benchmark 0.2.0;Fo;;0;[o; ;[I"bigdecimal 3.1.1;Fo;;0;[o; ;[I"bundler 2.3.3;Fo;;0;[o; ;[I"cgi 0.3.1;Fo;;0;[o; ;[I"csv 3.2.2;Fo;;0;[o; ;[I"date 3.2.2;Fo;;0;[o; ;[I"did_you_mean 1.6.1;Fo;;0;[o; ;[I"digest 3.1.0;Fo;;0;[o; ;[I"drb 2.1.0;Fo;;0;[o; ;[I"erb 2.2.3;Fo;;0;[o; ;[I"error_highlight 0.3.0;Fo;;0;[o; ;[I"etc 1.3.0;Fo;;0;[o; ;[I"fcntl 1.0.1;Fo;;0;[o; ;[I"fiddle 1.1.0;Fo;;0;[o; ;[I"fileutils 1.6.0;Fo;;0;[o; ;[I"find 0.1.1;Fo;;0;[o; ;[I"io-console 0.5.10;Fo;;0;[o; ;[I"io-wait 0.2.1;Fo;;0;[o; ;[I"ipaddr 1.2.3;Fo;;0;[o; ;[I"irb 1.4.1;Fo;;0;[o; ;[I"json 2.6.1;Fo;;0;[o; ;[I"logger 1.5.0;Fo;;0;[o; ;[I"net-http 0.2.0;Fo;;0;[o; ;[I"net-protocol 0.1.2;Fo;;0;[o; ;[I"nkf 0.1.1;Fo;;0;[o; ;[I"open-uri 0.2.0;Fo;;0;[o; ;[I"openssl 3.0.0;Fo;;0;[o; ;[I"optparse 0.2.0;Fo;;0;[o; ;[I"ostruct 0.5.2;Fo;;0;[o; ;[I"pathname 0.2.0;Fo;;0;[o; ;[I" pp 0.3.0;Fo;;0;[o; ;[I"prettyprint 0.1.1;Fo;;0;[o; ;[I"psych 4.0.3;Fo;;0;[o; ;[I"racc 1.6.0;Fo;;0;[o; ;[I"rdoc 6.4.0;Fo;;0;[o; ;[I"readline 0.0.3;Fo;;0;[o; ;[I"readline-ext 0.1.4;Fo;;0;[o; ;[I"reline 0.3.0;Fo;;0;[o; ;[I"resolv 0.2.1;Fo;;0;[o; ;[I"rinda 0.1.1;Fo;;0;[o; ;[I"ruby2_keywords 0.0.5;Fo;;0;[o; ;[I"securerandom 0.1.1;Fo;;0;[o; ;[I"set 1.0.2;Fo;;0;[o; ;[I"stringio 3.0.1;Fo;;0;[o; ;[I"strscan 3.0.1;Fo;;0;[o; ;[I"tempfile 0.1.2;Fo;;0;[o; ;[I"time 0.2.0;Fo;;0;[o; ;[I"timeout 0.2.0;Fo;;0;[o; ;[I"tmpdir 0.1.2;Fo;;0;[o; ;[I" un 0.2.0;Fo;;0;[o; ;[I"uri 0.11.0;Fo;;0;[o; ;[I"yaml 0.2.0;Fo;;0;[o; ;[I"zlib 2.1.1;Fo;;0;[o; ;[I"RubyGems 3.3.3;Fo;;0;[o; ;[I"base64 0.1.1;Fo;;0;[o; ;[I"benchmark 0.2.0;Fo;;0;[o; ;[I"bigdecimal 3.1.1;Fo;;0;[o; ;[I"bundler 2.3.3;Fo;;0;[o; ;[I"cgi 0.3.1;Fo;;0;[o; ;[I"csv 3.2.2;Fo;;0;[o; ;[I"date 3.2.2;Fo;;0;[o; ;[I"did_you_mean 1.6.1;Fo;;0;[o; ;[I"digest 3.1.0;Fo;;0;[o; ;[I"drb 2.1.0;Fo;;0;[o; ;[I"erb 2.2.3;Fo;;0;[o; ;[I"error_highlight 0.3.0;Fo;;0;[o; ;[I"etc 1.3.0;Fo;;0;[o; ;[I"fcntl 1.0.1;Fo;;0;[o; ;[I"fiddle 1.1.0;Fo;;0;[o; ;[I"fileutils 1.6.0;Fo;;0;[o; ;[I"find 0.1.1;Fo;;0;[o; ;[I"io-console 0.5.10;Fo;;0;[o; ;[I"io-wait 0.2.1;Fo;;0;[o; ;[I"ipaddr 1.2.3;Fo;;0;[o; ;[I"irb 1.4.1;Fo;;0;[o; ;[I"json 2.6.1;Fo;;0;[o; ;[I"logger 1.5.0;Fo;;0;[o; ;[I"net-http 0.2.0;Fo;;0;[o; ;[I"net-protocol 0.1.2;Fo;;0;[o; ;[I"nkf 0.1.1;Fo;;0;[o; ;[I"open-uri 0.2.0;Fo;;0;[o; ;[I"openssl 3.0.0;Fo;;0;[o; ;[I"optparse 0.2.0;Fo;;0;[o; ;[I"ostruct 0.5.2;Fo;;0;[o; ;[I"pathname 0.2.0;Fo;;0;[o; ;[I" pp 0.3.0;Fo;;0;[o; ;[I"prettyprint 0.1.1;Fo;;0;[o; ;[I"psych 4.0.3;Fo;;0;[o; ;[I"racc 1.6.0;Fo;;0;[o; ;[I"rdoc 6.4.0;Fo;;0;[o; ;[I"readline 0.0.3;Fo;;0;[o; ;[I"readline-ext 0.1.4;Fo;;0;[o; ;[I"reline 0.3.0;Fo;;0;[o; ;[I"resolv 0.2.1;Fo;;0;[o; ;[I"rinda 0.1.1;Fo;;0;[o; ;[I"ruby2_keywords 0.0.5;Fo;;0;[o; ;[I"securerandom 0.1.1;Fo;;0;[o; ;[I"set 1.0.2;Fo;;0;[o; ;[I"stringio 3.0.1;Fo;;0;[o; ;[I"strscan 3.0.1;Fo;;0;[o; ;[I"tempfile 0.1.2;Fo;;0;[o; ;[I"time 0.2.0;Fo;;0;[o; ;[I"timeout 0.2.0;Fo;;0;[o; ;[I"tmpdir 0.1.2;Fo;;0;[o; ;[I" un 0.2.0;Fo;;0;[o; ;[I"uri 0.11.0;Fo;;0;[o; ;[I"yaml 0.2.0;Fo;;0;[o; ;[I"zlib 2.1.1;Fo;;0;[o; ;[I",The following bundled gems are updated.;Fo; ;;;[o;;0;[o; ;[I"minitest 5.15.0;Fo;;0;[o; ;[I"power_assert 2.0.1;Fo;;0;[o; ;[I"rake 13.0.6;Fo;;0;[o; ;[I"test-unit 3.5.3;Fo;;0;[o; ;[I"rexml 3.2.5;Fo;;0;[o; ;[I"rbs 2.0.0;Fo;;0;[o; ;[I"typeprof 0.21.1;Fo;;0;[o; ;[I"minitest 5.15.0;Fo;;0;[o; ;[I"power_assert 2.0.1;Fo;;0;[o; ;[I"rake 13.0.6;Fo;;0;[o; ;[I"test-unit 3.5.3;Fo;;0;[o; ;[I"rexml 3.2.5;Fo;;0;[o; ;[I"rbs 2.0.0;Fo;;0;[o; ;[I"typeprof 0.21.1;Fo;;0;[o; ;[I"5The following default gems are now bundled gems.;Fo; ;;;[o;;0;[o; ;[I"net-ftp 0.1.3;Fo;;0;[o; ;[I"net-imap 0.2.2;Fo;;0;[o; ;[I"net-pop 0.1.1;Fo;;0;[o; ;[I"net-smtp 0.3.1;Fo;;0;[o; ;[I"matrix 0.4.2;Fo;;0;[o; ;[I"prime 0.1.2;Fo;;0;[o; ;[I"debug 1.4.0;Fo;;0;[o; ;[I"net-ftp 0.1.3;Fo;;0;[o; ;[I"net-imap 0.2.2;Fo;;0;[o; ;[I"net-pop 0.1.1;Fo;;0;[o; ;[I"net-smtp 0.3.1;Fo;;0;[o; ;[I"matrix 0.4.2;Fo;;0;[o; ;[I"prime 0.1.2;Fo;;0;[o; ;[I"debug 1.4.0;Fo;;0;[o; ;[I"HThe following gems has been removed from the Ruby standard library.;Fo; ;;;[ o;;0;[o; ;[I"dbm;Fo;;0;[o; ;[I" gdbm;Fo;;0;[o; ;[I" tracer;Fo;;0;[o; ;[I"dbm;Fo;;0;[o; ;[I" gdbm;Fo;;0;[o; ;[I" tracer;Fo;;0;[o; ;[I"Coverage measurement now supports suspension. You can use Coverage.suspend to stop the measurement temporarily, and Coverage.resume to restart it. See [{Feature #18176}[https://bugs.ruby-lang.org/issues/18176]] in detail.;Fo;;0;[o; ;[I"Random::Formatter is moved to random/formatter.rb, so that you can use Random#hex, Random#base64, and so on without SecureRandom. [{Feature #18190}[https://bugs.ruby-lang.org/issues/18190]];FS; ; i; I"Compatibility issues;To; ;[I"'Note: Excluding feature bug fixes.;To; ;;;[o;;0;[o; ;[I"rb_io_wait_readable, rb_io_wait_writable and rb_wait_for_single_fd are deprecated in favour of rb_io_maybe_wait_readable, rb_io_maybe_wait_writable and rb_io_maybe_wait respectively. rb_thread_wait_fd and rb_thread_fd_writable are deprecated. [{Bug #18003}[https://bugs.ruby-lang.org/issues/18003]];TS; ; i; I" Stdlib compatibility issues;To; ;;;[ o;;0;[o; ;[I"ERB#initialize warns safe_level and later arguments even without -w. [{Feature #14256}[https://bugs.ruby-lang.org/issues/14256]];To;;0;[o; ;[I"Flib/debug.rb is replaced with debug.gem;To;;0;[o; ;[I"Kernel#pp in lib/pp.rb uses the width of IO#winsize by default. This means that the output width is automatically changed depending on your terminal size. [{Feature #12913}[https://bugs.ruby-lang.org/issues/12913]];To;;0;[o; ;[I"Psych 4.0 changes Psych.load as safe_load by the default. You may need to use Psych 3.3.2 for migrating to this behavior. [{Bug #17866}[https://bugs.ruby-lang.org/issues/17866]];FS; ; i; I"C API updates;To; ;;;[o;;0;[o; ;[I"DDocumented. [{GH-4815}[https://github.com/ruby/ruby/pull/4815]];Fo;;0;[o; ;[I"rb_gc_force_recycle is deprecated and has been changed to a no-op. [{Feature #18290}[https://bugs.ruby-lang.org/issues/18290]];TS; ; i; I" Implementation improvements;To; ;;;[ o;;0;[o; ;[I"~Inline cache mechanism is introduced for reading class variables. [{Feature #17763}[https://bugs.ruby-lang.org/issues/17763]];Fo;;0;[o; ;[I"instance_eval and instance_exec now only allocate a singleton class when required, avoiding extra objects and improving performance. [{GH-5146}[https://github.com/ruby/ruby/pull/5146]];To;;0;[o; ;[I"vThe performance of Struct accessors is improved. [{GH-5131}[https://github.com/ruby/ruby/pull/5131]];Fo;;0;[o; ;[I"mandatory_only? builtin special form to improve performance on builtin methods. [{GH-5112}[https://github.com/ruby/ruby/pull/5112]];To;;0;[o; ;[I"6Experimental feature Variable Width Allocation in the garbage collector. This feature is turned off by default and can be enabled by compiling Ruby with flag USE_RVARGC=1 set. [{Feature #18045}[https://bugs.ruby-lang.org/issues/18045]] [{Feature #18239}[https://bugs.ruby-lang.org/issues/18239]];FS; ; i; I"JIT;To; ;;;[o;;0;[o; ;[I"Rename Ruby 3.0's --jit to --mjit, and alias --jit to --yjit on non-Windows x86-64 platforms and to --mjit on others.;TS; ; i; I" MJIT;To; ;;;[ o;;0;[o; ;[I"LThe default --mjit-max-cache is changed from 100 to 10000.;Fo;;0;[o; ;[I"WJIT-ed code is no longer cancelled when a TracePoint for class events is enabled.;Fo;;0;[o; ;[I"\The JIT compiler no longer skips compilation of methods longer than 1000 instructions.;Fo;;0;[o; ;[I"--mjit-verbose and --mjit-warning output "JIT cancel" when JIT-ed code is disabled because TracePoint or GC.compact is used.;TS; ; i; I"3YJIT: New experimental in-process JIT compiler;To; ;[I"wNew JIT compiler available as an experimental feature. [{Feature #18229}[https://bugs.ruby-lang.org/issues/18229]];To; ;[I"pSee {this blog post}[https://shopify.engineering/yjit-just-in-time-compiler-cruby] introducing the project.;To; ;;;[ o;;0;[o; ;[I"UDisabled by default, use --yjit command-line option to enable YJIT.;Fo;;0;[o; ;[I"yPerformance improvements on benchmarks based on real-world software, up to 22% on railsbench, 39% on liquid-render.;Fo;;0;[o; ;[I"Fast warm-up times.;Fo;;0;[o; ;[I"3Limited to Unix-like x86-64 platforms for now.;FS; ; i; I"Static analysis;TS; ; i; I"RBS;To; ;;;[ o;;0;[o; ;[I"ZGenerics type parameters can be bounded ({PR}[https://github.com/ruby/rbs/pull/844]).;Fo;;[I"# `T` must be compatible with the `_Output` interface. # `PrettyPrint[String]` is ok, but `PrettyPrint[Integer]` is a type error. class PrettyPrint[T < _Output] interface _Output def <<: (String) -> void end attr_reader output: T def initialize: (T output) -> void end ;F;:rbso;;0;[o; ;[I"NType aliases can be generic. ({PR}[https://github.com/ruby/rbs/pull/823]);Fo;;[I"# Defines a generic type `list`. type list[T] = [ T, list[T] ] | nil type str_list = list[String] type int_list = list[Integer] ;F;;o;;0;[o; ;[I"{rbs collection}[https://github.com/ruby/rbs/blob/cdd6a3a896001e25bd1feda3eab7f470bae935c1/docs/collection.md] has been introduced to manage gems’ RBSs.;To;;0;[o; ;[I"QMany signatures for built-in and standard libraries have been added/updated.;Fo;;0;[o; ;[I"AIt includes many bug fixes and performance improvements too.;Fo; ;[I"See the {CHANGELOG.md}[https://github.com/ruby/rbs/blob/cdd6a3a896001e25bd1feda3eab7f470bae935c1/CHANGELOG.md] for more information.;TS; ; i; I" TypeProf;To; ;;;[o;;0;[o; ;[I"{Experimental IDE support}[https://github.com/ruby/typeprof/blob/ca15c5dae9bd62668463165f8409bd66ce7de223/doc/ide.md] has been implemented.;To;;0;[o; ;[I"BMany bug fixes and performance improvements since Ruby 3.0.0.;TS; ; i; I" Debugger;To; ;;;[o;;0;[o; ;[I"A new debugger {debug.gem}[https://github.com/ruby/debug] is bundled. debug.gem is a fast debugger implementation, and it provides many features like remote debugging, colorful REPL, IDE (VSCode) integration, and more. It replaces lib/debug.rb standard library.;Fo;;0;[o; ;[I"|rdbg command is also installed into bin/ directory to start and control debugging execution.;TS; ; i; I"error_highlight;To; ;[I"wA built-in gem called error_highlight has been introduced. It shows fine-grained error locations in the backtrace.;To; ;[I"9Example: title = json[:article][:title];To; ;[I"+If json is nil, it shows:;To;;[I"$ ruby test.rb test.rb:2:in `
': undefined method `[]' for nil:NilClass (NoMethodError) title = json[:article][:title] ^^^^^^^^^^ ;T;: consoleo; ;[I":If json[:article] returns nil, it shows:;To;;[I"$ ruby test.rb test.rb:2:in `
': undefined method `[]' for nil:NilClass (NoMethodError) title = json[:article][:title] ^^^^^^^^ ;T;;o; ;[I"This feature is enabled by default. You can disable it by using a command-line option --disable-error_highlight. See {the repository}[https://github.com/ruby/error_highlight] in detail.;TS; ; i; I"*IRB Autocomplete and Document Display;To; ;[I"The IRB now has an autocomplete feature, where you can just type in the code, and the completion candidates dialog will appear. You can use Tab and Shift+Tab to move up and down.;To; ;[I"If documents are installed when you select a completion candidate, the documentation dialog will appear next to the completion candidates dialog, showing part of the content. You can read the full document by pressing Alt+d.;TS; ; i; I"Miscellaneous changes;To; ;;;[ o;;0;[o; ;[I"lib/objspace/trace.rb is added, which is a tool for tracing the object allocation. Just by requiring this file, tracing is started _immediately_. Just by Kernel#p, you can investigate where an object was created. Note that just requiring this file brings a large performance overhead. This is only for debugging purposes. Do not use this in production. [{Feature #17762}[https://bugs.ruby-lang.org/issues/17762]];Fo;;0;[o; ;[I"Now exceptions raised in finalizers will be printed to STDERR, unless $VERBOSE is nil. [{Feature #17798}[https://bugs.ruby-lang.org/issues/17798]];Fo;;0;[o; ;[I"yruby -run -e httpd displays URLs to access. [{Feature #17847}[https://bugs.ruby-lang.org/issues/17847]];To;;0;[o; ;[I"oAdd ruby -run -e colorize to colorize Ruby code using IRB::Color.colorize_code.;F: @file@:0@omit_headings_from_table_of_contents_below0