From: Eric Wong Date: 2015-12-23T03:12:23+00:00 Subject: [ruby-core:72450] Re: Ruby 2.3.0-preview2 Released 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: