ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: SASADA Koichi <ko1@atdot.net>
To: ruby-core@ruby-lang.org
Subject: [ruby-core:72467] Re: Ruby 2.3.0-preview2 Released
Date: Thu, 24 Dec 2015 16:16:54 +0900	[thread overview]
Message-ID: <567B9BE6.9030708@atdot.net> (raw)
In-Reply-To: <20151223031222.GA5009@dcvr.yhbt.net>

Thank you for your summary.
I added entries in NEWS (r53268).

For release announcement like that
https://www.ruby-lang.org/en/news/2015/12/11/ruby-2-3-0-preview2-released/
I'm afraid that your summary is too long.

So that I tried to summarize typical achievements.

<2.3.0preview2>
Ruby 2.3 includes many performance tuning fixes. For example, optimizing
Proc#call, reconsidering method entry data structure, introducing new
table data structure, machine code level tuning for object allocation
and method calling code, and many other optimizations.
</2.3.0preview2>

<2.3.0>
Ruby 2.3 includes many performance tuning fixes. For example, optimizing
Proc#call, reconsidering method entry data structure, introducing new
table data structure, machine code level tuning for object allocation
and method calling code, smarter instance variable data structure,
Socket and I/O allow to use "exception:" keywords for high-performance
non-blocking I/O and so on. Check NEWS (Implementation improvements
section) for details.
</2.3.0>

Corrections are welcome.

(Proc#call is too trivial?)

https://github.com/ruby/www.ruby-lang.org/pull/1250
is prepared announcement by naruse-san.


On 2015/12/23 12:12, Eric Wong wrote:
> OK.  I will try (maybe Zachary and others can help edit)...
> 
> 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.
> https://bugs.ruby-lang.org/issues/11769
> (ed. I'm really not noticing this)
> 
> Instance variables on non-pure Ruby classes (T_DATA, T_FILE,
> etc..) is less expensive to store than before.
> https://bugs.ruby-lang.org/issues/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.
> https://bugs.ruby-lang.org/issues/10585
> 
> Fiddle::Function#call releases the GVL, allowing parallel execution
> when calling 3rd-party libraries.  This may expose threading bugs
> in existing code using Fiddle, but Fiddle usage is currently uncommon.
> https://bugs.ruby-lang.org/issues/11607
> 
> The Set class got several speedps: r52591 and
> https://bugs.ruby-lang.org/issues/10754
> 
> 
> == Socket and I/O related changes:
> 
> All non-blocking I/O (including socket) methods allow
> `exception: false' to suppress expensive and noisy exceptions
> in common usage:
> https://bugs.ruby-lang.org/issues/10532
> https://bugs.ruby-lang.org/issues/11229
> 
> Furthermore, calling overhead of most of these keyword-using I/O
> methods is reduced by avoiding the inefficient C API to parse keywords:
> https://bugs.ruby-lang.org/issues/11339
> 
> Finally, 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.
> https://bugs.ruby-lang.org/issues/11044
> 
> Additionally, the Socket#recv* methods allow an optional
> destination buffer to reduce GC pressure, based on the
> existing behavior of IO#read* methods.
> https://bugs.ruby-lang.org/issues/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
> https://bugs.ruby-lang.org/issues/11081
> https://bugs.ruby-lang.org/issues/11377
> (probably not worth mentioning since it's Linux-only)
> 
> Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>
> 


-- 
// SASADA Koichi at atdot dot net

  reply	other threads:[~2015-12-24  6:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-11  1:40 [ruby-core:72045] Ruby 2.3.0-preview2 Released NARUSE, Yui
2015-12-11  1:48 ` [ruby-core:72047] " SASADA Koichi
2015-12-11  9:06   ` [ruby-core:72054] " Eric Wong
2015-12-22 13:53     ` [ruby-core:72436] " SASADA Koichi
2015-12-22 20:05       ` [ruby-core:72440] " Eric Wong
2015-12-23  1:47         ` [ruby-core:72448] " SASADA Koichi
2015-12-23  3:12           ` [ruby-core:72450] " Eric Wong
2015-12-24  7:16             ` SASADA Koichi [this message]
2015-12-24  8:52               ` [ruby-core:72468] " Eric Wong
2015-12-18  4:13 ` [ruby-core:72336] " Joseph Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=567B9BE6.9030708@atdot.net \
    --to=ruby-core@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).