U:RDoc::TopLevel[ iI"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::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.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"Stdlib compatibility issues (excluding feature bug fixes);T@ o;;;;[o;;0;[o; ;[I"ext/coverage/coverage.c;To;;;;[o;;0;[o; ;[I"OCoverage.peek_result: new method to allow coverage to be captured without ;TI"2stopping the coverage tool. [Feature #10816];T@ o;;0;[o; ;[I" Fiddle;To;;;;[o;;0;[o; ;[I">Fiddle::Function#call releases the GVL. [Feature #11607];T@ o;;0;[o; ;[I"io-console;To;;;;[o;;0;[o; ;[I"HUpdate to io-console 0.4.5, and change the license to BSD 2-clause ;TI""Simplified" License.;T@ o;;0;[o; ;[I"lib/base64.rb;To;;;;[o;;0;[o; ;[I"CBase64.urlsafe_encode64: added a "padding" option to suppress ;TI"3the padding character ("="). [Feature #10740];To;;0;[o; ;[I"GBase64.urlsafe_decode64: now it accepts not only correctly-padded ;TI"5input but also unpadded input. [Feature #10740];T@ o;;0;[o; ;[I"lib/drb/drb.rb;To;;;;[o;;0;[o; ;[I"Cremoved unused argument. https://github.com/ruby/ruby/pull/515;T@ o;;0;[o; ;[I"lib/matrix.rb;To;;;;[o;;0;[o; ;[I"