ÿØÿà 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-2.4.0:ETcRDoc::Parser::Simpleo:RDoc::Markup::Document: @parts[(S:RDoc::Markup::Heading: leveli: textI"NEWS for Ruby 2.4.0;To:RDoc::Markup::BlankLineo:RDoc::Markup::Paragraph;[I"JThis document is a list of user visible feature changes made between ;TI"#releases except for bug fixes.;T@ o; ;[ I"DNote that each entry is kept so brief that no reason behind or ;TI"Ireference information is supplied with. For a full list of changes ;TI"Hwith all sufficient information, see the ChangeLog file or Redmine ;TI"M(e.g. https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER);T@ S; ; i; I"$Changes since the 2.3.0 release;T@ S; ; i; I"Language changes;T@ o:RDoc::Markup::List: @type: BULLET: @items[ o:RDoc::Markup::ListItem: @label0;[o; ;[I"TMultiple assignment in conditional expression is now allowed. [Feature #10617];T@ o;;0;[o; ;[I"IRefinements is enabled at method by Symbol#to_proc. [Feature #9451];T@ o;;0;[o; ;[I"XRefinements is enabled with Kernel#send and BasicObject#__send__. [Feature #11476];T@ o;;0;[o; ;[I"JRescue modifier now applicable to method arguments. [Feature #12686];T@ o;;0;[o; ;[I"5Toplevel return is now allowed. [Feature #4840];T@ S; ; i; I"1Core classes updates (outstanding ones only);T@ o;;;;[o;;0;[o; ;[I" Array;T@ o;;;;[ o;;0;[ o; ;[I""Array#concat [Feature #12333];T@ o; ;[I""Now takes multiple arguments.;T@ o;;0;[ o; ;[I"/Array#max and Array#min. [Feature #12172];T@ o; ;[I" no longer raise an exception if coercion fails. [Bug #12799];T@ o;;0;[o; ;[I"IRB;T@ o;;;;[o;;0;[o; ;[I"DBinding#irb: Start a REPL session like `binding.pry` at r56624.;T@ o;;0;[o; ;[I" Logger;T@ o;;;;[o;;0;[o; ;[I"Add a new optional argument pathname to Net::FTP#status. ;TI"8Contributed by soleboxy. [GH-1478] [Feature #12965];T@ o;;0;[o; ;[I" OpenSSL;T@ o;;;;[o;;0;[o; ;[ I"KIncludes Ruby/OpenSSL 2.0. OpenSSL has been extracted as a Gem and is ;TI"Omaintained at a separate repository now: https://github.com/ruby/openssl. ;TI";It still remains as a 'default gem'. [Feature #9612] ;TI"?Refer to ext/openssl/History.md for the full release note.;T@ o;;0;[o; ;[I" optparse;T@ o;;;;[o;;0;[o; ;[I")Add an into option. [Feature #11191];T@ o;;0;[o; ;[I" pathname;T@ o;;;;[o;;0;[o; ;[I"1New method: Pathname#empty? [Feature #12596];T@ o;;0;[o; ;[I" Readline;T@ o;;;;[o;;0;[o; ;[I"ZReadline.quoting_detection_proc and Readline.quoting_detection_proc= [Feature #12659];T@ o;;0;[o; ;[I" REXML;T@ o;;;;[o;;0;[o; ;[I"DREXML::Element#[]: If String or Symbol is specified, attribute ;TI"Bvalue is returned. Otherwise, Nth child is returned. This is ;TI" backward compatible change.;T@ o;;0;[o; ;[I"set;T@ o;;;;[o;;0;[o; ;[I"XNew methods: Set#compare_by_identity and Set#compare_by_identity?. [Feature #12210];T@ o;;0;[o; ;[I" WEBrick;T@ o;;;;[o;;0;[o; ;[I".Don't allow , as a separator [Bug #12791];T@ S; ; i; I"7Compatibility issues (excluding feature bug fixes);T@ o;;;;[ o;;0;[ o; ;[I"DArray#sum and Enumerable#sum are implemented. [Feature #12217];T@ o; ;[ I"RRuby itself has no compatibility problem because Ruby didn't have sum method ;TI"!for arrays before Ruby 2.4. ;TI"NHowever many third party gems, activesupport, facets, simple_stats, etc, ;TI"Jdefines sum method. These implementations are mostly compatible but ;TI"#there are subtle differences. ;TI"KRuby's sum method should be mostly compatible but it is impossible to ;TI".be perfectly compatible with all of them.;T@ o;;0;[ o; ;[I"AFixnum and Bignum are unified into Integer [Feature #12005];T@ o; ;[I"/Fixnum class and Bignum class is removed. ;TI"EInteger class is changed from abstract class to concrete class. ;TI"HFor example, 0 is an instance of Integer: 0.class returns Integer. ;TI":The constants Fixnum and Bignum is bound to Integer. ;TI"=So obj.kind_of?(Fixnum) works as obj.kind_of?(Integer). ;TI"LAt C-level, Fixnum object and Bignum object should be distinguished by ;TI"1FIXNUM_P(obj) and RB_TYPE_P(obj, T_BIGNUM). ;TI"MRUBY_INTEGER_UNIFICATION can be used to detect this feature at C-level. ;TI"J0.class == Integer can be used to detect this feature at Ruby-level. ;TI"DThe C-level constants, rb_cFixnum and rb_cBignum, are removed. ;TI"(They can cause compilation failure.;T@ o;;0;[ o; ;[I"NString/Symbol#upcase/downcase/swapcase/capitalize(!) now work for all of ;TI"2Unicode, not only for ASCII. [Feature #10085];T@ o; ;[ I"MNo change is needed if the data is in ASCII anyway or if the limitation ;TI"Tto ASCII was only tolerated while waiting for a more extensive implementation. ;TI"NA change (using the :ascii option) is needed in cases where Unicode data ;TI"Fis processed, but the operation has to be limited to ASCII only. ;TI"?A good example of this are internationalized domain names.;T@ o;;0;[ o; ;[I"TRUE / FALSE / NIL;T@ o; ;[I"9These constants are now obsoleted. [Feature #12574] ;TI"*Use true / false / nil resp. instead.;T@ S; ; i; I">Stdlib compatibility issues (excluding feature bug fixes);T@ o;;;;[o;;0;[o; ;[I" DateTime;T@ o;;;;[o;;0;[o; ;[I";DateTime#to_time now preserves timezone. [Bug #12189];T@ o;;0;[o; ;[I" Psych;T@ o;;;;[o;;0;[o; ;[I"Update to Psych 2.2.2;T@ o;;0;[o; ;[I" RDoc;T@ o;;;;[o;;0;[o; ;[I"Update to RDoc 5.0.0;T@ o;;0;[o; ;[I" RubyGems;T@ o;;;;[o;;0;[o; ;[I"Update to RubyGems 2.6.8;T@ o;;0;[o; ;[I"shellwords;T@ o;;;;[o;;0;[o; ;[I"GShellwords.shellwords (shellsplit) treats the backslash as escape ;TI"Fcharacter only when followed by one of the following characters: ;TI"#$ ` " \ [Bug #10055];T@ o;;0;[o; ;[I" Time;T@ o;;;;[o;;0;[o; ;[I"7Time#to_time now preserves timezone. [Bug #12271];T@ o;;0;[o; ;[I" thread;T@ o;;;;[o;;0;[o; ;[I"Kthe extension library is removed. Till 2.0 it was a pure ruby script ;TI"O"thread.rb", which has precedence over "thread.so", and has been provided ;TI"#in $LOADED_FEATURES since 2.1.;T@ o;;0;[o; ;[I"Tk;T@ o;;;;[o;;0;[ o; ;[I"0Tk is removed from stdlib. [Feature #8539];T@ o; ;[I"4https://github.com/ruby/tk is the new upstream.;T@ o;;0;[o; ;[I" XMLRPC;T@ o;;;;[o;;0;[ o; ;[I"YXMLRPC is removed from stdlib, and bundled as gem. [Feature #12160][ruby-core:74239];T@ o; ;[I"8https://github.com/ruby/xmlrpc is the new upstream.;T@ o;;0;[o; ;[I" Zlib;T@ o;;;;[o;;0;[o; ;[I"/Zlib.gzip and Zlib.gunzip [Feature #13020];T@ S; ; i; I"C API updates;T@ o;;;;[o;;0;[o; ;[I">ruby_show_version() will no longer exits the process, if ;TI"JRUBY_SHOW_COPYRIGHT_TO_DIE is set to 0. This will be the default in ;TI"the future.;T@ o;;0;[o; ;[I"1rb_gc_adjust_memory_usage() [Feature #12690];T@ S; ; i; I"Supported platform changes;T@ o;;;;[o;;0;[o; ;[I"'FreeBSD < 4 is no longer supported;T@ S; ; i; I" Implementation improvements;T@ o;;;;[ o;;0;[o; ;[ I"DIn some condition, `[x, y].max` and `[x, y].min` are optimized ;TI"Iso that a temporal array is not created. The concrete condition is ;TI"Ian implementation detail: currently, the array literal must have no ;TI"Ksplat, must have at least one expression but literal, the length must ;TI"Mbe <= 0x100, and Array#max and min must not be redefined. It will work ;TI"Kin most casual and real-life use case where it is written with intent ;TI"to `Math.max(x, y)`.;T@ o;;0;[o; ;[I"XThread deadlock detection now shows their backtrace and dependency. [Feature #8214];T@ o;;0;[o; ;[I"Jst_table (st.c) internal data structure is improved. [Feature #12142];T@ o;;0;[o; ;[I"8Rational is extensively optimized. [Feature #12484];T@ S; ; i; I"Miscellaneous changes;T@ o;;;;[o;;0;[o; ;[I".ChangeLog is removed from the repository.;T@ o; ;[ I"HIt is generated from commit messages in Subversion by `make dist`. ;TI"GAlso note that now people should follow Git style commit message. ;TI"EThe template is written at {Short (50 chars or less) summary of ;TI"Echanges}[https://git-scm.com/book/ch5-2.html]. [Feature #12283];T: @file@:0@omit_headings_from_table_of_contents_below0