ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: ruby-core@ruby-lang.org
Subject: [ruby-core:72450] Re: Ruby 2.3.0-preview2 Released
Date: Wed, 23 Dec 2015 03:12:23 +0000	[thread overview]
Message-ID: <20151223031222.GA5009@dcvr.yhbt.net> (raw)
In-Reply-To: <5679FD4B.6080307@atdot.net>

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)

  reply	other threads:[~2015-12-23  2:40 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           ` Eric Wong [this message]
2015-12-24  7:16             ` [ruby-core:72467] " SASADA Koichi
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=20151223031222.GA5009@dcvr.yhbt.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).