U:RDoc::TopLevel[ i I"NEWS-2.3.0:EFcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts[(S:RDoc::Markup::Heading:
leveli: textI"NEWS for Ruby 2.3.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.2.0 release;T@
S; ;
i;I"Language changes;T@
o:RDoc::Markup::List:
@type:BULLET:@items[ o:RDoc::Markup::ListItem:@label0;[o;
;[I""frozen-string-literal pragma:;T@
o;;;;[o;;0;[o;
;[I"Jnew pragma, frozen-string-literal has been experimentally introduced.;To;;:
LABEL;[o;;[I"Feature #8976;T;[@
o;;0;[o;
;[I"Ibesides, --enable/--disable=frozen-string-literal options also have ;TI"%been introduced. [Feature #8976];To;;0;[o;
;[I"Jcommand line options --debug or --debug=frozen-string-literal enable ;TI"Kadditional debugging mode which shows created location with at frozen ;TI"!object error (RuntimeError).;To;;;;[o;;[I"Feature #11725;T;[@
o;;0;[o;
;[I"safe navigation operator:;T@
o;;;;[o;;0;[o;
;[I"Enew method call syntax, `object&.foo', method #foo is called on ;TI" `object' if it is not nil. ;TI"9this is similar to `try!' in Active Support, except:;To;;;;[o;;0;[o;
;[I"*method name is syntactically required;To:RDoc::Markup::Verbatim;[I"obj.try! {} # valid
;TI" obj&. {} # syntax error
;T:@format0o;;0;[o;
;[I"4arguments are evaluated only if a call is made:;To;;[I"8obj.try!(:foo, bar()) # bar() is always evaluated
;TI"?obj&.foo(bar()) # bar() is conditionally evaluated
;T;0o;;0;[o;
;[I""attribute assignment is valid;To;;[I"obj&.attr += 1
;T;0o;;;;[o;;[I"Feature #11537;T;[@
o;;0;[o;
;[I"the did_you_mean gem:;T@
o;;;;[o;;0;[o;
;[I"MWhen a NameError or NoMethodError occurs because of a typo in the name, ;TI"Lthe did_you_mean gem automatically suggests other names similar to the ;TI"method name.;T@
o;;[I""Yuki".starts_with?("Y")
;TI"K# => NoMethodError: undefined method `starts_with?' for "Yuki":String
;TI"%# Did you mean? start_with?
;T;0o;;0;[o;
;[I"indented here document:;T@
o;;;;[o;;0;[o;
;[I":new string literal, here document starts with `<<~`. ;TI"5refer doc/syntax/literals.rdoc for more details.;To;;;;[o;;[I"Feature #9098;T;[@
S; ;
i;I"1Core classes updates (outstanding ones only);T@
o;;;;[o;;0;[o;
;[I" ARGF;T@
o;;;;[o;;0;[o;
;[I"JARGF.read_nonblock supports `exception: false' like IO#read_nonblock.;To;;;;[o;;[I"Feature #11358;T;[@
o;;0;[o;
;[I"
Array;T@
o;;;;[o;;0;[o;
;[I")Array#bsearch_index [Feature #10730];To;;0;[o;
;[I"Array#dig [Feature #11643];T@
o;;0;[o;
;[I"Comparable;T@
o;;;;[o;;0;[o;
;[I"?Comparable#== no longer rescues exceptions [Feature #7688];T@
o;;0;[o;
;[I"
Encoding;T@
o;;;;[o;;0;[o;
;[I"5new Encoding::IBM037 (alias ebcdic-cp-us; dummy);T@
o;;0;[o;
;[I"Enumerable;T@
o;;;;[o;;0;[o;
;[I"FEnumerable#grep_v is added as inverse version of Enumerable#grep.;To;;;;[o;;[I"Feature #11049;T;[@
o;;0;[o;
;[I",Enumerable#chunk_while [Feature #10769];T@
o;;0;[o;
;[I"Enumerator::Lazy;T@
o;;;;[o;;0;[o;
;[I"-Enumerator::Lazy#grep_v [Feature #11773];T@
o;;0;[o;
;[I" File;T@
o;;;;[o;;0;[o;
;[I"!File.mkfifo [Feature #11536];To;;0;[o;
;[I"1Add File::TMPFILE corresponding to O_TMPFILE;T@
o;;0;[o;
;[I" Hash;T@
o;;;;[ o;;0;[o;
;[I"'Hash#fetch_values [Feature #10017];To;;0;[o;
;[I"Hash#dig [Feature #11643];To;;0;[o;
;[I"6Hash#<=, Hash#<, Hash#>=, Hash#> [Feature #10984];To;;0;[o;
;[I""Hash#to_proc [Feature #11653];T@
o;;0;[o;
;[I"IO;T@
o;;;;[o;;0;[o;
;[I"4new mode flag File::SHARE_DELETE is available. ;TI"Nthis flag means to permit deleting opened file on Windows, but currently ;TI"?this affect only files opened as binary. [Feature #11218];T@
o;;0;[o;
;[I",new option parameter `flags' is added. ;TI"Pthis parameter is bitwise-ORed to oflags generated by normal mode argument.;To;;;;[o;;[I"Feature #11253;T;[@
o;;0;[o;
;[I"DIO#advise no longer raises Errno::ENOSYS in cases where it was ;TI"Kdetected at build time but not available at runtime. [Feature #11806];T@
o;;0;[o;
;[I"Kernel;T@
o;;;;[o;;0;[o;
;[I"EKernel#loop, when stopped by a StopIteration exception, returns ;TI"Fwhat the enumerator has returned instead of nil. [Feature #11498];T@
o;;0;[o;
;[I"Module;To;;;;[o;;0;[o;
;[I"/Module#deprecate_constant [Feature #11398];T@
o;;0;[o;
;[I"NameError;To;;;;[o;;0;[o;
;[I"NNameError#receiver is added to take the receiver object. [Feature #10881];T@
o;;0;[o;
;[I"Numeric;T@
o;;;;[o;;0;[o;
;[I"ENumeric#positive? and Numeric#negative? are added, which return ;TI"Btrue when the receiver is positive and negative respectively.;To;;;;[o;;[I"Feature #11151;T;[@
o;;0;[o;
;[I" Proc;T@
o;;;;[o;;0;[o;
;[I";Proc#call (and also #[], #===, #yield) are optimized. ;TI"EBacktrace doesn't show each method (show block lines directly). ;TI":TracePoint also ignores these calls. [Feature #11569];T@
o;;0;[o;
;[I"Queue (Thread::Queue);T@
o;;;;[o;;0;[o;
;[I"CQueue#close is added to notice a termination. [Feature #10600];T@
o;;0;[o;
;[I"?Regexp/String: Updated Unicode version from 7.0.0 to 8.0.0;T@
o;;0;[o;
;[I" RubyVM::InstructionSequence;To;;;;[o;;0;[o;
;[
I"Cadd the following methods as a primitive tool of iseq loader. ;TI"*See sample/iseq_loader.rb for usage. ;TI"DNote that loader does not have verifier so it is easy to cause ;TI">critical problem by loading modified/broken binary data. ;TI"BSee [Feature #11788] for more details. (experimental feature);To;;;;[o;;0;[o;
;[I"require method body, Proc, Method, or a block, and raise ;TI"?ArgumentError if no block is given directly. [Bug #11283];T@
o;;0;[o;
;[I"pack/unpack (Array/String);To;;;;[o;;0;[o;
;[I"Ij and J directives for pointer width integer type. [Feature #11215];T@
S; ;
i;I"+Stdlib updates (outstanding ones only);T@
o;;;;[o;;0;[o;
;[I"Logger;T@
o;;;;[o;;0;[o;
;[I"PLogger#level= now supports symbol and string levels such as :debug, :info, ;TI">:warn, :error, :fatal (case insensitive) [Feature #11695];To;;0;[o;
;[I"DLogger#reopen is added to reopen a log device. [Feature #11696];T@
o;;0;[o;
;[I"io/wait;To;;;;[o;;0;[o;
;[I"DIO#wait_readable no longer checks FIONREAD, it may be used for ;TI".non-bytestream IO such as listen sockets.;T@
o;;0;[o;
;[I"
Net::FTP;To;;;;[o;;0;[o;
;[I"Net::FTP#mlst is added.;To;;0;[o;
;[I"Net::FTP#mlsd is added.;T@
o;;0;[o;
;[I"nkf;To;;;;[o;;0;[o;
;[I"Merge nkf 2.1.4.;T@
o;;0;[o;
;[I"ObjectSpace (objspace);To;;;;[ o;;0;[o;
;[I"(ObjectSpace.count_symbols is added.;To;;0;[o;
;[I".ObjectSpace.count_imemo_objects is added.;To;;0;[o;
;[I",ObjectSpace.internal_class_of is added.;To;;0;[o;
;[I",ObjectSpace.internal_super_of is added.;T@
o;;0;[o;
;[I"OpenSSL;To;;;;[o;;0;[o;
;[I"1OpenSSL::SSL::SSLSocket#accept_nonblock and ;TI"JOpenSSL::SSL::SSLSocket#connect_nonblock supports `exception: false`.;To;;;;[o;;[I"Feature #10532;T;[@
o;;0;[o;
;[I"
Pathname;To;;;;[o;;0;[o;
;[I"CPathname#descend and Pathname#ascend supported blockless form.;To;;;;[o;;[I"Feature #11052;T;[@
o;;0;[o;
;[I"Socket;To;;;;[o;;0;[o;
;[I"6Socket#connect_nonblock, Socket#accept_nonblock, ;TI"BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock, ;TI"KBasicSocket#sendmsg_nonblock all support `exception: false` to return ;TI"A:wait_readable or :wait_writable symbols instead of raising ;TI"4IO::WaitReadable or IO::WaitWritable exceptions;To;;;;[o;;[I"Feature #10532;T;[o;;;;[o;;[I"Feature #11229;T;[@
o;;0;[o;
;[I"DBasicSocket#recv and BasicSocket#recv_nonblock allow an output ;TI"HString buffer argument like IO#read and IO#read_nonblock to reduce ;TI"!GC overhead [Feature #11242];T@
o;;0;[o;
;[I"
StringIO;To;;;;[o;;0;[o;
;[I"JIn read-only mode, StringIO#set_encoding no longer sets the encoding ;TI"Hof its buffer string. Setting the encoding of the string directly ;TI"Hwithout StringIO#set_encoding may cause unpredictable behavior now.;To;;;;[o;;[I"Bug #11827;T;[@
o;;0;[o;
;[I"timeout;To;;;;[o;;0;[o;
;[I"