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 (kankan.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (Postfix) with ESMTP id 98DAD17DC3CC for ; Wed, 23 Dec 2015 11:40:07 +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 23A73B5D831 for ; Wed, 23 Dec 2015 12:12:28 +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 63EE618CC7B1 for ; Wed, 23 Dec 2015 12:12:28 +0900 (JST) Received: from [221.186.184.76] (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 3A05F1204F5; Wed, 23 Dec 2015 12:12:28 +0900 (JST) X-Original-To: ruby-core@ruby-lang.org Delivered-To: ruby-core@ruby-lang.org Received: from dcvr.yhbt.net (dcvr.yhbt.net [64.71.152.64]) by neon.ruby-lang.org (Postfix) with ESMTP id A697C1204A0 for ; Wed, 23 Dec 2015 12:12:23 +0900 (JST) Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 22CD31F7CC; Wed, 23 Dec 2015 03:12:23 +0000 (UTC) Date: Wed, 23 Dec 2015 03:12:23 +0000 From: Eric Wong To: ruby-core@ruby-lang.org Message-ID: <20151223031222.GA5009@dcvr.yhbt.net> References: <566A2B71.4010708@atdot.net> <20151211090624.GA30536@dcvr.yhbt.net> <567955CF.8080602@atdot.net> <20151222200519.GA22866@dcvr.yhbt.net> <5679FD4B.6080307@atdot.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <5679FD4B.6080307@atdot.net> X-ML-Name: ruby-core X-Mail-Count: 72450 Subject: [ruby-core:72450] 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" 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)