From 97ad5f1a95fe0d385501ebbc061752b269a98461 Mon Sep 17 00:00:00 2001 From: ko1 Date: Thu, 24 Dec 2015 05:59:17 +0000 Subject: * NEWS: rename "Implementation changes" section to "Supported platform changes" section. * NEWS: add "Implementation improvements" and add several entries. * NEWS: add NEWS entries by Eric Wong. [ruby-core:72450] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- NEWS | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 92a770a0f3..7ea12b88d0 100644 --- a/NEWS +++ b/NEWS @@ -234,6 +234,7 @@ with all sufficient information, see the ChangeLog file or Redmine * 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. @@ -246,6 +247,7 @@ with all sufficient information, see the ChangeLog file or Redmine 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 #11229] [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 @@ -338,7 +340,7 @@ with all sufficient information, see the ChangeLog file or Redmine === Build system updates -=== Implementation changes +=== Supported platform changes * OS/2 is no longer supported @@ -347,3 +349,59 @@ with all sufficient information, see the ChangeLog file or Redmine * 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 speedps. + [Misc #10754], [r52591] + +* Socket and I/O related improvements + + * All non-blocking I/O (including socket) methods allow + `exception: false' to suppress expensive and noisy exceptions + in common usage. Feature #10532 [Feature #11229] + + * Calling overhead of most of these keyword-using I/O methods 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. This has the additional + benefit of quieter $DEBUG output in addition to reducing expensive + exceptions. [Feature #11044] + + * The Socket#recv* methods allow an optional destination + buffer to reduce GC pressure, based on the existing behavior + of IO#read* methods. [Feature #11242] + + * (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] -- cgit v1.2.3