You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here's the living checklist of changes needed to support Ruby 2.3.
These changes will go on the 2.3 branch at https://github.com/jruby/jruby/tree/ruby-2.3 and then we will merge to master when we're ready to release 2.3 support in JRuby 9.1.0.0.
Pull requests should be made against the ruby-2.3 branch please!
command line options --debug or --debug=frozen-string-literal enable additional debugging mode which shows created location with at frozen object error (RuntimeError). (https://bugs.ruby-lang.org/issues/11725)
safe navigation operator:
new method call syntax, object&.foo', method #foo is called onobject' if it is not nil.
this is similar to `try!' in Active Support, except:
method name is syntactically required
obj.try! {} # valid
obj&. {} # syntax error
arguments are evaluated only if a call is made:
obj.try!(:foo, bar()) # bar() is always evaluated
obj&.foo(bar()) # bar() is conditionally evaluated
new mode flag File::SHARE_DELETE is available.
this flag means to permit deleting opened file on Windows, but currently
this affect only files opened as binary. (https://bugs.ruby-lang.org/issues/11218)
new option parameter `flags' is added.
this parameter is bitwise-ORed to oflags generated by normal mode argument.
(https://bugs.ruby-lang.org/issues/11253)
Numeric#positive? and Numeric#negative? are added, which return
true when the receiver is positive and negative respectively.
(https://bugs.ruby-lang.org/issues/11151)
Proc
Proc#call (and also #[], #===, #yield) are optimized.
Backtrace doesn't show each methods (show block lines directly).
Array#select!, Array#keep_if, Array#reject!, and Array#delete_if
no longer changes the receiver array instantly every time the
block is called. (https://bugs.ruby-lang.org/issues/10714)
Array#inspect doesn't raise error even if its content returns
a string which is not compatible with Encoding.default_external
as inspected result. (https://bugs.ruby-lang.org/issues/11801) 7f47946
On Windows File::Stat#ino always returned 0, but now returns
BY_HANDLE_FILE_INFORMATION.nFileIndexHigh/Low.
Hash
Hash#inspect doesn't raise error even if its content returns
a string which is not compatible with Encoding.default_external
as inspected result. (https://bugs.ruby-lang.org/issues/11801) 7f47946
Module#define_method and Object.define_singleton_method now
require method body, Proc, Method, or a block, and raise
ArgumentError if no block is given directly. (https://bugs.ruby-lang.org/issues/11283)
Socket#connect_nonblock, Socket#accept_nonblock,
TCPServer#accept_nonblock, UNIXServer#accept_nonblock,
BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock,
BasicSocket#sendmsg_nonblock all support exception: false to return
:wait_readable or :wait_writable symbols instead of raising
IO::WaitReadable or IO::WaitWritable exceptions (b27a2b0)
BasicSocket#recv and BasicSocket#recv_nonblock allow an output
String buffer argument like IO#read and IO#read_nonblock to reduce
GC overhead
OpenSSL
OpenSSL::SSL::SSLSocket#accept_nonblock and
OpenSSL::SSL::SSLSocket#connect_nonblock supports exception: false.
update OpenSSL's .rb parts to match changes in 2.3
test & update jruby-openssl to be >= 0.9.13 (to incorporate above updates)
MRI 2.3 optimizes Proc#call to not allocate a stack frame and not
show up in backtraces. In JRuby, we already did not allocate a
frame, so all that was needed was to omit the call from backtrace.
See https://bugs.ruby-lang.org/issues/11569
For #3479.
We have completed everything we're likely to finish from this list for 9.1. I've filed #3816 for remaining and late-breaking items from MRI's final 2.3.0 NEWS file.
The save navigation operator (&.) is supported since Ruby v2.3.0
(JRuby v9.1.0.0, see jruby/jruby#3479).
So these autocorrection would fail for lower versions, like 9.0.5.0,
which is e.g. used by Travis CI.
Here's the living checklist of changes needed to support Ruby 2.3.
These changes will go on the 2.3 branch at https://github.com/jruby/jruby/tree/ruby-2.3 and then we will merge to master when we're ready to release 2.3 support in JRuby 9.1.0.0.
Pull requests should be made against the
ruby-2.3
branch please!This list is currently based on https://github.com/ruby/ruby/blob/v2_3_0_preview2/NEWS.
Language changes
object&.foo', method #foo is called on
object' if it is not nil.this is similar to `try!' in Active Support, except:
obj.try! {} # valid
obj&. {} # syntax error
obj.try!(:foo, bar()) # bar() is always evaluated
obj&.foo(bar()) # bar() is conditionally evaluated
obj&.attr += 1
<<~
. refer doc/syntax/literals.rdoc for more details. (https://bugs.ruby-lang.org/issues/9098)class Foo end
is no longer a syntax error (see tagged specs in 0304cc7).Core classes updates (outstanding ones only)
(https://bugs.ruby-lang.org/issues/11358)
(https://bugs.ruby-lang.org/issues/11049)
this flag means to permit deleting opened file on Windows, but currently
this affect only files opened as binary. (https://bugs.ruby-lang.org/issues/11218)
this parameter is bitwise-ORed to oflags generated by normal mode argument.
(https://bugs.ruby-lang.org/issues/11253)
what the enumerator has returned instead of nil. (https://bugs.ruby-lang.org/issues/11498)
true when the receiver is positive and negative respectively.
(https://bugs.ruby-lang.org/issues/11151)
Backtrace doesn't show each methods (show block lines directly).
Core classes compatibility issues (excluding feature bug fixes)
no longer changes the receiver array instantly every time the
block is called. (https://bugs.ruby-lang.org/issues/10714)
method on elements beyond the given level. (https://bugs.ruby-lang.org/issues/10748)
a string which is not compatible with Encoding.default_external
as inspected result. (https://bugs.ruby-lang.org/issues/11801) 7f47946
initial_state argument. (https://bugs.ruby-lang.org/issues/10958)
Use a local variable instead to maintain a state. remove "initial_state" argument of Enumerable#{slice_before,chunk} #3490
BY_HANDLE_FILE_INFORMATION.nFileIndexHigh/Low.
a string which is not compatible with Encoding.default_external
as inspected result. (https://bugs.ruby-lang.org/issues/11801) 7f47946
before EOF when conversion takes place. (https://bugs.ruby-lang.org/issues/11444) (866c248)
require method body, Proc, Method, or a block, and raise
ArgumentError if no block is given directly. (https://bugs.ruby-lang.org/issues/11283)
Stdlib updates (outstanding ones only)
Only items relevant to JRuby
TCPServer#accept_nonblock, UNIXServer#accept_nonblock,
BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock,
BasicSocket#sendmsg_nonblock all support
exception: false
to return:wait_readable or :wait_writable symbols instead of raising
IO::WaitReadable or IO::WaitWritable exceptions (b27a2b0)
String buffer argument like IO#read and IO#read_nonblock to reduce
GC overhead
OpenSSL::SSL::SSLSocket#connect_nonblock supports
exception: false
.(https://bugs.ruby-lang.org/issues/11052)
non-bytestream IO such as listen sockets. (975dcc7 and 64638d0)
Stdlib compatibility issues (excluding feature bug fixes)
Only items relevant to JRuby
stopping the coverage tool. implement Coverage.peek_result #3481
The text was updated successfully, but these errors were encountered: