From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: poffice@blade.nagaokaut.ac.jp Delivered-To: poffice@blade.nagaokaut.ac.jp Received: from kankan.nagaokaut.ac.jp (smtp.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (Postfix) with ESMTP id 888C619E003E for ; Thu, 24 Dec 2015 15:44:37 +0900 (JST) Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id 0A01AB5D87E for ; Thu, 24 Dec 2015 16:17:01 +0900 (JST) Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by voscc.nagaokaut.ac.jp (Postfix) with ESMTP id 8DBAA18CC7AF for ; Thu, 24 Dec 2015 16:17:01 +0900 (JST) Received: from [221.186.184.76] (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 490A9120568; Thu, 24 Dec 2015 16:16:58 +0900 (JST) X-Original-To: ruby-core@ruby-lang.org Delivered-To: ruby-core@ruby-lang.org Received: from sakura2.atdot.net (www4150ue.sakura.ne.jp [219.94.244.164]) by neon.ruby-lang.org (Postfix) with ESMTP id 90E1F120530 for ; Thu, 24 Dec 2015 16:16:54 +0900 (JST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by sakura2.atdot.net (Postfix) with ESMTP id B0B211180B6; Thu, 24 Dec 2015 16:16:53 +0900 (JST) To: ruby-core@ruby-lang.org References: <566A2B71.4010708@atdot.net> <20151211090624.GA30536@dcvr.yhbt.net> <567955CF.8080602@atdot.net> <20151222200519.GA22866@dcvr.yhbt.net> <5679FD4B.6080307@atdot.net> <20151223031222.GA5009@dcvr.yhbt.net> From: SASADA Koichi X-Enigmail-Draft-Status: N1110 Message-ID: <567B9BE6.9030708@atdot.net> Date: Thu, 24 Dec 2015 16:16:54 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20151223031222.GA5009@dcvr.yhbt.net> X-ML-Name: ruby-core X-Mail-Count: 72467 Subject: [ruby-core:72467] Re: Ruby 2.3.0-preview2 Released X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "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.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. 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: > > -- // SASADA Koichi at atdot dot net