U:RDoc::TopLevel[ iI"NEWS-2.0.0:EFcRDoc::Parser::Simpleo:RDoc::Markup::Document: @parts[S:RDoc::Markup::Heading: leveli: textI"NEWS for Ruby 2.0.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"=with all sufficient information, see the ChangeLog file.;T@ S; ; i; I"$Changes since the 1.9.3 release;T@ S; ; i; I"Language changes;T@ o:RDoc::Markup::List: @type: BULLET: @items[ o:RDoc::Markup::ListItem: @label0;[o; ;[I"Added keyword arguments.;T@ o;;0;[o; ;[I"EAdded %i and %I for symbol list creation (similar to %w and %W).;T@ o;;0;[o; ;[I"@Default source encoding is changed to UTF-8. (was US-ASCII);T@ o;;0;[o; ;[I"6No warning for unused variables starting with '_';T@ S; ; i; I"1Core classes updates (outstanding ones only);T@ o;;;;[!o;;0;[o; ;[I" ARGF;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"Kadded ARGF#codepoints and ARGF#each_codepoint, like the corresponding ;TI"methods for IO.;T@ o;;0;[o; ;[I" Array;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"+added Array#bsearch for binary search.;To;;0;[o; ;[I"incompatible changes:;To;;;;[o;;0;[o; ;[I"=random parameter of Array#shuffle! and Array#sample now ;TI"5will be called with one argument, maximum value.;To;;0;[o; ;[I"Jwhen given Range arguments, Array#values_at now returns nil for each ;TI" value that is out-of-range.;T@ o;;0;[o; ;[I"Enumerable;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"7added Enumerable#lazy method for lazy enumeration.;T@ o;;0;[o; ;[I"Enumerator;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"4added Enumerator#size for lazy size evaluation.;To;;0;[o; ;[I"extended method:;To;;;;[o;;0;[o; ;[I"@Enumerator.new accept an argument for lazy size evaluation.;To;;0;[o; ;[I"4new class Enumerator::Lazy for lazy enumeration;T@ o;;0;[o; ;[I"ENV;To;;;;[o;;0;[o; ;[I"aliased method:;To;;;;[o;;0;[o; ;[I",ENV.to_h is a new alias for ENV.to_hash;T@ o;;0;[o; ;[I" Fiber;To;;;;[o;;0;[o; ;[I"incompatible changes:;To;;;;[o;;0;[o; ;[I"GFiber#resume cannot resume a fiber which invokes "Fiber#transfer".;T@ o;;0;[o; ;[I" File;To;;;;[o;;0;[o; ;[I"extended method:;To;;;;[o;;0;[o; ;[I"8File.fnmatch? now expands braces in the pattern if ;TI"'File::FNM_EXTGLOB option is given.;T@ o;;0;[o; ;[I"GC;To;;;;[o;;0;[o; ;[I"improvements:;To;;;;[o;;0;[o; ;[I"Jintroduced the bitmap marking which suppresses to copy a memory page ;TI"with Copy-on-Write.;To;;0;[o; ;[I"Qintroduced the non-recursive marking which avoids unexpected stack overflow.;T@ o;;0;[o; ;[I"GC::Profiler;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"Gadded GC::Profiler.raw_data which returns raw profile data for GC.;T@ o;;0;[o; ;[I" Hash;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"Dadded Hash#to_h as explicit conversion method, like Array#to_a.;To;;0;[o; ;[I"extended method:;To;;;;[o;;0;[o; ;[I"DHash#default_proc= can be passed nil to clear the default proc.;T@ o;;0;[o; ;[I"IO;To;;;;[o;;0;[o; ;[I"deprecated methods:;To;;;;[o;;0;[o; ;[I"=IO#lines, #bytes, #chars and #codepoints are deprecated.;T@ o;;0;[o; ;[I" Kernel;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"Aadded Kernel#Hash conversion method like Array() or Float().;To;;0;[o; ;[I"Aadded Kernel#__dir__ which returns the absolute path of the ;TI"system() and exec() closes non-standard file descriptors ;TI"I(The default of :close_others option is changed to true by default.);To;;0;[o; ;[I"Erespond_to? against a protected method now returns false unless ;TI"!the second argument is true.;To;;0;[o; ;[I"?__callee__ has returned to the original behavior, and now ;TI"=returns the called name but not the original name in an ;TI"aliased method.;To;;0;[o; ;[I"0Kernel#inspect does not call #to_s anymore ;TI"'(it used to call redefined #to_s).;T@ o;;0;[o; ;[I"LoadError;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I"Kadded LoadError#path method to return the file name that could not be ;TI" loaded.;T@ o;;0;[o; ;[I" Module;To;;;;[o;;0;[o; ;[I"added method:;To;;;;[o;;0;[o; ;[I">added Module#prepend which is similar to Module#include, ;TI"added main.define_method which defines a global function.;To;;0;[o; ;[I"Jadded main.using, which imports refinements into the current file or ;TI" eval string. [experimental];T@ S; ; i; I"DCore classes compatibility issues (excluding feature bug fixes);T@ o;;;;[%o;;0;[ o; ;[I"Array#values_at;T@ o; ;[I"See above.;T@ o;;0;[o; ;[I"String#lines;To;;0;[o; ;[I"String#chars;To;;0;[o; ;[I"String#codepoints;To;;0;[ o; ;[I"String#bytes;T@ o; ;[I"FThese methods no longer return an Enumerator, although passing a ;TI":block is still supported for backwards compatibility.;T@ o; ;[I"HCode like str.lines.with_index(1) { |line, lineno| ... } no longer ;TI"Cworks because str.lines returns an array. Replace lines with ;TI"each_line in such cases.;T@ o;;0;[o; ;[I" IO#lines;To;;0;[o; ;[I" IO#chars;To;;0;[o; ;[I"IO#codepoints;To;;0;[o; ;[I" IO#bytes;To;;0;[o; ;[I"ARGF#lines;To;;0;[o; ;[I"ARGF#chars;To;;0;[o; ;[I"ARGF#bytes;To;;0;[o; ;[I"StringIO#lines;To;;0;[o; ;[I"StringIO#chars;To;;0;[o; ;[I"StringIO#codepoints;To;;0;[o; ;[I"StringIO#bytes;To;;0;[o; ;[I"Zlib::GzipReader#lines;To;;0;[ o; ;[I"Zlib::GzipReader#bytes;T@ o; ;[I"DThese methods are deprecated in favor of each_line, each_byte, ;TI""each_char and each_codepoint.;T@ o;;0;[o; ;[I" Proc#==;To;;0;[ o; ;[I"Proc#eql?;T@ o; ;[I"EThese methods were removed. Two procs are == only when they are ;TI"the same object.;T@ o;;0;[o; ;[I" Fixnum;To;;0;[o; ;[I" Bignum;To;;0;[ o; ;[I" Float;T@ o; ;[I",Fixnums, Bignums and Floats are frozen.;T@ o;;0;[ o; ;[I"Signal.trap;T@ o; ;[I"See above.;T@ o;;0;[o; ;[I"Merge Onigmo. ;TI"'https://github.com/k-takata/Onigmo;T@ o;;0;[o; ;[ I"JThe :close_others option is true by default for system() and exec(). ;TI"RAlso, the close-on-exec flag is set by default for all new file descriptors. ;TI"KThis means file descriptors doesn't inherit to spawned process unless ;TI"6explicitly requested such as system(..., fd=>fd).;T@ o;;0;[o; ;[I"EKernel#respond_to? against a protected method now returns false ;TI"(unless the second argument is true.;T@ o;;0;[o; ;[I"Kernel#respond_to_missing?;To;;0;[o; ;[I"Kernel#initialize_clone;To;;0;[ o; ;[I"Kernel#initialize_dup;T@ o; ;[I"#These methods are now private.;T@ o;;0;[ o; ;[I"Thread#join, Thread#value;T@ o; ;[I"See above.;T@ o;;0;[ o; ;[I"PMutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize and Mutex#sleep;T@ o; ;[I"See above.;T@ S; ; i; I"+Stdlib updates (outstanding ones only);T@ o;;;;[o;;0;[o; ;[I"cgi;To;;;;[o;;0;[o; ;[I"Add HTML5 tag maker.;To;;0;[o; ;[I"8CGI#header has been renamed to CGI#http_header and ;TI"aliased to CGI#header.;To;;0;[o; ;[I"7When HTML5 tagmaker called, overwrite CGI#header, ;TI"9CGI#header function is to create a
element.;T@ o;;0;[o; ;[I"CSV;To;;;;[o;;0;[o; ;[I"ERemoved CSV::dump and CSV::load to protect users from dangerous ;TI" serialization vulnerability;T@ o;;0;[o; ;[I" iconv;To;;;;[o;;0;[o; ;[I"7Iconv has been removed. Use String#encode instead.;T@ o;;0;[o; ;[I"io/console;To;;;;[o;;0;[o; ;[I"new methods:;To;;;;[o;;0;[o; ;[I"Sadded IO#cooked which sets the terminal to cooked mode within the given block.;To;;0;[o; ;[I"8added IO#cooked! which sets the terminal to cooked.;To;;0;[o; ;[I"extended method:;To;;;;[o;;0;[o; ;[I"LIO#raw, IO#raw!, and IO#getch accept keyword arguments, :min and :time.;T@ o;;0;[o; ;[I" io/wait;To;;;;[o;;0;[o; ;[I"new features:;To;;;;[o;;0;[o; ;[I"#added IO#wait_writable method.;To;;0;[o; ;[I"7added IO#wait_readable method as alias of IO#wait.;T@ o;;0;[o; ;[I" json;To;;;;[o;;0;[o; ;[I"updated to 1.7.7.;T@ o;;0;[o; ;[I" net/http;To;;;;[o;;0;[o; ;[I"new features:;To;;;;[ o;;0;[o; ;[I"LProxies are now automatically detected from the http_proxy environment ;TI"/variable. See Net::HTTP::new for details.;To;;0;[o; ;[I"Hgzip and deflate compression are now requested for all requests by ;TI")default. See Net::HTTP for details.;To;;0;[o; ;[I"KSSL sessions are now reused across connections for a single instance. ;TI"HThis speeds up connection by using a previously negotiated session.;To;;0;[o; ;[I"LRequests may be created from a URI which sets the request_uri and host ;TI"Gheader of the request (but does not change the host connected to).;To;;0;[o; ;[I"OResponses contain the URI requested which allows easier implementation of ;TI"redirect following.;To;;0;[o; ;[I"new methods:;To;;;;[ o;;0;[o; ;[I"Net::HTTP#local_host;To;;0;[o; ;[I"Net::HTTP#local_host=;To;;0;[o; ;[I"Net::HTTP#local_port;To;;0;[o; ;[I"Net::HTTP#local_port=;To;;0;[o; ;[I"extended method:;To;;;;[o;;0;[o; ;[I"CNet::HTTP#connect uses local_host and local_port if specified.;T@ o;;0;[o; ;[I" net/imap;To;;;;[o;;0;[o; ;[I"new methods:;To;;;;[ o;;0;[o; ;[I"Net::IMAP.default_port;To;;0;[o; ;[I" Net::IMAP.default_imap_port;To;;0;[o; ;[I"Net::IMAP.default_tls_port;To;;0;[o; ;[I"Net::IMAP.default_ssl_port;To;;0;[o; ;[I"!Net::IMAP.default_imaps_port;T@ o;;0;[o; ;[I" objspace;To;;;;[o;;0;[o; ;[I"new method:;To;;;;[o;;0;[o; ;[I",ObjectSpace.reachable_objects_from(obj);T@ o;;0;[o; ;[I" openssl;To;;;;[o;;0;[o; ;[ I"QConsistently raise an error when trying to encode nil values. All instances ;TI"Oof OpenSSL::ASN1::Primitive now raise TypeError when calling to_der on an ;TI"Oinstance whose value is nil. All instances of OpenSSL::ASN1::Constructive ;TI"Mraise NoMethodError in the same case. Constructing such values is still ;TI"permitted.;To;;0;[o; ;[ I"NTLS 1.1 & 1.2 support by setting OpenSSL::SSL::SSLContext#ssl_version to ;TI"M:TLSv1_2, :TLSv1_2_server, :TLSv1_2_client or :TLSv1_1, :TLSv1_1_server ;TI"H:TLSv1_1_client. The version being effectively used can be queried ;TI"Hwith OpenSSL::SSL#ssl_version. Furthermore, it is also possible to ;TI"Hblacklist the new TLS versions with OpenSSL::SSL:OP_NO_TLSv1_1 and ;TI"!OpenSSL::SSL::OP_NO_TLSv1_2.;To;;0;[o; ;[I"NAdded OpenSSL::SSL::SSLContext#renegotiation_cb. A user-defined callback ;TI"Omay be set which gets called whenever a new handshake is negotiated. This ;TI"Malso allows to programmatically decline (client) renegotiation attempts.;To;;0;[o; ;[I"DSupport for "0/n" splitting of records as BEAST mitigation via ;TI"2OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS.;To;;0;[o; ;[ I"FThe default options for OpenSSL::SSL::SSLContext have changed to ;TI"JOpenSSL::SSL::OP_ALL & ~OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS ;TI"Oinstead of OpenSSL::SSL::OP_ALL only. This enables the countermeasure for ;TI"!the BEAST attack by default.;To;;0;[o; ;[ I"POpenSSL requires passwords for decrypting PEM-encoded files to be at least ;TI"Ofour characters long. This led to awkward situations where an export with ;TI"Pa password with fewer than four characters was possible, but accessing the ;TI"Hfile afterwards failed. OpenSSL::PKey::RSA, OpenSSL::PKey::DSA and ;TI"MOpenSSL::PKey::EC therefore now enforce the same check when exporting a ;TI"Pprivate key to PEM with a password - it has to be at least four characters ;TI" long.;To;;0;[o; ;[I"LSSL/TLS support for the Next Protocol Negotiation extension. Supported ;TI"#with OpenSSL 1.0.1 and higher.;To;;0;[o; ;[ I"POpenSSL::OPENSSL_FIPS allows client applications to detect whether OpenSSL ;TI"Mis FIPS-enabled. OpenSSL.fips_mode= allows turning on and off FIPS mode ;TI"Jmanually in order to adapt to situations where FIPS mode would be an ;TI"explicit requirement.;To;;0;[o; ;[I"KAuthenticated Encryption with Associated Data (AEAD) is supported via ;TI"=Cipher#auth_data= and Cipher#auth_tag/Cipher#auth_tag=. ;TI"Pathname#find returns an enumerator if no block is given.;T@ o;;0;[o; ;[I" rake;To;;;;[o;;0;[ o; ;[I",rake has been updated to version 0.9.5.;T@ o; ;[I"JThis version is backwards-compatible with previous rake versions and ;TI"contains many bug fixes.;T@ o; ;[I" See ;TI"Qhttp://rake.rubyforge.org/doc/release_notes/rake-0_9_5_rdoc.html for a list ;TI"/of changes in rake 0.9.3, 0.9.4 and 0.9.5.;T@ o;;0;[o; ;[I" RDoc;To;;;;[o;;0;[o; ;[I")RDoc has been updated to version 4.0;T@ o; ;[ I"OThis version is largely backwards-compatible with previous rdoc versions. ;TI"NThe most notable change is an update to the ri data format (ri data must ;TI"Pbe regenerated for gems shared across rdoc versions). Further API changes ;TI".are internal and won't affect most users.;T@ o; ;[I"Notable changes include:;T@ o;;;;[o;;0;[o; ;[I"IPage support for ri. Try `ri ruby:` for a list of pages in ruby or ;TI"I`ri ruby:syntax/literals` for the syntax documentation for literals.;T@ o; ;[I"LThis also works for gems such as `ri rspec:README` for the rspec gem's ;TI"README file.;To;;0;[o; ;[I":Markdown support. See ri RDoc::Markdown for details.;T@ o; ;[I"OSee https://github.com/rdoc/rdoc/blob/master/History.rdoc for a full list ;TI"of changes in rdoc 4.0.;T@ o;;0;[o; ;[I" resolv;To;;;;[o;;0;[o; ;[I"new methods:;To;;;;[o;;0;[o; ;[I"Resolv::DNS#timeouts=;To;;0;[o; ;[I""Resolv::DNS::Config#timeouts=;T@ o;;0;[o; ;[I" rexml;To;;;;[o;;0;[o; ;[I"3REXML::Document#write supports Hash arguments.;To;;0;[o; ;[I"EREXML::Document#write supports new :encoding option. It changes ;TI"BXML document encoding. Without :encoding option, encoding in ;TI"7XML declaration is used for XML document encoding.;T@ o;;0;[o; ;[I" RubyGems;To;;;;[o;;0;[ o; ;[I"Updated to 2.0.0;T@ o; ;[I"8RubyGems 2.0.0 features the following improvements:;T@ o;;;;[ o;;0;[o; ;[I"@Improved support for default gems shipping with ruby 2.0.0+;To;;0;[o; ;[I"JA gem can have arbitrary metadata through Gem::Specification#metadata;To;;0;[o; ;[I"I`gem search` now defaults to --remote and is anchored like gem list.;To;;0;[o; ;[I"HAdded --document to replace --rdoc and --ri. Use --no-document to ;TI"Bdisable documentation, --document=rdoc to only generate rdoc.;To;;0;[o; ;[I":Only ri-format documentation is generated by default.;To;;0;[o; ;[I"D`gem server` uses RDoc::Servlet from RDoc 4.0 to generate HTML ;TI"documentation.;T@ o; ;[I"8For an expanded list of updates and bug fixes see: ;TI"Ahttps://github.com/rubygems/rubygems/blob/master/History.txt;T@ o;;0;[o; ;[I"shellwords;To;;;;[o;;0;[o; ;[I"HShellwords#shellescape now stringifies the given object using to_s.;To;;0;[o; ;[I"BShellwords#shelljoin accepts non-string objects in the given ;TI"4array, each of which is stringified using to_s.;T@ o;;0;[o; ;[I" stringio;To;;;;[o;;0;[o; ;[I"deprecated methods:;To;;;;[o;;0;[o; ;[I"CStringIO#lines, #bytes, #chars and #codepoints are deprecated.;T@ o;;0;[o; ;[I" syslog;To;;;;[o;;0;[o; ;[I"BAdded Syslog::Logger which provides a Logger API atop Syslog.;To;;0;[o; ;[I"HSyslog::Priority, Syslog::Level, Syslog::Option and Syslog::Macros ;TI"Care introduced for easy detection of available constants on a ;TI"running system.;T@ o;;0;[o; ;[I" tmpdir;To;;;;[o;;0;[o; ;[I"incompatible changes:;To;;;;[o;;0;[o; ;[ I"9Dir.mktmpdir uses FileUtils.remove_entry instead of ;TI"MFileUtils.remove_entry_secure. This means that applications should not ;TI"Fchange the permission of the created temporary directory to make ;TI"!accessible from other users.;T@ o;;0;[o; ;[I" yaml;To;;;;[o;;0;[o; ;[I"JSyck has been removed. YAML now completely depends on libyaml being ;TI"installed.;To;;0;[o; ;[I"Jlibyaml is now bundled with ruby, for cases where the library is not ;TI"installed locally.;T@ o;;0;[o; ;[I" zlib;To;;;;[ o;;0;[o; ;[I"OAdded streaming support for Zlib::Inflate and Zlib::Deflate. This allows ;TI"Gprocessing of a stream without the use of large amounts of memory.;To;;0;[o; ;[I"LAdded support for the new deflate strategies Zlib::RLE and Zlib::FIXED.;To;;0;[o; ;[I"QZlib streams are now processed without the GVL. This allows gzip, zlib and ;TI"1deflate streams to be processed in parallel.;To;;0;[o; ;[I"deprecated methods:;To;;;;[o;;0;[o; ;[I"6Zlib::GzipReader#lines and #bytes are deprecated.;T@ S; ; i; I">Stdlib compatibility issues (excluding feature bug fixes);T@ o;;;;[o;;0;[o; ;[I"FOpenStruct new methods can conflict with custom attributes named ;TI"+"each_pair", "eql?", "hash" or "to_h".;T@ o;;0;[ o; ;[I""Dir.mktmpdir in lib/tmpdir.rb;T@ o; ;[I"See above.;T@ S; ; i; I"C API updates;T@ o;;;;[o;;0;[o; ;[I"PNUM2SHORT() and NUM2USHORT() added. They are similar to NUM2INT, but short.;T@ o;;0;[o; ;[I"Urb_newobj_of() and NEWOBJ_OF() added. They create a new object of a given class.;T: @file@:0@omit_headings_from_table_of_contents_below0