Ruby 2.3.0 リファレンスマニュアル > NEWS for Ruby 2.3.0

NEWS for Ruby 2.3.0

このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

それぞれのエントリーは参照情報があるため短いです。 十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。

2.2.0 以降の変更

言語仕様の変更

          obj.try! {} # valid
          obj&. {}    # syntax error
          obj.try!(:foo, bar())  # bar() は常に評価されます
          obj&.foo(bar())        # bar() は条件付きで評価されます
          obj&.attr += 1
      "Yuki".starts_with?("Y")
      # => NoMethodError: undefined method `starts_with?' for "Yuki":String
      #    Did you mean?  start_with?

組み込みクラスの更新

組み込みクラスの互換性 (機能追加とバグ修正を除く)

* Array

* Enumerable

* File::Stat

* Hash

* IO

* Module

* pack/unpack (Array/String)

Stdlib updates (outstanding ones only)

* Logger

* io/wait

* Net::FTP

* nkf

* ObjectSpace (objspace)

* OpenSSL

* Pathname

* Socket

* StringIO

* timeout

Stdlib compatibility issues (excluding feature bug fixes)

* ext/coverage/coverage.c

* Fiddle

* io-console

* lib/base64.rb

* lib/drb/drb.rb

* lib/matrix.rb

* lib/webrick/utils.rb

* Net::FTP

* Net::HTTP

* Net::Telnet

* Psych

* Rake

* RDoc

https://github.com/rdoc/rdoc/blob/master/History.rdoc#421--2015-12-22

* RubyGems

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

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

* CGI.escapeHTML is optimized with C extension.

https://github.com/ruby/ruby/pull/1164