ÿØÿà JFIF ÿÛ „ ( %!1!%)+//.383,7(-.+
-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ ¥2" ÿÄ ÿÄ J ! 1AQ"aq2‘#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ÿ ‘ñ(ßwpŽ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"aq2‘#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ÿ ‘ñ(ßwpŽ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"aq2‘#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ÿ ‘ñ(ßwpŽ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"aq2‘#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ÿ ‘ñ(ßwpŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
?>
.........................................
.............................................................................
????????????????????????????????????
????????????????????????????????????
U:RDoc::TopLevel[ i I"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::BlankLine o: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