From d1a42eddce1f445e3d402b6d19a6cd8af5904d19 Mon Sep 17 00:00:00 2001 From: usa Date: Thu, 24 Dec 2015 17:24:57 +0000 Subject: * doc/{ChangeLog,NEWS}-2.3.0: moved. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- NEWS | 404 ------------------------------------------------------------------- 1 file changed, 404 deletions(-) delete mode 100644 NEWS (limited to 'NEWS') diff --git a/NEWS b/NEWS deleted file mode 100644 index be722bc9de..0000000000 --- a/NEWS +++ /dev/null @@ -1,404 +0,0 @@ -# -*- rdoc -*- - -= NEWS for Ruby 2.3.0 - -This document is a list of user visible feature changes made between -releases except for bug fixes. - -Note that each entry is kept so brief that no reason behind or -reference information is supplied with. For a full list of changes -with all sufficient information, see the ChangeLog file or Redmine -(e.g. https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER) - -== Changes since the 2.2.0 release - -=== Language changes - -* frozen-string-literal pragma: - - * new pragma, frozen-string-literal has been experimentally introduced. - [Feature #8976] - * besides, --enable/--disable=frozen-string-literal options also have - been introduced. [Feature #8976] - * command line options --debug or --debug=frozen-string-literal enable - additional debugging mode which shows created location with at frozen - object error (RuntimeError). - [Feature #11725] - -* safe navigation operator: - - * new method call syntax, `object&.foo', method #foo is called on - `object' if it is not nil. - this is similar to `try!' in Active Support, except: - * method name is syntactically required - obj.try! {} # valid - obj&. {} # syntax error - * arguments are evaluated only if a call is made: - obj.try!(:foo, bar()) # bar() is always evaluated - obj&.foo(bar()) # bar() is conditionally evaluated - * attribute assignment is valid - obj&.attr += 1 - [Feature #11537] - -* the did_you_mean gem: - - * When a NameError or NoMethodError occurs because of a typo in the name, - the did_you_mean gem automatically suggests other names similar to the - method name. - - "Yuki".starts_with?("Y") - # => NoMethodError: undefined method `starts_with?' for "Yuki":String - # Did you mean? start_with? - -* indented here document: - - * new string literal, here document starts with `<<~`. - refer doc/syntax/literals.rdoc for more details. - [Feature #9098] - -=== Core classes updates (outstanding ones only) - -* ARGF - - * ARGF.read_nonblock supports `exception: false' like IO#read_nonblock. - [Feature #11358] - -* Array - - * Array#bsearch_index [Feature #10730] - * Array#dig [Feature #11643] - -* Comparable - - * Comparable#== no longer rescues exceptions [Feature #7688] - -* Encoding - - * new Encoding::IBM037 (alias ebcdic-cp-us; dummy) - -* Enumerable - - * Enumerable#grep_v is added as inverse version of Enumerable#grep. - [Feature #11049] - * Enumerable#chunk_while [Feature #10769] - -* Enumerator::Lazy - - * Enumerator::Lazy#grep_v [Feature #11773] - -* File - - * File.mkfifo [Feature #11536] - * Add File::TMPFILE corresponding to O_TMPFILE - -* Hash - - * Hash#fetch_values [Feature #10017] - * Hash#dig [Feature #11643] - * Hash#<=, Hash#<, Hash#>=, Hash#> [Feature #10984] - * Hash#to_proc [Feature #11653] - -* IO - - * new mode flag File::SHARE_DELETE is available. - this flag means to permit deleting opened file on Windows, but currently - this affect only files opened as binary. [Feature #11218] - - * new option parameter `flags' is added. - this parameter is bitwise-ORed to oflags generated by normal mode argument. - [Feature #11253] - - * IO#advise no longer raises Errno::ENOSYS in cases where it was - detected at build time but not available at runtime. [Feature #11806] - -* Kernel - - * Kernel#loop, when stopped by a StopIteration exception, returns - what the enumerator has returned instead of nil. [Feature #11498] - -* Module - * Module#deprecate_constant [Feature #11398] - -* NameError - * NameError#receiver is added to take the receiver object. [Feature #10881] - -* Numeric - - * Numeric#positive? and Numeric#negative? are added, which return - true when the receiver is positive and negative respectively. - [Feature #11151] - -* Proc - - * Proc#call (and also #[], #===, #yield) are optimized. - Backtrace doesn't show each method (show block lines directly). - TracePoint also ignores these calls. [Feature #11569] - -* Queue (Thread::Queue) - - * Queue#close is added to notice a termination. [Feature #10600] - -* Regexp/String: Updated Unicode version from 7.0.0 to 8.0.0 - -* RubyVM::InstructionSequence - * add the following methods as a primitive tool of iseq loader. - See sample/iseq_loader.rb for usage. - Note that loader does not have verifier so it is easy to cause - critical problem by loading modified/broken binary data. - See [Feature #11788] for more details. (experimental feature) - * RubyVM::InstructionSequence#to_binary(extra_data = nil) - * RubyVM::InstructionSequence.load_from_binary(binary) - * RubyVM::InstructionSequence.load_from_binary_extra_data(binary) - -* String - - * String#+@ and String#-@ are added to get mutable/frozen strings. - [Feature #11782] - - * String.new now accepts new option parameter `encoding'. - [Feature #11785] - -* Struct - * Struct#dig [Feature #11688] - -* Thread - * Thread#name, Thread#name= are added to handle thread names [Feature #11251] - -=== Core classes compatibility issues (excluding feature bug fixes) - -* Array - * Array#select!, Array#keep_if, Array#reject!, and Array#delete_if - no longer changes the receiver array instantly every time the - block is called. [Feature #10714] - - * Array#flatten and Array#flatten! no longer try to call #to_ary - method on elements beyond the given level. [Bug #10748] - - * Array#inspect doesn't raise error even if its content returns - a string which is not compatible with Encoding.default_external - as inspected result. [Feature #11801] - -* Enumerable - * Enumerable#chunk and Enumerable#slice_before no longer takes the - initial_state argument. [Feature #10958] - Use a local variable instead to maintain a state. - -* File::Stat - * On Windows File::Stat#ino always returned 0, but now returns - BY_HANDLE_FILE_INFORMATION.nFileIndexHigh/Low. [Feature #11216] - -* Hash - * Hash#inspect doesn't raise error even if its content returns - a string which is not compatible with Encoding.default_external - as inspected result. [Feature #11801] - -* IO - * IO#close doesn't raise when the IO object is closed. [Feature #10718] - * IO#each_codepoint raises an exception at incomplete character - before EOF when conversion takes place. [Bug #11444] - -* Module - * Module#define_method and Object.define_singleton_method now - require method body, Proc, Method, or a block, and raise - ArgumentError if no block is given directly. [Bug #11283] - -* pack/unpack (Array/String) - * j and J directives for pointer width integer type. [Feature #11215] - - -=== Stdlib updates (outstanding ones only) - -* Logger - - * Logger#level= now supports symbol and string levels such as :debug, :info, - :warn, :error, :fatal (case insensitive) [Feature #11695] - * Logger#reopen is added to reopen a log device. [Feature #11696] - -* io/wait - * IO#wait_readable no longer checks FIONREAD, it may be used for - non-bytestream IO such as listen sockets. - -* Net::FTP - * Net::FTP#mlst is added. - * Net::FTP#mlsd is added. - -* nkf - * Merge nkf 2.1.4. - -* ObjectSpace (objspace) - * ObjectSpace.count_symbols is added. - * ObjectSpace.count_imemo_objects is added. - * ObjectSpace.internal_class_of is added. - * ObjectSpace.internal_super_of is added. - -* OpenSSL - * OpenSSL::SSL::SSLSocket#accept_nonblock and - OpenSSL::SSL::SSLSocket#connect_nonblock supports `exception: false`. - [Feature #10532] - -* Pathname - * Pathname#descend and Pathname#ascend supported blockless form. - [Feature #11052] - -* Socket - * Socket#connect_nonblock, Socket#accept_nonblock, - TCPServer#accept_nonblock, UNIXServer#accept_nonblock, - BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock, - BasicSocket#sendmsg_nonblock all support `exception: false` to return - :wait_readable or :wait_writable symbols instead of raising - IO::WaitReadable or IO::WaitWritable exceptions - [Feature #10532] [Feature #11229] - * BasicSocket#recv and BasicSocket#recv_nonblock allow an output - String buffer argument like IO#read and IO#read_nonblock to reduce - GC overhead [Feature #11242] - -* StringIO - * In read-only mode, StringIO#set_encoding no longer sets the encoding - of its buffer string. Setting the encoding of the string directly - without StringIO#set_encoding may cause unpredictable behavior now. - [Bug #11827] - -* timeout - * Object#timeout is now warned as deprecated when called. - -=== Stdlib compatibility issues (excluding feature bug fixes) - -* ext/coverage/coverage.c - * Coverage.peek_result: new method to allow coverage to be captured without - stopping the coverage tool. [Feature #10816] - -* Fiddle - * Fiddle::Function#call releases the GVL. [Feature #11607] - -* io-console - * Update to io-console 0.4.5, and change the license to BSD 2-clause - "Simplified" License. - -* lib/base64.rb - * Base64.urlsafe_encode64: added a "padding" option to suppress - the padding character ("="). [Feature #10740] - * Base64.urlsafe_decode64: now it accepts not only correctly-padded - input but also unpadded input. [Feature #10740] - -* lib/drb/drb.rb - * removed unused argument. https://github.com/ruby/ruby/pull/515 - -* lib/matrix.rb - * Add Vector#round. https://github.com/ruby/ruby/pull/802 - -* lib/webrick/utils.rb - * removed unused argument. https://github.com/ruby/ruby/pull/356 - -* Net::FTP - * Connections are in passive mode per default now. The default mode can - be changed by Net::FTP.default_passive=. [Feature #11612] - -* Net::HTTP - * default value of Net::HTTP#open_timeout is now 60 (was nil). - -* Net::Telnet - * Net::Telnet is extracted to net-telnet gem. It's unmaintain code. - [Feature #11083] - -* Psych - * Updated to Psych 2.0.17 - -* Rake - * Rake is removed from stdlib. [Feature #11025] - -* RDoc - * Updated to RDoc 4.2.1. For full release notes see: - - https://github.com/rdoc/rdoc/blob/master/History.rdoc#421--2015-12-22 - -* RubyGems - * Updated to RubyGems 2.5.1. For full release notes see: - - http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.0+-2F+2015-11-03 - and - http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.1+-2F+2015-12-10 - -=== Built-in global variables compatibility issues - -* $SAFE - * $SAFE=2 and $SAFE=3 are obsolete. If $SAFE is set to 2 or larger, - an ArgumentError is raised. [Feature #5455] - -=== C API updates - -* rb_define_class_id_under() now raises a TypeError exception when the - class is already defined but its superclass does not match the given - superclass, as well as definitions in ruby level. - -* rb_timespec_now() is added to fetch current datetime as struct timespec. - [Feature #11558] - -* rb_time_timespec_new() is added to create a time object with epoch, - nanosecond, and UTC/localtime/time offset arguments. [Feature #11558] - -* rb_autoload() deprecated, use rb_funcall() instead. [Feature #11664] - -* rb_compile_error_with_enc(), rb_compile_error(), and rb_compile_bug() - deprecated. these functions are exposed but only for internal use. - external libraries should not use them. - -=== Supported platform changes - -* OS/2 is no longer supported - -* BeOS is no longer supported - -* Borland-C is no longer supported - -* Haiku now stable and best effort - -=== Implementation improvements - -* Optimize Proc#call to eliminate method frame construction. - [Feature #11569] - -* Reconsidering method entry data structure. - [Bug #11278] - -* Introducing new table data structure for ID keys tables used by - method table and so on. New table structure is simple and fast - than st_table. [Feature #11420] - -* Machine code level tuning for object allocation and method calling - code. r52099, r52254 - -* RubyVM::InstructionSequence is extended for future improvement. - [Feature #11788] - -* Case dispatch is now optimized for all special constant literals - including nil, true, and false. Previously, only literal strings, - symbols, integers and floats compiled to optimized case dispatch. - [Feature #11769] - -* Instance variables on non-pure Ruby classes (T_DATA, T_FILE, - etc..) is less expensive to store than before. [Feature #11170] - -* All accesses to members of big Struct objects are performed in - constant-time. Previously, Struct elements beyond the first 10 - 10 elements used a linear scan. [Feature #10585] - -* The Set class got several speed up. - [Misc #10754], [r52591] - -* Socket and I/O-related improvements - - * Calling overhead of most of new keyword-using I/O methods in - [Feature #11229] is reduced by avoiding the inefficient C API - to parse keywords. [Feature #11339] - - * The standard library is updated to use the improved - exception-free non-blocking I/O from [Feature #11229]. - This has the additional benefit of quieter $DEBUG output in - addition to reducing expensive exceptions. [Feature #11044] - - * (Linux-only) waiting on a single FD anywhere in the stdlib no longer - uses select(2), making it immune to slowdowns with high-numbered FDs. - [Feature #11081] [Feature #11377] - -* CGI.escapeHTML is optimized with C extention. - https://github.com/ruby/ruby/pull/1164 -- cgit v1.2.3