ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:72045] Ruby 2.3.0-preview2 Released
@ 2015-12-11  1:40 NARUSE, Yui
  2015-12-11  1:48 ` [ruby-core:72047] " SASADA Koichi
  2015-12-18  4:13 ` [ruby-core:72336] " Joseph Jones
  0 siblings, 2 replies; 10+ messages in thread
From: NARUSE, Yui @ 2015-12-11  1:40 UTC (permalink / raw)
  To: ruby-core@ruby-lang.org

We are pleased to announce the release of Ruby 2.3.0-preview2.

Ruby 2.3.0-preview2 is the second preview of Ruby 2.3.0.
Many new features and improvements are included.

A [Frozen String Literal Pragma](https://bugs.ruby-lang.org/issues/11473)
is introduced.
With Ruby 2.1, `"str".freeze` has been optimized to reduce object allocation.
Ruby 2.3 introduces a new magic comment and command line option to
freeze all string literals in the source files.
Additionally for debugging, you can get where the object is created on
`"can't modify frozen String"` error by
`--debug=frozen-string-literal` command line option.

A [safe navigation operator](https://bugs.ruby-lang.org/issues/11537)
([so-called lonely operator](https://instagram.com/p/-M9l6mRPLR/)) `&.`,
which already exists in C#, Groovy, and Swift, is introduced to ease
`nil` handling as `obj&.foo`. `Array#dig` and `Hash#dig` are also added.

The [did_you_mean gem is bundled](https://bugs.ruby-lang.org/issues/11252).
The did_you_mean gem
shows the candidates on the `NameError` and `NoMethodError` to ease
debugging.

[RubyVM::InstructionSequence#to_binary and .load_from_binary]
(https://bugs.ruby-lang.org/issues/11788) are introduced as
experimental feature. With these features, we can make a ISeq
(bytecode) pre-compilation system.

Ruby 2.3 includes many performance tuning fixes.
For example, [optimize Proc#call] (https://bugs.ruby-lang.org/issues/11569),
[reconsider method entry data structure]
(https://bugs.ruby-lang.org/issues/11278),
[introducing new table data structure]
(https://bugs.ruby-lang.org/issues/11420),
machine code level tuning for object allocation and method calling code,
and other many optimizations.

Try and enjoy programming with Ruby 2.3.0-preview2, and report us your
knowledge!

## Notable Changes since 2.2

See [NEWS](https://github.com/ruby/ruby/blob/v2_3_0_preview2/NEWS) and
[ChangeLog](https://github.com/ruby/ruby/blob/v2_3_0_preview2/ChangeLog)
for detail.

With those changes, [1097 files changed, 97466 insertions(+), 58685
deletions(-)](https://github.com/ruby/ruby/compare/v2_2_0...v2_3_0_preview2)
since Ruby 2.2.0!

## Download

* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.tar.bz2>
  * SIZE:   14126752 bytes
  * SHA1:   7e717ef7a0a1523ad696b5fe693f7f7a613a3810
  * SHA256: e9b0464e50b2e5c31546e6b8ca8cad71fe2d2146ccf88b7419bbe9626af741cb
  * SHA512: e397f321d4338edba8d005d871408775f03d975da90c8abcfdb457a1bc7e6c87efe58c53b2c3bc122e9f58f619767b271bcc8d5d9663ed4b4288c60556e8d288
* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.tar.gz>
  * SIZE:   17623519 bytes
  * SHA1:   2deaf3ccbbfc5e08d3d840a4f1c33ff5f62f931d
  * SHA256: cb1c745bda33ba9e812b48c87852571ef6486f985c5e6ff4508a137d1c9734a3
  * SHA512: 83022f99775eb139beec281d59029dcc7c59de1e313182685b0a785334ac53d0c445212460d00d065169b922949263f30a1f981e19fc6e59814e79e6e53ae8e0
* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.tar.xz>
  * SIZE:   11249780 bytes
  * SHA1:   e1dfca06cd3c2cf6456a7feb0b1cd0752bde1a3b
  * SHA256: 7c3119268af87c137f415301b299281762453ad78f86e35562be014dabd67b11
  * SHA512: ab3376145d95a2188e6345984f0e5592c8d33515d7046a2ab2565dc418fa2306cdcf797aae9494d4d10446ada54ba638d8a8ad2d4b7510544d7eaea3de4faa87
* <https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0-preview2.zip>
  * SIZE:   19841531 bytes
  * SHA1:   db7fa5291d90e0a9c6f75c0cd068bc54050520d6
  * SHA256: 90d036fd1ec40aa8f5493821ac162bf69f505c5977db54afe53b8bf689d79b9d
  * SHA512: 05784df420018aaae7d09d41e872df708e861cacc74dc8ee97a9e3ac7458cb12b937523ad6def34d5ae2890a0cf037a8d61e365beb88d28acd84879b9391ad65

## Release Comment

See also the release schedule and other information:

[ReleaseEngineering23](https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering23)


-- 
NARUSE, Yui  <naruse@airemix.jp>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72047] Re: Ruby 2.3.0-preview2 Released
  2015-12-11  1:40 [ruby-core:72045] Ruby 2.3.0-preview2 Released NARUSE, Yui
@ 2015-12-11  1:48 ` SASADA Koichi
  2015-12-11  9:06   ` [ruby-core:72054] " Eric Wong
  2015-12-18  4:13 ` [ruby-core:72336] " Joseph Jones
  1 sibling, 1 reply; 10+ messages in thread
From: SASADA Koichi @ 2015-12-11  1:48 UTC (permalink / raw)
  To: ruby-core

Please add your optimizations before RC1.
(maybe Eric Wong wants to add)

On 2015/12/11 10:40, NARUSE, Yui wrote:
> Ruby 2.3 includes many performance tuning fixes.
> For example, [optimize Proc#call] (https://bugs.ruby-lang.org/issues/11569),
> [reconsider method entry data structure]
> (https://bugs.ruby-lang.org/issues/11278),
> [introducing new table data structure]
> (https://bugs.ruby-lang.org/issues/11420),
> machine code level tuning for object allocation and method calling code,
> and other many optimizations.


-- 
// SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72054] Re: Ruby 2.3.0-preview2 Released
  2015-12-11  1:48 ` [ruby-core:72047] " SASADA Koichi
@ 2015-12-11  9:06   ` Eric Wong
  2015-12-22 13:53     ` [ruby-core:72436] " SASADA Koichi
  0 siblings, 1 reply; 10+ messages in thread
From: Eric Wong @ 2015-12-11  9:06 UTC (permalink / raw)
  To: ruby-core

SASADA Koichi <ko1@atdot.net> wrote:
> Please add your optimizations before RC1.
> (maybe Eric Wong wants to add)

Most I've done are pretty minor or for rarely-used corner case.
Not sure which are really worth mentioning and public ones are
already in NEWS.

* compile optimized case dispatch for all special constant literals
  (Aaron Patterson)
  https://bugs.ruby-lang.org/issues/11769

* Fiddle::Function#call releases the GVL
  https://bugs.ruby-lang.org/issues/11607
  (Just added to NEWS)

* All non-blocking IO and socket methods allow `exception: false'
  https://bugs.ruby-lang.org/issues/10532
  https://bugs.ruby-lang.org/issues/11229
  ...and reduced calling overhead of these methods:
  https://bugs.ruby-lang.org/issues/11339
  (Already in NEWS)

* Socket#recv* methods allow a destination buffer to reduce GC pressure
  https://bugs.ruby-lang.org/issues/11242
  (Already in NEWS)

* stdlib updated to use exception-free non-blocking I/O
  https://bugs.ruby-lang.org/issues/11044

* (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

* speedup big structs (Yura Sokolov)
  https://bugs.ruby-lang.org/issues/10585

* memory reductions for instance variables in non-pure-Ruby classes
  (T_DATA, T_FILE, etc...)
  https://bugs.ruby-lang.org/issues/11170

* speed up Set#include?  (Ismael Abreu)
  https://bugs.ruby-lang.org/issues/10754

Improvements by a thousand cuts, maybe :)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72336]  Ruby 2.3.0-preview2 Released
  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-18  4:13 ` Joseph Jones
  1 sibling, 0 replies; 10+ messages in thread
From: Joseph Jones @ 2015-12-18  4:13 UTC (permalink / raw)
  To: Ruby developers; +Cc: ruby-core@ruby-lang.org

[-- Attachment #1: Type: text/plain, Size: 3549 bytes --]

Joseph Jones liked your message with Boxer. On December 10, 2015 at 18:40:14 MST, NARUSE, Yui <naruse@airemix.jp> wrote:We are pleased to announce the release of Ruby 2.3.0-preview2.Ruby 2.3.0-preview2 is the second preview of Ruby 2.3.0.Many new features and improvements are included.A [Frozen String Literal Pragma](https://bugs.ruby-lang.org/issues/11473)is introduced.With Ruby 2.1, `"str".freeze` has been optimized to reduce object allocation.Ruby 2.3 introduces a new magic comment and command line option tofreeze all string literals in the source files.Additionally for debugging, you can get where the object is created on`"can't modify frozen String"` error by`--debug=frozen-string-literal` command line option.A [safe navigation operator](https://bugs.ruby-lang.org/issues/11537)([so-called lonely operator](https://instagram.com/p/-M9l6mRPLR/)) `&.`,which already exists in C#, Groovy, and Swift, is introduced to ease`nil` handling as `obj&.foo`. `Array#dig` and `Hash#dig` are also added.The [did_you_mean gem is bundled](https://bugs.ruby-lang.org/issues/11252).The did_you_mean gemshows the candidates on the `NameError` and `NoMethodError` to easedebugging.[RubyVM::InstructionSequence#to_binary and .load_from_binary](https://bugs.ruby-lang.org/issues/11788) are introduced asexperimental feature. With these features, we can make a ISeq(bytecode) pre-compilation system.Ruby 2.3 includes many performance tuning fixes.For example, [optimize Proc#call] (https://bugs.ruby-lang.org/issues/11569),[reconsider method entry data structure](https://bugs.ruby-lang.org/issues/11278),[introducing new table data structure](https://bugs.ruby-lang.org/issues/11420),machine code level tuning for object allocation and method calling code,and other many optimizations.Try and enjoy programming with Ruby 2.3.0-preview2, and report us yourknowledge!## Notable Changes since 2.2See [NEWS](https://github.com/ruby/ruby/blob/v2_3_0_preview2/NEWS) and[ChangeLog](https://github.com/ruby/ruby/blob/v2_3_0_preview2/ChangeLog)for detail.With those changes, [1097 files changed, 97466 insertions(+), 58685deletions(-)](https://github.com/ruby/ruby/compare/v2_2_0...v2_3_0_preview2)since Ruby 2.2.0!## Download*  * SIZE: 14126752 bytes * SHA1: 7e717ef7a0a1523ad696b5fe693f7f7a613a3810 * SHA256: e9b0464e50b2e5c31546e6b8ca8cad71fe2d2146ccf88b7419bbe9626af741cb * SHA512: e397f321d4338edba8d005d871408775f03d975da90c8abcfdb457a1bc7e6c87efe58c53b2c3bc122e9f58f619767b271bcc8d5d9663ed4b4288c60556e8d288*  * SIZE: 17623519 bytes * SHA1: 2deaf3ccbbfc5e08d3d840a4f1c33ff5f62f931d * SHA256: cb1c745bda33ba9e812b48c87852571ef6486f985c5e6ff4508a137d1c9734a3 * SHA512: 83022f99775eb139beec281d59029dcc7c59de1e313182685b0a785334ac53d0c445212460d00d065169b922949263f30a1f981e19fc6e59814e79e6e53ae8e0*  * SIZE: 11249780 bytes * SHA1: e1dfca06cd3c2cf6456a7feb0b1cd0752bde1a3b * SHA256: 7c3119268af87c137f415301b299281762453ad78f86e35562be014dabd67b11 * SHA512: ab3376145d95a2188e6345984f0e5592c8d33515d7046a2ab2565dc418fa2306cdcf797aae9494d4d10446ada54ba638d8a8ad2d4b7510544d7eaea3de4faa87*  * SIZE: 19841531 bytes * SHA1: db7fa5291d90e0a9c6f75c0cd068bc54050520d6 * SHA256: 90d036fd1ec40aa8f5493821ac162bf69f505c5977db54afe53b8bf689d79b9d * SHA512: 05784df420018aaae7d09d41e872df708e861cacc74dc8ee97a9e3ac7458cb12b937523ad6def34d5ae2890a0cf037a8d61e365beb88d28acd84879b9391ad65## Release CommentSee also the release schedule and other information:[ReleaseEngineering23](https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/ReleaseEngineering23)-- NARUSE, Yui      

[-- Attachment #2: Type: text/html, Size: 4616 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72436] Re: Ruby 2.3.0-preview2 Released
  2015-12-11  9:06   ` [ruby-core:72054] " Eric Wong
@ 2015-12-22 13:53     ` SASADA Koichi
  2015-12-22 20:05       ` [ruby-core:72440] " Eric Wong
  0 siblings, 1 reply; 10+ messages in thread
From: SASADA Koichi @ 2015-12-22 13:53 UTC (permalink / raw)
  To: ruby-core

On 2015/12/11 18:06, Eric Wong wrote:
> SASADA Koichi <ko1@atdot.net> wrote:
>> Please add your optimizations before RC1.
>> (maybe Eric Wong wants to add)
> 
> Most I've done are pretty minor or for rarely-used corner case.
> Not sure which are really worth mentioning and public ones are
> already in NEWS.

Sorry, I missed your post.

Maybe you can add entries which you *WANT* to add :)
Can you write sentences for particular topics?
(you are absolutely better English writer than me)

> 
> * compile optimized case dispatch for all special constant literals
>   (Aaron Patterson)
>   https://bugs.ruby-lang.org/issues/11769
> 
> * Fiddle::Function#call releases the GVL
>   https://bugs.ruby-lang.org/issues/11607
>   (Just added to NEWS)
> 
> * All non-blocking IO and socket methods allow `exception: false'
>   https://bugs.ruby-lang.org/issues/10532
>   https://bugs.ruby-lang.org/issues/11229
>   ...and reduced calling overhead of these methods:
>   https://bugs.ruby-lang.org/issues/11339
>   (Already in NEWS)
> 
> * Socket#recv* methods allow a destination buffer to reduce GC pressure
>   https://bugs.ruby-lang.org/issues/11242
>   (Already in NEWS)
> 
> * stdlib updated to use exception-free non-blocking I/O
>   https://bugs.ruby-lang.org/issues/11044
> 
> * (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
> 
> * speedup big structs (Yura Sokolov)
>   https://bugs.ruby-lang.org/issues/10585
> 
> * memory reductions for instance variables in non-pure-Ruby classes
>   (T_DATA, T_FILE, etc...)
>   https://bugs.ruby-lang.org/issues/11170
> 
> * speed up Set#include?  (Ismael Abreu)
>   https://bugs.ruby-lang.org/issues/10754
> 
> Improvements by a thousand cuts, maybe :)
> 



-- 
// SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72440] Re: Ruby 2.3.0-preview2 Released
  2015-12-22 13:53     ` [ruby-core:72436] " SASADA Koichi
@ 2015-12-22 20:05       ` Eric Wong
  2015-12-23  1:47         ` [ruby-core:72448] " SASADA Koichi
  0 siblings, 1 reply; 10+ messages in thread
From: Eric Wong @ 2015-12-22 20:05 UTC (permalink / raw)
  To: ruby-core

SASADA Koichi <ko1@atdot.net> wrote:
> On 2015/12/11 18:06, Eric Wong wrote:
> > SASADA Koichi <ko1@atdot.net> wrote:
> >> Please add your optimizations before RC1.
> >> (maybe Eric Wong wants to add)
> > 
> > Most I've done are pretty minor or for rarely-used corner case.
> > Not sure which are really worth mentioning and public ones are
> > already in NEWS.
> 
> Sorry, I missed your post.
> 
> Maybe you can add entries which you *WANT* to add :)

I think I added everything that is a user-visible change.

> Can you write sentences for particular topics?
> (you are absolutely better English writer than me)

I'm not sure what to write about (maybe I never know :x),
and we try to keep NEWS short.

This feels like the most boring release in many years
(not a bad thing, I guess it's a sign the implementation has
mostly matured)

Maybe:

--- a/NEWS
+++ b/NEWS
@@ -346,3 +346,6 @@ with all sufficient information, see the ChangeLog file.
 * Borland-C is no longer supported
 
 * Haiku now stable and best effort
+
+* Numerous small optimizations throughout the core VM and stdlib to
+  reduce memory usage and improve performance a tiny amount.

I'm not sure if we should raise the expectations of users too much.
Often these optimizations are difficult or impossible to measure
in real (big) projects.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72448] Re: Ruby 2.3.0-preview2 Released
  2015-12-22 20:05       ` [ruby-core:72440] " Eric Wong
@ 2015-12-23  1:47         ` SASADA Koichi
  2015-12-23  3:12           ` [ruby-core:72450] " Eric Wong
  0 siblings, 1 reply; 10+ messages in thread
From: SASADA Koichi @ 2015-12-23  1:47 UTC (permalink / raw)
  To: ruby-core

On 2015/12/23 5:05, Eric Wong wrote:
> I'm not sure what to write about (maybe I never know :x),
> and we try to keep NEWS short.

I mean adding your (and others) efforts to release announcement, not
NEWS. We found that many people will know new features in release
announcement and don't read NEWS file.

So using your proposal for NEWS, how about that?

<ann>
Ruby 2.3 includes many performance tuning fixes.
For example, [optimize Proc#call]
(https://bugs.ruby-lang.org/issues/11569), [reconsider method entry data
structure] (https://bugs.ruby-lang.org/issues/11278), [introducing new
table data structure] (https://bugs.ruby-lang.org/issues/11420),
machine code level tuning for object allocation and method calling code,
and numerous small optimizations throughout the core VM and stdlib to
reduce memory usage and improve performance a tiny amount [ruby-core:72054].
</ann>

-- 
// SASADA Koichi at atdot dot net

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72450] Re: Ruby 2.3.0-preview2 Released
  2015-12-23  1:47         ` [ruby-core:72448] " SASADA Koichi
@ 2015-12-23  3:12           ` Eric Wong
  2015-12-24  7:16             ` [ruby-core:72467] " SASADA Koichi
  0 siblings, 1 reply; 10+ messages in thread
From: Eric Wong @ 2015-12-23  3:12 UTC (permalink / raw)
  To: ruby-core

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)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72467] Re: Ruby 2.3.0-preview2 Released
  2015-12-23  3:12           ` [ruby-core:72450] " Eric Wong
@ 2015-12-24  7:16             ` SASADA Koichi
  2015-12-24  8:52               ` [ruby-core:72468] " Eric Wong
  0 siblings, 1 reply; 10+ messages in thread
From: SASADA Koichi @ 2015-12-24  7:16 UTC (permalink / raw)
  To: ruby-core

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ruby-core:72468] Re: Ruby 2.3.0-preview2 Released
  2015-12-24  7:16             ` [ruby-core:72467] " SASADA Koichi
@ 2015-12-24  8:52               ` Eric Wong
  0 siblings, 0 replies; 10+ messages in thread
From: Eric Wong @ 2015-12-24  8:52 UTC (permalink / raw)
  To: Ruby developers

SASADA Koichi <ko1@atdot.net> wrote:
> Thank you for your summary.
> I added entries in NEWS (r53268).

OK, I trimmed some redundancy to avoid double mentions in r53277

> I'm afraid that your summary is too long.

Oops :x

> Corrections are welcome.
> 
> (Proc#call is too trivial?)

Seems fine.  Maybe mention the CGI.escapeHTML change, too...

Btw, what about String#encode?  Couldn't the subtle difference
between HTML and XML escaping be combined into transcode.c
instead of adding an extra shared object.  Extra .so means
more relocations and disk seeks at loading.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-12-24  8:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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             ` [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

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).