曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.かつては雑草やヨモギと共に雨や露を分かち合っていたが、今では松やヒノキと共に霜や雪に耐えている。曾与蒿藜同雨露,Once sharing rain and dew with weeds and wormwood, now enduring frost and snow with pines and cypresses.终随松柏到冰霜.曾与蒿藜同雨露한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.,终随松柏到冰霜.譖セ荳手珍阯懷酔髮ィ髴イ�檎サ磯囂譚セ譟丞芦蜀ー髴�曾与蒿藜同雨露,鏇句笌钂胯棞鍚岄洦闇诧紝缁堥殢鏉炬煆鍒板啺闇�终随松柏到冰霜.曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.曾与蒿藜同雨露,终随松柏到冰霜.
U:RDoc::TopLevel[ i I"NEWS-2.6.0:EFcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[#S:RDoc::Markup::Heading:
leveli: textI"NEWS for Ruby 2.6.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"NNote that each entry is kept so brief that no reason behind or reference ;TI"Hinformation is supplied with. For a full list of changes with all ;TI"?sufficient information, see the ChangeLog file or Redmine ;TI"M(e.g. <tt>https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER</tt>);T@
S; ;
i;I"$Changes since the 2.5.0 release;T@
S; ;
i;I"Language changes;T@
o:RDoc::Markup::List:
@type:BULLET:@items[o:RDoc::Markup::ListItem:@label0;[o;
;[I"a<code>$SAFE</code> now is a process global state and can be set to 0 again. [Feature #14250];T@
o;;0;[o;
;[I"?Refinements take place at block passing. [Feature #14223];T@
o;;0;[o;
;[I"DRefinements take place at Kernel#public_send. [Feature #15326];T@
o;;0;[o;
;[I"DRefinements take place at Kernel#respond_to?. [Feature #15327];T@
o;;0;[o;
;[I"X+else+ without +rescue+ now causes a syntax error. [EXPERIMENTAL] [Feature #14606];T@
o;;0;[o;
;[I"OConstant names may start with a non-ASCII capital letter. [Feature #13770];T@
o;;0;[
o;
;[I"JEndless ranges are introduced. You can use a Range that has no end, ;TI"Rlike <code>(0..)</code> (or similarly <code>(0...)</code>). [Feature #12912];T@
o;
;[I"+The following shows typical use cases:;T@
o:RDoc::Markup::Verbatim;[I"Eary[1..] # identical to ary[1..-1]
;TI"H(1...).each {|index| block } # infinite loop from index 1
;TI"Hary.zip(1..) {|elem, index| block } # ary.each.with_index(1) { }
;T:@format0o;;0;[o;
;[I"DNon-Symbol keys in a keyword arguments hash cause an exception.;T@
o;;0;[
o;
;[I"OThe "shadowing outer local variable" warning is removed. [Feature #12490];T@
o;
;[I"5You can now write the following without warning:;T@
o;;[I",user = users.find {|user| cond(user) }
;T;0o;;0;[o;
;[I"OPrint +cause+ of the exception if the exception is not caught and printed ;TI"6its backtraces and error message. [Feature #8257];T@
o;;0;[o;
;[I"8The flip-flop syntax is deprecated. [Feature #5400];T@
S; ;
i;I"1Core classes updates (outstanding ones only);T@
o;;: NOTE;[$o;;[I"
Array;T;[o;;;;[o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"OAdded Array#union and Array#difference instance methods. [Feature #14097];T@
o;;[I"Modified method;T;[o;;;;[o;;0;[o;
;[I"`Array#to_h now accepts a block that maps elements to new key/value pairs. [Feature #15143];T@
o;;[I"Aliased methods;T;[o;;;;[o;;0;[o;
;[I"CArray#filter is a new alias for Array#select. [Feature #13784];To;;0;[o;
;[I"EArray#filter! is a new alias for Array#select!. [Feature #13784];T@
o;;[I"Binding;T;[o;;;;[o;;[I"New method;T;[o;;;;[o;;0;[ o;
;[I"5Added Binding#source_location. [Feature #14230];T@
o;
;[I"IThis method returns the source location of the binding, a 2-element ;TI"?array of <code>__FILE__</code> and <code>__LINE__</code>. ;TI"?Traditionally, the same information could be retrieved by ;TI"D<code>eval("[__FILE__, __LINE__]", binding)</code>, but we are ;TI"Bplanning to change this behavior so that Kernel#eval ignores ;TI"Gbinding's source location [Bug #4352]. So, users should use this ;TI"4newly-introduced method instead of Kernel#eval.;T@
o;;[I"Dir;T;[o;;;;[o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"MAdded Dir#each_child and Dir#children instance methods. [Feature #13969];T@
o;;[I"Enumerable;T;[o;;;;[o;;[I"New method;T;[o;;;;[o;;0;[o;
;[I"JEnumerable#chain returns an enumerator object that iterates over the ;TI">elements of the receiver and then those of each argument ;TI"#in sequence. [Feature #15144];T@
o;;[I"Modified method;T;[o;;;;[o;;0;[o;
;[I"eEnumerable#to_h now accepts a block that maps elements to new key/value pairs. [Feature #15143];T@
o;;[I"Aliased method;T;[o;;;;[o;;0;[o;
;[I"MEnumerable#filter is a new alias for Enumerable#select. [Feature #13784];T@
o;;[I"#Enumerator::ArithmeticSequence;T;[o;;;;[o;;0;[o;
;[ I"MThis is a new class to represent a generator of an arithmetic sequence, ;TI"Nthat is a number sequence defined by a common difference. It can be used ;TI"Hfor representing what is similar to Python's slice. You can get an ;TI"=instance of this class from Numeric#step and Range#step.;T@
o;;[I"Enumerator::Chain;T;[o;;;;[o;;0;[o;
;[I"MThis is a new class to represent a chain of enumerables that works as a ;TI"Jsingle enumerator, generated by such methods as Enumerable#chain and ;TI"Enumerator#+.;T@
o;;[I"Enumerator::Lazy;T;[o;;;;[o;;[I"Aliased method;T;[o;;;;[o;;0;[o;
;[I"0Enumerator::Lazy#filter is a new alias for ;TI"/Enumerator::Lazy#select. [Feature #13784];T@
o;;[I"Enumerator;T;[o;;;;[o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"FEnumerator#+ returns an enumerator object that iterates over the ;TI"Telements of the receiver and then those of the other operand. [Feature #15144];T@
o;;[I"ENV;T;[o;;;;[o;;[I"Modified method;T;[o;;;;[o;;0;[o;
;[I"fENV.to_h now accepts a block that maps names and values to new keys and values. [Feature #15143];T@
o;;[I"Exception;T;[o;;;;[o;;[I"New options;T;[o;;;;[o;;0;[o;
;[I"<Exception#full_message takes +:highlight+ and +:order+ ;TI"options. [Bug #14324];T@
o;;[I" Hash;T;[o;;;;[o;;[I"Modified methods;T;[o;;;;[o;;0;[o;
;[I"BHash#merge, Hash#merge!, and Hash#update now accept multiple ;TI"!arguments. [Feature #15111];T@
o;;0;[o;
;[I"fHash#to_h now accepts a block that maps keys and values to new keys and values. [Feature #15143];T@
o;;[I"Aliased methods;T;[o;;;;[o;;0;[o;
;[I"BHash#filter is a new alias for Hash#select. [Feature #13784];T@
o;;0;[o;
;[I"CHash#filter! is a new alias for Hash#select!. [Feature #13784];T@
o;;[I"IO;T;[o;;;;[o;;[I"New option;T;[o;;;;[o;;0;[o;
;[I"KAdded new mode character <code>'x'</code> to open files for exclusive ;TI"access. [Feature #11258];T@
o;;[I"Kernel;T;[o;;;;[o;;[I"Aliased method;T;[o;;;;[o;;0;[o;
;[I"GKernel#then is a new alias for Kernel#yield_self. [Feature #14594];T@
o;;[I"New options;T;[o;;;;[o;;0;[o;
;[I"7Kernel#Complex, Kernel#Float, Kernel#Integer, and ;TI"GKernel#Rational take an +:exception+ option to specify the way of ;TI"&error handling. [Feature #12732];T@
o;;0;[o;
;[I"FKernel#system takes an +:exception+ option to raise an exception ;TI""on failure. [Feature #14386];T@
o;;[I"Incompatible changes;T;[o;;;;[o;;0;[o;
;[ I"NKernel#system and Kernel#exec do not close non-standard file descriptors ;TI"G(the default of the +:close_others+ option is changed to +false+, ;TI">but we still set the +FD_CLOEXEC+ flag on descriptors we ;TI"create). [Misc #14907];T@
o;;[I"
KeyError;T;[o;;;;[o;;[I"New options;T;[o;;;;[o;;0;[o;
;[I"MKeyError.new accepts +:receiver+ and +:key+ options to set receiver and ;TI"(key in Ruby code. [Feature #14313];T@
o;;[I"Method;T;[o;;;;[o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"IAdded Method#<< and Method#>> for Proc composition. [Feature #6284];T@
o;;[I"Module;T;[o;;;;[o;;[I"Modified methods;T;[o;;;;[o;;0;[o;
;[ I"AModule#method_defined?, Module#private_method_defined?, and ;TI"<Module#protected_method_defined? now accept the second ;TI"Kparameter as optional. If it is +true+ (the default value), it checks ;TI"Pancestor modules/classes, or checks only the class itself. [Feature #14944];T@
o;;[I"NameError;T;[o;;;;[o;;[I"New option;T;[o;;;;[o;;0;[o;
;[I"HNameError.new accepts a +:receiver+ option to set receiver in Ruby ;TI"code. [Feature #14313];T@
o;;[I"
NilClass;T;[o;;;;[o;;[I"New method;T;[o;;;;[o;;0;[o;
;[I">NilClass#=~ is added for compatibility. [Feature #15231];T@
o;;[I"NoMethodError;T;[o;;;;[o;;[I"New option;T;[o;;;;[o;;0;[o;
;[I"LNoMethodError.new accepts a +:receiver+ option to set receiver in Ruby ;TI"code. [Feature #14313];T@
o;;[I"Numeric;T;[o;;;;[o;;[I"Incompatible changes;T;[o;;;;[o;;0;[o;
;[I"PNumeric#step now returns an instance of the Enumerator::ArithmeticSequence ;TI"3class rather than one of the Enumerator class.;T@
o;;[I"OpenStruct;T;[o;;;;[o;;[I"Modified method;T;[o;;;;[o;;0;[o;
;[I"lOpenStruct#to_h now accepts a block that maps keys and values to new keys and values. [Feature #15143];T@
o;;[I" Proc;T;[o;;;;[o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"EAdded Proc#<< and Proc#>> for Proc composition. [Feature #6284];T@
o;;[I"Incompatible changes;T;[o;;;;[o;;0;[o;
;[I"LProc#call doesn't change <code>$SAFE</code> any more. [Feature #14250];T@
o;;[I"Random;T;[o;;;;[o;;[I"New method;T;[o;;;;[o;;0;[o;
;[I")Added Random.bytes. [Feature #4938];T@
o;;[I"
Range;T;[o;;;;[o;;[I"New method;T;[o;;;;[o;;0;[o;
;[I"5Added Range#% instance method. [Feature #14697];T@
o;;[I"Incompatible changes;T;[o;;;;[o;;0;[o;
;[I"YRange#=== now uses the +#cover?+ instead of the +#include?+ method. [Feature #14575];To;;0;[o;
;[I">Range#cover? now accepts a Range object. [Feature #14473];To;;0;[o;
;[I"NRange#step now returns an instance of the Enumerator::ArithmeticSequence ;TI"3class rather than one of the Enumerator class.;T@
o;;[I"Regexp/String;T;[o;;;;[o;;0;[ o;
;[I"CUpdate Unicode version from 10.0.0 to 11.0.0. [Feature #14802];T@
o;
;[I"FThis includes a rewrite of the grapheme cluster (/\X/) algorithm ;TI"Aand special-casing for Georgian MTAVRULI on String#downcase.;T@
o;;0;[o;
;[I"=Update Emoji version from 5.0 to 11.0.0 [Feature #14802];T@
o;;[I"RubyVM::AbstractSyntaxTree;T;[o;;;;[o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"LRubyVM::AbstractSyntaxTree.parse parses a given string and returns AST ;TI"nodes. [experimental];T@
o;;0;[o;
;[I"ORubyVM::AbstractSyntaxTree.parse_file parses a given file and returns AST ;TI"nodes. [experimental];T@
o;;0;[o;
;[I"JRubyVM::AbstractSyntaxTree.of returns AST nodes of the given proc or ;TI"method. [experimental];T@
o;;[I"RubyVM;T;[o;;;;[o;;[I"New method;T;[o;;;;[o;;0;[o;
;[I"LRubyVM.resolve_feature_path identifies the file that will be loaded by ;TI"8"require(feature)". [experimental] [Feature #15230];T@
o;;[I"String;T;[o;;;;[o;;0;[o;
;[I"5String#crypt is now deprecated. [Feature #14915];T@
o;;;;[o;;[I"New features;T;[o;;;;[o;;0;[o;
;[I"NString#split yields each substring to the block if given. [Feature #4780];T@
o;;[I"Struct;T;[o;;;;[o;;[I"Modified method;T;[o;;;;[o;;0;[o;
;[I"hStruct#to_h now accepts a block that maps keys and values to new keys and values. [Feature #15143];T@
o;;[I"Aliased method;T;[o;;;;[o;;0;[o;
;[I"EStruct#filter is a new alias for Struct#select. [Feature #13784];T@
o;;[I" Time;T;[o;;;;[o;;[I"New features;T;[o;;;;[o;;0;[o;
;[I"DTime.new and Time#getlocal accept a timezone object as well as ;TI"Fa UTC offset string. Time#+, Time#-, and Time#succ also preserve ;TI"$the timezone. [Feature #14850];T@
o;;[I"TracePoint;T;[o;;;;[o;;[I"New features;T;[o;;;;[o;;0;[o;
;[I";"script_compiled" event is supported. [Feature #15287];T@
o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"+TracePoint#parameters [Feature #14694];T@
o;;0;[o;
;[I"5TracePoint#instruction_sequence [Feature #15287];T@
o;;0;[o;
;[I",TracePoint#eval_script [Feature #15287];T@
o;;[I"Modified method;T;[o;;;;[o;;0;[o;
;[I":TracePoint#enable accepts new keywords "target:" and ;TI"&"target_line:". [Feature #15289];T@
S; ;
i;I"+Stdlib updates (outstanding ones only);T@
o;;;;[o;;[I"BigDecimal;T;[o;
;[I"KUpdate to version 1.4.0. This version includes several compatibility ;TI"@issues, see Compatibility issues section below for details.;T@
o;;;;[o;;[I"Modified method;T;[o;;;;[o;;0;[o;
;[I"JBigDecimal() accepts the new keyword "exception:" similar to Float().;T@
o;;[I"3Note for the differences among recent versions;T;[o;
;[I"RYou should want to know the differences among recent versions of bigdecimal. ;TI"QPlease select the suitable version of bigdecimal according to the following ;TI"information.;T@
o;;;;[o;;0;[o;
;[I"M1.3.5 has BigDecimal.new without "exception:" keyword. You can see the ;TI"Ideprecation warning of BigDecimal.new when you specify "-w" option. ;TI"HBigDecimal(), BigDecimal.new, and Object#to_d methods are the same.;T@
o;;0;[o;
;[I"M1.4.0 has BigDecimal.new with "exception:" keyword. You always see the ;TI"Mdeprecation warning of BigDecimal.new. Object#to_d method is different ;TI"*from BigDecimal() and BigDecimal.new.;T@
o;;0;[o;
;[I"K2.0.0 will be released soon after releasing Ruby 2.6.0. This version ;TI"-will not have the BigDecimal.new method.;T@
o;;[I"Bundler;T;[o;;;;[o;;0;[o;
;[I"6Add Bundler to Standard Library. [Feature #12733];T@
o;;0;[o;
;[I"+Use 1.17.2, the latest stable version.;T@
o;;[I"
Coverage;T;[
o;
;[I"5A oneshot_lines mode is added. [Feature #15022];T@
o;
;[ I"MThis mode checks "whether each line was executed at least once or not", ;TI"9instead of "how many times each line was executed". ;TI"GA hook for each line is fired at most once, and after it is fired ;TI"@the hook flag is removed, i.e., it runs with zero overhead.;T@
o;;;;[o;;[I"New options;T;[o;;;;[o;;0;[o;
;[I"=Add +:oneshot_lines+ keyword argument to Coverage.start.;T@
o;;0;[o;
;[I"DAdd +:stop+ and +:clear+ keyword arguments to Coverage.result. ;TI"9If +clear+ is true, it clears the counters to zero. ;TI"9If +stop+ is true, it disables coverage measurement.;T@
o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"@Coverage.line_stub, which is a simple helper function that ;TI"Bcreates the "stub" of line coverage from a given source code.;T@
o;;[I"CSV;T;[o;;;;[o;;0;[o;
;[I"IUpgrade to 3.0.2. This includes performance improvements especially ;TI"3for writing. Writing is about 2 times faster. ;TI"9See https://github.com/ruby/csv/blob/master/NEWS.md.;T@
o;;[I"ERB;T;[o;;;;[o;;[I"New options;T;[o;;;;[o;;0;[o;
;[I"CAdd +:trim_mode+ and +:eoutvar+ keyword arguments to ERB.new. ;TI"NNow non-keyword arguments other than the first one are softly deprecated ;TI"Dand will be removed when Ruby 2.5 becomes EOL. [Feature #14256];T@
o;;0;[o;
;[I"Ierb command's <tt>-S</tt> option is deprecated, and will be removed ;TI"in the next version.;T@
o;;[I"FileUtils;T;[o;;;;[o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"&FileUtils#cp_lr. [Feature #4189];T@
o;;[I"Matrix;T;[o;;;;[o;;[I"New methods;T;[o;;;;[
o;;0;[o;
;[I"2Matrix#antisymmetric?, Matrix#skew_symmetric?;T@
o;;0;[o;
;[I"2Matrix#map!, Matrix#collect! [Feature #14151];T@
o;;0;[o;
;[I"Matrix#[]=;T@
o;;0;[o;
;[I"!Vector#map!, Vector#collect!;T@
o;;0;[o;
;[I"Vector#[]=;T@
o;;[I"Net;T;[o;;;;[o;;[I"New options;T;[o;;;;[o;;0;[o;
;[I"MAdd +:write_timeout+ keyword argument to Net::HTTP.new. [Feature #13396];T@
o;;[I"New methods;T;[o;;;;[o;;0;[o;
;[I"PAdd Net::HTTP#write_timeout and Net::HTTP#write_timeout=. [Feature #13396];T@
o;;[I"New constant;T;[o;;;;[o;;0;[o;
;[I"IAdd Net::HTTPClientException to deprecate Net::HTTPServerException, ;TI",whose name is misleading. [Bug #14688];T@
o;;[I"NKF;T;[o;;;;[o;;0;[o;
;[I"Upgrade to nkf v2.1.5;T@
o;;[I"
Psych;T;[o;;;;[o;;0;[o;
;[I"Upgrade to Psych 3.1.0;T@
o;;[I" RDoc;T;[o;;;;[
o;;0;[o;
;[I"!Become about 2 times faster.;T@
o;;0;[o;
;[I"-Use SOURCE_DATE_EPOCH to generate files.;T@
o;;0;[o;
;[I"-Fix method line number that slipped off.;T@
o;;0;[o;
;[I":Enable <code>--width</code>, <code>--exclude</code>, ;TI"7and <code>--line-numbers</code> that were ignored.;T@
o;;0;[o;
;[I"DAdd support for blockquote by ">>>" in default markup notation.;T@
o;;0;[o;
;[I"7Add support for "Raises" lines in TomDoc notation.;T@
o;;0;[o;
;[I"Fix syntax error output.;T@
o;;0;[o;
;[I"Fix many parsing bugs.;T@
o;;[I"
REXML;T;[o;;;;[o;;0;[o;
;[I"Upgrade to REXML 3.1.9. ;TI";See https://github.com/ruby/rexml/blob/master/NEWS.md.;T@
o;;;;[o;;[I"(Improved some XPath implementations;T;[o;;;;[ o;;0;[o;
;[I"R<code>concat()</code> function: Stringify all arguments before concatenating.;T@
o;;0;[o;
;[I":<code>string()</code> function: Support context node.;T@
o;;0;[o;
;[I"I<code>string()</code> function: Support processing instruction node.;T@
o;;0;[o;
;[I"BSupport <code>"*:#{ELEMENT_NAME}"</code> syntax in XPath 2.0.;T@
o;;[I"%Fixed some XPath implementations;T;[o;;;;[o;;0;[o;
;[I"7<code>"//#{ELEMENT_NAME}[#{POSITION}]"</code> case;T@
o;;0;[o;
;[I"I<code>string()</code> function: Fix <code>function(document)</code> ;TI"1returns nodes that are out of root elements.;T@
o;;0;[o;
;[I"+<code>"/ #{ELEMENT_NAME} "</code> case;T@
o;;0;[o;
;[I";<code>"/ #{ELEMENT_NAME} [ #{PREDICATE} ]"</code> case;T@
o;;0;[o;
;[I"3<code>"/ #{AXIS}::#{ELEMENT_NAME}"</code> case;T@
o;;0;[o;
;[I"K<code>"#{N}-#{M}"</code> case: One or more white spaces were required ;TI"before <code>"-"</code>;T@
o;;0;[o;
;[I"'<code>"/child::node()"</code> case;T@
o;;0;[o;
;[I".<code>"#{FUNCTION}()/#{PATH}"</code> case;T@
o;;0;[o;
;[I"/<code>"@#{ATTRIBUTE}/parent::"</code> case;T@
o;;0;[o;
;[I"*<code>"name(#{NODE_SET})"</code> case;T@
o;;[I"RSS;T;[o;;;;[o;;[I"New options;T;[o;;;;[o;;0;[o;
;[I"BRSS::Parser.parse now accepts options as Hash. +:validate+ , ;TI"G+:ignore_unknown_element+ , +:parser_class+ options are available.;T@
o;;[I"
RubyGems;T;[o;;;;[o;;0;[o;
;[I"Upgrade to RubyGems 3.0.1;T@
o;;0;[o;
;[I"=https://blog.rubygems.org/2018/12/19/3.0.0-released.html;T@
o;;0;[o;
;[I"=https://blog.rubygems.org/2018/12/23/3.0.1-released.html;T@
o;;[I"Set;T;[o;;;;[o;;[I"Aliased method;T;[o;;;;[o;;0;[o;
;[I"BSet#filter! is a new alias for Set#select!. [Feature #13784];T@
o;;[I"URI;T;[o;;;;[o;;[I"New constant;T;[o;;;;[o;;0;[o;
;[I"CAdd URI::File to handle the file URI scheme. [Feature #14035];T@
S; ;
i;I"7Compatibility issues (excluding feature bug fixes);T@
o;;;;[o;;[I"Dir;T;[o;;;;[o;;0;[o;
;[I"PDir.glob with <code>'\0'</code>-separated pattern list will be deprecated, ;TI")and is now warned. [Feature #14643];T@
o;;[I" File;T;[o;;;;[o;;0;[o;
;[I"KFile.read, File.binread, File.write, File.binwrite, File.foreach, and ;TI"LFile.readlines do not invoke external commands even if the path starts ;TI"?with the pipe character <code>'|'</code>. [Feature #14245];T@
o;;[I"Object;T;[o;;;;[o;;0;[o;
;[I"/Object#=~ is deprecated. [Feature #15231];T@
S; ;
i;I">Stdlib compatibility issues (excluding feature bug fixes);T@
o;;;;[o;;0;[o;
;[I"AThese standard libraries have been promoted to default gems.;T@
o;;;;[o;;0;[o;
;[I"e2mmap;To;;0;[o;
;[I"forwardable;To;;0;[o;
;[I"irb;To;;0;[o;
;[I"logger;To;;0;[o;
;[I"matrix;To;;0;[o;
;[I"mutex_m;To;;0;[o;
;[I"ostruct;To;;0;[o;
;[I"
prime;To;;0;[o;
;[I"
rexml;To;;0;[o;
;[I"rss;To;;0;[o;
;[I"
shell;To;;0;[o;
;[I" sync;To;;0;[o;
;[I"thwait;To;;0;[o;
;[I"tracer;T@
o;;;;[o;;[I"BigDecimal;T;[o;;;;[
o;;0;[o;
;[I"'The following methods are removed.;T@
o;;;;[o;;0;[o;
;[I"BigDecimal.allocate;To;;0;[o;
;[I"BigDecimal.ver;T@
o;;0;[o;
;[I"8Every BigDecimal object is frozen. [Feature #13984];T@
o;;0;[o;
;[I"=BigDecimal() parses the given string similar to Float().;T@
o;;0;[o;
;[I"CString#to_d parses the receiver string similar to String#to_f.;T@
o;;0;[o;
;[I"3BigDecimal.new will be removed in version 2.0.;T@
o;;[I"
Pathname;T;[o;;;;[o;;0;[o;
;[ I"IPathname#read, Pathname#binread, Pathname#write, Pathname#binwrite, ;TI"FPathname#each_line and Pathname#readlines do not invoke external ;TI"Pcommands even if the path starts with the pipe character <code>'|'</code>. ;TI"#This follows [Feature #14245].;T@
S; ;
i;I" Implementation improvements;T@
o;;;;[
o;;0;[ o;
;[I"NSpeedup Proc#call because we don't need to care about <code>$SAFE</code> ;TI"any more. [Feature #14318];T@
o;
;[I"IWith +lc_fizzbuzz+ benchmark which uses Proc#call many times we can ;TI"-measure x1.4 improvements. [Bug #10212];T@
o;;0;[o;
;[I"QSpeedup block.call where +block+ is passed block parameter. [Feature #14330];T@
o;
;[I"BRuby 2.5 improves block passing performance. [Feature #14045];T@
o;
;[I"MAdditionally, Ruby 2.6 improves the performance of passed block calling.;T@
o;;0;[o;
;[I"jIntroduce an initial implementation of a JIT (Just-in-time) compiler. [Feature #14235] [experimental];T@
o;;;;[ o;;0;[o;
;[I"Y<tt>--jit</tt> command line option is added to enable JIT. <tt>--jit-verbose=1</tt> ;TI"Bis good for inspection. See <tt>ruby --help</tt> for others.;To;;0;[o;
;[I"WTo generate machine code, this JIT compiler uses the C compiler used for building ;TI"Zthe interpreter. Currently GCC, Clang, and Microsoft Visual C++ are supported for it.;To;;0;[o;
;[I"d<tt>--disable-mjit-support</tt> option is added to configure. This is added for JIT debugging, ;TI"`but if you get an error on building a header file for JIT, you can use this option to skip ;TI"!building it as a workaround.;To;;0;[o;
;[I"Arb_waitpid reimplemented on Unix-like platforms to maintain ;TI">compatibility with processes created for JIT [Bug #14867];T@
o;;0;[o;
;[I"RVM generator script renewal; makes the generated VM more optimized. [GH-1779];T@
o;;0;[o;
;[I"EThread cache enabled for pthreads platforms (for Thread.new and ;TI"%Thread.start). [Feature #14757];T@
o;;0;[o;
;[I"Ntimer thread is eliminated for platforms with POSIX timers. [Misc #14937];T@
o;;0;[ o;
;[I"GTransient Heap (theap) is supported. [Bug #14858] [Feature #14989];T@
o;
;[I"Ktheap is a managed heap for short-living memory objects. For example, ;TI"Tmaking a small and short-living Hash object is x2 faster. With rdoc benchmark, ;TI".we measured 6-7% performance improvement.;T@
o;;0;[o;
;[I"QNative implementations (arm32, arm64, ppc64le, win32, win64, x86, amd64) of ;TI"Ocoroutines to improve performance of Fiber significantly. [Feature #14739];T@
S; ;
i;I"Miscellaneous changes;T@
o;;;;[o;;0;[o;
;[I"POn macOS, shared libraries no longer include a full version number of Ruby ;TI"Nin their names. This eliminates the burden of each teeny upgrade on the ;TI"Aplatform that users need to rebuild every extension library.;T@
o;;;;[o;;[I"Before;T;[o;;;;[o;;0;[o;
;[I"libruby.2.6.0.dylib;To;;0;[o;
;[I"-libruby.2.6.dylib -> libruby.2.6.0.dylib;To;;0;[o;
;[I")libruby.dylib -> libruby.2.6.0.dylib;T@
o;;[I"
After;T;[o;;;;[o;;0;[o;
;[I"libruby.2.6.dylib;To;;0;[o;
;[I"'libruby.dylib -> libruby.2.6.dylib;T@
o;;0;[o;
;[I"?Extracted misc/*.el files to https://github.com/ruby/elisp;T:
@file@:0@omit_headings_from_table_of_contents_below0