mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
old ChangeLog and NEWS move to doc
* doc/NEWS-2.2.0: moved from NEWS * doc/ChangeLog-2.2.0: moved ChangeLog older than created ruby_2_2 branch * NEWS: NEWS for 2.3.0 that describes changes since 2.2.0 * ChangeLog: ChangeLog since branch point of ruby_2_2 branch git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a9f70432d4
commit
39b8908e37
4 changed files with 12516 additions and 12466 deletions
330
NEWS
330
NEWS
|
@ -1,6 +1,6 @@
|
|||
# -*- rdoc -*-
|
||||
|
||||
= NEWS for Ruby 2.2.0
|
||||
= NEWS for Ruby 2.3.0
|
||||
|
||||
This document is a list of user visible feature changes made between
|
||||
releases except for bug fixes.
|
||||
|
@ -9,348 +9,22 @@ 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.
|
||||
|
||||
== Changes since the 2.1.0 release
|
||||
== Changes since the 2.2.0 release
|
||||
|
||||
=== Language changes
|
||||
|
||||
* nil/true/false
|
||||
* nil/true/false objects are frozen. [Feature #8923]
|
||||
|
||||
* Hash literal
|
||||
* Symbol key followed by a colon can be quoted. [Feature #4276]
|
||||
|
||||
* default argument
|
||||
fixed a very longstanding bug that an optional argument was not
|
||||
accessible in its default value expression. [Bug #9593]
|
||||
|
||||
=== Core classes updates (outstanding ones only)
|
||||
|
||||
* Binding
|
||||
* New methods:
|
||||
* Binding#local_variables
|
||||
* Binding#receiver
|
||||
|
||||
* Dir
|
||||
* New methods:
|
||||
* Dir#fileno
|
||||
|
||||
* Enumerable
|
||||
* New methods:
|
||||
* Enumerable#slice_after
|
||||
* Enumerable#slice_when
|
||||
* Extended methods:
|
||||
* min, min_by, max and max_by supports optional argument to return
|
||||
multiple elements.
|
||||
|
||||
* Float
|
||||
* New methods:
|
||||
* Float#next_float
|
||||
* Float#prev_float
|
||||
|
||||
* File
|
||||
* New methods:
|
||||
* File.birthtime
|
||||
* File#birthtime
|
||||
|
||||
* File::Stat
|
||||
* New methods:
|
||||
* File::Stat#birthtime
|
||||
|
||||
* GC
|
||||
* GC.latest_gc_info returns :state to represent current GC status.
|
||||
* Improvements
|
||||
* Introduce incremental marking for major GC. [Feature #10137]
|
||||
|
||||
* IO
|
||||
* Improvements
|
||||
* IO#nonblock_read and IO#nonblock_write for pipes on Windows are supported.
|
||||
|
||||
* Kernel
|
||||
* New methods:
|
||||
* Kernel#itself
|
||||
* Improvements
|
||||
* Kernel#throw raises UncaughtThrowError, subclass of ArgumentError when
|
||||
there is no corresponding catch block, instead of ArgumentError.
|
||||
|
||||
* Process
|
||||
* Extended method:
|
||||
* Process execution methods such as Process.spawn opens the file in write
|
||||
mode for redirect from [:out, :err].
|
||||
|
||||
* String
|
||||
* New methods:
|
||||
* String#unicode_normalize
|
||||
* String#unicode_normalize!
|
||||
* String#unicode_normalized?
|
||||
|
||||
* Symbol
|
||||
* Improvements
|
||||
* Most symbols which are returned by String#to_sym and
|
||||
String#intern are GC-able.
|
||||
|
||||
* Method
|
||||
* New methods:
|
||||
* Method#curry([arity]) returns a curried Proc.
|
||||
* Method#super_method returns a Method of superclass, which would be called
|
||||
when super is used.
|
||||
|
||||
=== Core classes compatibility issues (excluding feature bug fixes)
|
||||
|
||||
* Enumerable
|
||||
* Enumerable#slice_before's state management deprecated.
|
||||
* Enumerable#chunk's state management deprecated.
|
||||
|
||||
* GC
|
||||
* incompatible changes:
|
||||
* Rename GC.stat entries. [Feature #9924]
|
||||
See https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing
|
||||
|
||||
* IO
|
||||
* incompatible changes:
|
||||
* When flushing file IO with IO#flush, you cannot assume that the metadata
|
||||
of the file is updated immediately. On some platforms (especially
|
||||
Windows), it is delayed until the filesystem load is decreased.
|
||||
Use IO#fsync if you want to guarantee updating metadata.
|
||||
|
||||
* Math
|
||||
* incompatible changes:
|
||||
* Math.log now raises Math::DomainError instead of returning NaN if the
|
||||
base is less than 0, and returns NaN instead of -infinity if both of
|
||||
two arguments are 0.
|
||||
* Math.atan2 now returns values like as expected by C99 if both two
|
||||
arguments are infinity.
|
||||
|
||||
* Proc
|
||||
* incompatible changes:
|
||||
* ArgumentError is no longer raised when lambda Proc is passed as a
|
||||
block, and the number of yielded arguments does not match the formal
|
||||
arguments of the lambda, if just an array is yielded and its length
|
||||
matches.
|
||||
|
||||
* Process
|
||||
* Process execution methods such as Process.spawn opens the file in write
|
||||
mode for redirect from [:out, :err].
|
||||
Before Ruby 2.2, it was opened in read mode.
|
||||
|
||||
=== Stdlib updates (outstanding ones only)
|
||||
|
||||
* Continuation
|
||||
* callcc is obsolete. use Fiber instead.
|
||||
|
||||
* Digest
|
||||
|
||||
* Digest() should now be thread-safe. If you have a problem with
|
||||
regard to on-demand loading under a multi-threaded environment,
|
||||
preload "digest/*" modules on boot or use this method instead of
|
||||
directly referencing Digest::*.
|
||||
* Digest::HMAC has been removed just as previously noticed.
|
||||
|
||||
* DL
|
||||
* DL has been removed from stdlib. Please use Fiddle instead!
|
||||
|
||||
* Etc
|
||||
* New methods:
|
||||
* Etc.uname
|
||||
* Etc.sysconf
|
||||
* Etc.confstr
|
||||
* IO#pathconf
|
||||
* Etc.nprocessors
|
||||
|
||||
* Find, Pathname
|
||||
* Extended methods:
|
||||
* find method accepts "ignore_error" keyword argument.
|
||||
|
||||
* Matrix
|
||||
* New methods:
|
||||
* Matrix#first_minor(row, column) returns the submatrix obtained
|
||||
by deleting the specified row and column.
|
||||
* Matrix#cofactor(row, column) returns the (row, column) cofactor
|
||||
which is obtained by multiplying the first minor by (-1)**(row + column).
|
||||
* Matrix#adjugate returns the adjugate of the matrix.
|
||||
* hstack and vstack are new instance and class methods to stack matrices
|
||||
horizontally and vertically.
|
||||
* Matrix#laplace_expansion(row_or_column: num) returns the laplace_expansion
|
||||
along the +num+ -th row or column.
|
||||
* Vector.basis(size:, index:) returns the specified basis vector.
|
||||
* Unary - and + added for Vector and Matrix.
|
||||
* Vector#cross_product generalized to arbitrary dimensions.
|
||||
* Vector#dot and #cross are aliases for #inner_product and #cross_product.
|
||||
* Vector#angle_with returns the angle with its argument
|
||||
* New instance and class method independent? to test linear independence.
|
||||
|
||||
* Pathname
|
||||
* Pathname#/ is aliased to Pathname#+.
|
||||
* New methods:
|
||||
* Pathname#birthtime
|
||||
|
||||
* Rake
|
||||
* Updated to Rake 10.4.0. For full release notes see:
|
||||
|
||||
http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0
|
||||
|
||||
* RubyGems
|
||||
* Updated to RubyGems 2.4.2. For full release notes see:
|
||||
|
||||
http://docs.seattlerb.org/rubygems/History_txt.html#label-2.4.2+%2F+2014-10-01
|
||||
|
||||
* TSort
|
||||
* TSort.tsort_each, TSort.each_strongly_connected_component and
|
||||
TSort.each_strongly_connected_component_from returns an enumerator if
|
||||
no block given.
|
||||
|
||||
* XMLRPC
|
||||
* Added new parser class named LibXMLStreamParser.
|
||||
|
||||
=== Stdlib compatibility issues (excluding feature bug fixes)
|
||||
|
||||
* lib/mathn.rb
|
||||
* Show deprecated warning [Feature #10169]
|
||||
|
||||
* ext/date/lib/date/format.rb
|
||||
* Removed because it's empty file.
|
||||
|
||||
* Digest
|
||||
* Digest::HMAC has finally ceased to exist. Use OpenSSL::HMAC or an external gem instead.
|
||||
|
||||
* time.rb
|
||||
* Time.parse, Time.strptime, Time.rfc2822, Time.xmlschema may produce
|
||||
fixed-offset Time objects.
|
||||
It is happen when usual localtime doesn't preserve the offset from UTC.
|
||||
* Time.httpdate produces always UTC Time object.
|
||||
* Time.strptime raises ArgumentError when no date information.
|
||||
|
||||
* lib/rational.rb
|
||||
* Removed because it is deprecated from 2009.
|
||||
|
||||
* lib/complex.rb
|
||||
* Removed because it is deprecated from 2009.
|
||||
|
||||
* lib/prettyprint.rb
|
||||
* Removed PrettyPrint#first?
|
||||
|
||||
* lib/minitest/*.rb
|
||||
* Removed because it conflicts to minitest 5. [Feature #9711]
|
||||
|
||||
* lib/test/**/*.rb
|
||||
* Removed because it conflicts to minitest 5, and it was just an wrapper
|
||||
of minitest 4. [Feature #9711]
|
||||
|
||||
* lib/uri
|
||||
* support RFC 3986. [Feature #2542]
|
||||
|
||||
* GServer
|
||||
* GServer is extracted to gserver gem. It's unmaintain code.
|
||||
|
||||
* Logger
|
||||
* Logger::Application is extracted to logger-application gem. It's unmaintain code.
|
||||
|
||||
* ObjectSpace (after requiring "objspace")
|
||||
* ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE).
|
||||
[Bug #8984]
|
||||
|
||||
* Prime
|
||||
* incompatible changes:
|
||||
* Prime.prime? now returns false for negative numbers. This method
|
||||
should not be used to know the number is composite or not. [Bug #7395]
|
||||
|
||||
* Psych
|
||||
* Removed Psych::EngineManager [Bug #8344]
|
||||
|
||||
=== Built-in global variables compatibility issues
|
||||
|
||||
=== C API updates
|
||||
|
||||
* Deprecated APIs removed. [Feature #9502]
|
||||
|
||||
Check_SafeStr -> SafeStringValue
|
||||
rb_check_safe_str -> SafeStringValue
|
||||
rb_quad_pack -> rb_integer_pack
|
||||
rb_quad_unpack -> rb_integer_unpack
|
||||
rb_read_check : access struct FILE internal. no replacement.
|
||||
rb_struct_iv_get : internal function. no replacement.
|
||||
struct rb_blocking_region_buffer : internal type. no replacement.
|
||||
rb_thread_blocking_region_begin -> rb_thread_call_without_gvl family
|
||||
rb_thread_blocking_region_end -> rb_thread_call_without_gvl family
|
||||
TRAP_BEG -> rb_thread_call_without_gvl family
|
||||
TRAP_END -> rb_thread_call_without_gvl family
|
||||
rb_thread_select -> rb_thread_fd_select
|
||||
struct rb_exec_arg : internal type. no replacement.
|
||||
rb_exec : internal function. no replacement.
|
||||
rb_exec_arg_addopt : internal function. no replacement.
|
||||
rb_exec_arg_fixup : internal function. no replacement.
|
||||
rb_exec_arg_init : internal function. no replacement.
|
||||
rb_exec_err : internal function. no replacement.
|
||||
rb_fork : internal function. no replacement.
|
||||
rb_fork_err : internal function. no replacement.
|
||||
rb_proc_exec_n : internal function. no replacement.
|
||||
rb_run_exec_options : internal function. no replacement.
|
||||
rb_run_exec_options_err : internal function. no replacement.
|
||||
rb_thread_blocking_region -> rb_thread_call_without_gvl family
|
||||
rb_thread_polling -> rb_thread_wait_for
|
||||
rb_big2str0 : internal function. no replacement.
|
||||
rb_big2ulong_pack -> rb_integer_pack
|
||||
rb_gc_set_params : internal function. no replacement.
|
||||
rb_io_mode_flags -> rb_io_modestr_fmode
|
||||
rb_io_modenum_flags -> rb_io_oflags_fmode
|
||||
|
||||
* struct RBignum is hidden. [Feature #6083]
|
||||
Use rb_integer_pack and rb_integer_unpack instead.
|
||||
|
||||
* struct RRational is hidden. [Feature #9513]
|
||||
Use rb_rational_num and rb_rational_den instead.
|
||||
|
||||
* rb_big_new and rb_big_resize takes a size_t instead of long.
|
||||
|
||||
* rb_num2long returns a long instead of SIGNED_VALUE.
|
||||
|
||||
* rb_num2ulong returns an unsigned long instead of VALUE.
|
||||
|
||||
* st hash table uses power-of-two sizes for speed [Feature #9425].
|
||||
Lookups are 10-25% faster if using appropriate hash functions.
|
||||
However, weaknesses in hash distribution can no longer be masked
|
||||
by prime number-sized tables, so extensions may need to tweak
|
||||
hash functions to ensure good distribution.
|
||||
|
||||
* rb_sym2str() added. This is almost same as `rb_id2str(SYM2ID(sym))`
|
||||
but not pinning a dynamic symbol.
|
||||
|
||||
* rb_str_cat_cstr() added. This is same as `rb_str_cat2()`.
|
||||
|
||||
* `rb_str_substr()` and `rb_str_subseq()` will share middle of a string,
|
||||
but not only the end of a string, in the future. Therefore, result
|
||||
strings may not be NUL-terminated, `StringValueCStr()` is needed
|
||||
calling to obtain a NUL-terminated C string.
|
||||
|
||||
* rb_tracepoint_new() supports new internal events accessible only from C:
|
||||
* RUBY_INTERNAL_EVENT_GC_ENTER
|
||||
* RUBY_INTERNAL_EVENT_GC_EXIT
|
||||
r47528
|
||||
|
||||
* rb_hash_delete() now does not call the block given to the current method.
|
||||
|
||||
* rb_extract_keywords() and rb_get_kwargs() exported. See README.EXT
|
||||
for details.
|
||||
|
||||
=== Build system updates
|
||||
|
||||
* jemalloc is optionally supported via `./configure --with-jemalloc`
|
||||
jemalloc may be suitable when system malloc is slow or prone
|
||||
to fragmentation. [Feature #9113]
|
||||
|
||||
=== Implementation changes
|
||||
|
||||
* GC
|
||||
* Most symbols which are returned by String#to_sym and
|
||||
String#intern are GC-able [Feature #9634]
|
||||
* Introduce incremental marking for major GC. [Feature #10137]
|
||||
* Enable lazy sweep on GC caused by malloc().
|
||||
|
||||
* VM
|
||||
* Use frozen string literals for Hash#[] and Hash#[]=
|
||||
* Fast keyword arguments passing [Feature #10440]
|
||||
* Allow to receive huge splatted array by a rest argument
|
||||
[Feature #10440]
|
||||
|
||||
* Process
|
||||
* Process creation methods, such as spawn(), uses vfork() system call.
|
||||
vfork() is faster than fork() when the parent process uses huge memory.
|
||||
|
|
12157
doc/ChangeLog-2.2.0
Normal file
12157
doc/ChangeLog-2.2.0
Normal file
File diff suppressed because it is too large
Load diff
356
doc/NEWS-2.2.0
Normal file
356
doc/NEWS-2.2.0
Normal file
|
@ -0,0 +1,356 @@
|
|||
# -*- rdoc -*-
|
||||
|
||||
= NEWS for Ruby 2.2.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.
|
||||
|
||||
== Changes since the 2.1.0 release
|
||||
|
||||
=== Language changes
|
||||
|
||||
* nil/true/false
|
||||
* nil/true/false objects are frozen. [Feature #8923]
|
||||
|
||||
* Hash literal
|
||||
* Symbol key followed by a colon can be quoted. [Feature #4276]
|
||||
|
||||
* default argument
|
||||
fixed a very longstanding bug that an optional argument was not
|
||||
accessible in its default value expression. [Bug #9593]
|
||||
|
||||
=== Core classes updates (outstanding ones only)
|
||||
|
||||
* Binding
|
||||
* New methods:
|
||||
* Binding#local_variables
|
||||
* Binding#receiver
|
||||
|
||||
* Dir
|
||||
* New methods:
|
||||
* Dir#fileno
|
||||
|
||||
* Enumerable
|
||||
* New methods:
|
||||
* Enumerable#slice_after
|
||||
* Enumerable#slice_when
|
||||
* Extended methods:
|
||||
* min, min_by, max and max_by supports optional argument to return
|
||||
multiple elements.
|
||||
|
||||
* Float
|
||||
* New methods:
|
||||
* Float#next_float
|
||||
* Float#prev_float
|
||||
|
||||
* File
|
||||
* New methods:
|
||||
* File.birthtime
|
||||
* File#birthtime
|
||||
|
||||
* File::Stat
|
||||
* New methods:
|
||||
* File::Stat#birthtime
|
||||
|
||||
* GC
|
||||
* GC.latest_gc_info returns :state to represent current GC status.
|
||||
* Improvements
|
||||
* Introduce incremental marking for major GC. [Feature #10137]
|
||||
|
||||
* IO
|
||||
* Improvements
|
||||
* IO#nonblock_read and IO#nonblock_write for pipes on Windows are supported.
|
||||
|
||||
* Kernel
|
||||
* New methods:
|
||||
* Kernel#itself
|
||||
* Improvements
|
||||
* Kernel#throw raises UncaughtThrowError, subclass of ArgumentError when
|
||||
there is no corresponding catch block, instead of ArgumentError.
|
||||
|
||||
* Process
|
||||
* Extended method:
|
||||
* Process execution methods such as Process.spawn opens the file in write
|
||||
mode for redirect from [:out, :err].
|
||||
|
||||
* String
|
||||
* New methods:
|
||||
* String#unicode_normalize
|
||||
* String#unicode_normalize!
|
||||
* String#unicode_normalized?
|
||||
|
||||
* Symbol
|
||||
* Improvements
|
||||
* Most symbols which are returned by String#to_sym and
|
||||
String#intern are GC-able.
|
||||
|
||||
* Method
|
||||
* New methods:
|
||||
* Method#curry([arity]) returns a curried Proc.
|
||||
* Method#super_method returns a Method of superclass, which would be called
|
||||
when super is used.
|
||||
|
||||
=== Core classes compatibility issues (excluding feature bug fixes)
|
||||
|
||||
* Enumerable
|
||||
* Enumerable#slice_before's state management deprecated.
|
||||
* Enumerable#chunk's state management deprecated.
|
||||
|
||||
* GC
|
||||
* incompatible changes:
|
||||
* Rename GC.stat entries. [Feature #9924]
|
||||
See https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing
|
||||
|
||||
* IO
|
||||
* incompatible changes:
|
||||
* When flushing file IO with IO#flush, you cannot assume that the metadata
|
||||
of the file is updated immediately. On some platforms (especially
|
||||
Windows), it is delayed until the filesystem load is decreased.
|
||||
Use IO#fsync if you want to guarantee updating metadata.
|
||||
|
||||
* Math
|
||||
* incompatible changes:
|
||||
* Math.log now raises Math::DomainError instead of returning NaN if the
|
||||
base is less than 0, and returns NaN instead of -infinity if both of
|
||||
two arguments are 0.
|
||||
* Math.atan2 now returns values like as expected by C99 if both two
|
||||
arguments are infinity.
|
||||
|
||||
* Proc
|
||||
* incompatible changes:
|
||||
* ArgumentError is no longer raised when lambda Proc is passed as a
|
||||
block, and the number of yielded arguments does not match the formal
|
||||
arguments of the lambda, if just an array is yielded and its length
|
||||
matches.
|
||||
|
||||
* Process
|
||||
* Process execution methods such as Process.spawn opens the file in write
|
||||
mode for redirect from [:out, :err].
|
||||
Before Ruby 2.2, it was opened in read mode.
|
||||
|
||||
=== Stdlib updates (outstanding ones only)
|
||||
|
||||
* Continuation
|
||||
* callcc is obsolete. use Fiber instead.
|
||||
|
||||
* Digest
|
||||
|
||||
* Digest() should now be thread-safe. If you have a problem with
|
||||
regard to on-demand loading under a multi-threaded environment,
|
||||
preload "digest/*" modules on boot or use this method instead of
|
||||
directly referencing Digest::*.
|
||||
* Digest::HMAC has been removed just as previously noticed.
|
||||
|
||||
* DL
|
||||
* DL has been removed from stdlib. Please use Fiddle instead!
|
||||
|
||||
* Etc
|
||||
* New methods:
|
||||
* Etc.uname
|
||||
* Etc.sysconf
|
||||
* Etc.confstr
|
||||
* IO#pathconf
|
||||
* Etc.nprocessors
|
||||
|
||||
* Find, Pathname
|
||||
* Extended methods:
|
||||
* find method accepts "ignore_error" keyword argument.
|
||||
|
||||
* Matrix
|
||||
* New methods:
|
||||
* Matrix#first_minor(row, column) returns the submatrix obtained
|
||||
by deleting the specified row and column.
|
||||
* Matrix#cofactor(row, column) returns the (row, column) cofactor
|
||||
which is obtained by multiplying the first minor by (-1)**(row + column).
|
||||
* Matrix#adjugate returns the adjugate of the matrix.
|
||||
* hstack and vstack are new instance and class methods to stack matrices
|
||||
horizontally and vertically.
|
||||
* Matrix#laplace_expansion(row_or_column: num) returns the laplace_expansion
|
||||
along the +num+ -th row or column.
|
||||
* Vector.basis(size:, index:) returns the specified basis vector.
|
||||
* Unary - and + added for Vector and Matrix.
|
||||
* Vector#cross_product generalized to arbitrary dimensions.
|
||||
* Vector#dot and #cross are aliases for #inner_product and #cross_product.
|
||||
* Vector#angle_with returns the angle with its argument
|
||||
* New instance and class method independent? to test linear independence.
|
||||
|
||||
* Pathname
|
||||
* Pathname#/ is aliased to Pathname#+.
|
||||
* New methods:
|
||||
* Pathname#birthtime
|
||||
|
||||
* Rake
|
||||
* Updated to Rake 10.4.0. For full release notes see:
|
||||
|
||||
http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0
|
||||
|
||||
* RubyGems
|
||||
* Updated to RubyGems 2.4.2. For full release notes see:
|
||||
|
||||
http://docs.seattlerb.org/rubygems/History_txt.html#label-2.4.2+%2F+2014-10-01
|
||||
|
||||
* TSort
|
||||
* TSort.tsort_each, TSort.each_strongly_connected_component and
|
||||
TSort.each_strongly_connected_component_from returns an enumerator if
|
||||
no block given.
|
||||
|
||||
* XMLRPC
|
||||
* Added new parser class named LibXMLStreamParser.
|
||||
|
||||
=== Stdlib compatibility issues (excluding feature bug fixes)
|
||||
|
||||
* lib/mathn.rb
|
||||
* Show deprecated warning [Feature #10169]
|
||||
|
||||
* ext/date/lib/date/format.rb
|
||||
* Removed because it's empty file.
|
||||
|
||||
* Digest
|
||||
* Digest::HMAC has finally ceased to exist. Use OpenSSL::HMAC or an external gem instead.
|
||||
|
||||
* time.rb
|
||||
* Time.parse, Time.strptime, Time.rfc2822, Time.xmlschema may produce
|
||||
fixed-offset Time objects.
|
||||
It is happen when usual localtime doesn't preserve the offset from UTC.
|
||||
* Time.httpdate produces always UTC Time object.
|
||||
* Time.strptime raises ArgumentError when no date information.
|
||||
|
||||
* lib/rational.rb
|
||||
* Removed because it is deprecated from 2009.
|
||||
|
||||
* lib/complex.rb
|
||||
* Removed because it is deprecated from 2009.
|
||||
|
||||
* lib/prettyprint.rb
|
||||
* Removed PrettyPrint#first?
|
||||
|
||||
* lib/minitest/*.rb
|
||||
* Removed because it conflicts to minitest 5. [Feature #9711]
|
||||
|
||||
* lib/test/**/*.rb
|
||||
* Removed because it conflicts to minitest 5, and it was just an wrapper
|
||||
of minitest 4. [Feature #9711]
|
||||
|
||||
* lib/uri
|
||||
* support RFC 3986. [Feature #2542]
|
||||
|
||||
* GServer
|
||||
* GServer is extracted to gserver gem. It's unmaintain code.
|
||||
|
||||
* Logger
|
||||
* Logger::Application is extracted to logger-application gem. It's unmaintain code.
|
||||
|
||||
* ObjectSpace (after requiring "objspace")
|
||||
* ObjectSpace.memsize_of(obj) returns a size includes sizeof(RVALUE).
|
||||
[Bug #8984]
|
||||
|
||||
* Prime
|
||||
* incompatible changes:
|
||||
* Prime.prime? now returns false for negative numbers. This method
|
||||
should not be used to know the number is composite or not. [Bug #7395]
|
||||
|
||||
* Psych
|
||||
* Removed Psych::EngineManager [Bug #8344]
|
||||
|
||||
=== Built-in global variables compatibility issues
|
||||
|
||||
=== C API updates
|
||||
|
||||
* Deprecated APIs removed. [Feature #9502]
|
||||
|
||||
Check_SafeStr -> SafeStringValue
|
||||
rb_check_safe_str -> SafeStringValue
|
||||
rb_quad_pack -> rb_integer_pack
|
||||
rb_quad_unpack -> rb_integer_unpack
|
||||
rb_read_check : access struct FILE internal. no replacement.
|
||||
rb_struct_iv_get : internal function. no replacement.
|
||||
struct rb_blocking_region_buffer : internal type. no replacement.
|
||||
rb_thread_blocking_region_begin -> rb_thread_call_without_gvl family
|
||||
rb_thread_blocking_region_end -> rb_thread_call_without_gvl family
|
||||
TRAP_BEG -> rb_thread_call_without_gvl family
|
||||
TRAP_END -> rb_thread_call_without_gvl family
|
||||
rb_thread_select -> rb_thread_fd_select
|
||||
struct rb_exec_arg : internal type. no replacement.
|
||||
rb_exec : internal function. no replacement.
|
||||
rb_exec_arg_addopt : internal function. no replacement.
|
||||
rb_exec_arg_fixup : internal function. no replacement.
|
||||
rb_exec_arg_init : internal function. no replacement.
|
||||
rb_exec_err : internal function. no replacement.
|
||||
rb_fork : internal function. no replacement.
|
||||
rb_fork_err : internal function. no replacement.
|
||||
rb_proc_exec_n : internal function. no replacement.
|
||||
rb_run_exec_options : internal function. no replacement.
|
||||
rb_run_exec_options_err : internal function. no replacement.
|
||||
rb_thread_blocking_region -> rb_thread_call_without_gvl family
|
||||
rb_thread_polling -> rb_thread_wait_for
|
||||
rb_big2str0 : internal function. no replacement.
|
||||
rb_big2ulong_pack -> rb_integer_pack
|
||||
rb_gc_set_params : internal function. no replacement.
|
||||
rb_io_mode_flags -> rb_io_modestr_fmode
|
||||
rb_io_modenum_flags -> rb_io_oflags_fmode
|
||||
|
||||
* struct RBignum is hidden. [Feature #6083]
|
||||
Use rb_integer_pack and rb_integer_unpack instead.
|
||||
|
||||
* struct RRational is hidden. [Feature #9513]
|
||||
Use rb_rational_num and rb_rational_den instead.
|
||||
|
||||
* rb_big_new and rb_big_resize takes a size_t instead of long.
|
||||
|
||||
* rb_num2long returns a long instead of SIGNED_VALUE.
|
||||
|
||||
* rb_num2ulong returns an unsigned long instead of VALUE.
|
||||
|
||||
* st hash table uses power-of-two sizes for speed [Feature #9425].
|
||||
Lookups are 10-25% faster if using appropriate hash functions.
|
||||
However, weaknesses in hash distribution can no longer be masked
|
||||
by prime number-sized tables, so extensions may need to tweak
|
||||
hash functions to ensure good distribution.
|
||||
|
||||
* rb_sym2str() added. This is almost same as `rb_id2str(SYM2ID(sym))`
|
||||
but not pinning a dynamic symbol.
|
||||
|
||||
* rb_str_cat_cstr() added. This is same as `rb_str_cat2()`.
|
||||
|
||||
* `rb_str_substr()` and `rb_str_subseq()` will share middle of a string,
|
||||
but not only the end of a string, in the future. Therefore, result
|
||||
strings may not be NUL-terminated, `StringValueCStr()` is needed
|
||||
calling to obtain a NUL-terminated C string.
|
||||
|
||||
* rb_tracepoint_new() supports new internal events accessible only from C:
|
||||
* RUBY_INTERNAL_EVENT_GC_ENTER
|
||||
* RUBY_INTERNAL_EVENT_GC_EXIT
|
||||
r47528
|
||||
|
||||
* rb_hash_delete() now does not call the block given to the current method.
|
||||
|
||||
* rb_extract_keywords() and rb_get_kwargs() exported. See README.EXT
|
||||
for details.
|
||||
|
||||
=== Build system updates
|
||||
|
||||
* jemalloc is optionally supported via `./configure --with-jemalloc`
|
||||
jemalloc may be suitable when system malloc is slow or prone
|
||||
to fragmentation. [Feature #9113]
|
||||
|
||||
=== Implementation changes
|
||||
|
||||
* GC
|
||||
* Most symbols which are returned by String#to_sym and
|
||||
String#intern are GC-able [Feature #9634]
|
||||
* Introduce incremental marking for major GC. [Feature #10137]
|
||||
* Enable lazy sweep on GC caused by malloc().
|
||||
|
||||
* VM
|
||||
* Use frozen string literals for Hash#[] and Hash#[]=
|
||||
* Fast keyword arguments passing [Feature #10440]
|
||||
* Allow to receive huge splatted array by a rest argument
|
||||
[Feature #10440]
|
||||
|
||||
* Process
|
||||
* Process creation methods, such as spawn(), uses vfork() system call.
|
||||
vfork() is faster than fork() when the parent process uses huge memory.
|
Loading…
Reference in a new issue