-
-
Notifications
You must be signed in to change notification settings - Fork 942
Description
This issue tracks the new features and failing specs/tests we did not get implemented in time for release of Ruby 2.4 support in JRuby 9.2. We will work with users to get as many of these remaining features implemented as possible.
See #4293 for the original 2.4 support issue.
The checklist below is transferred from #4293 based on MRI's NEWS. It is only as complete as that file, so see also the tags and excludes from specs and tests associated with this issue, and see other issues linked to this one.
Language changes
-
Refinements is enabled at method by Symbol#to_proc. Feature #9451
-
Refinements is enabled with Kernel#send and BasicObject#__send__. Feature #11476
Core classes updates (outstanding ones only)
-
Module
- Module.used_modules Feature #7418
- Module#refine accepts a module as the argument now. Feature #12534
-
Process
- Support CLOCK_MONOTONIC_RAW_APPROX, CLOCK_UPTIME_RAW, and CLOCK_UPTIME_RAW_APPROX which are introduced by macOS 10.12.
-
Regexp
- meta character \X matches Unicode 9.0 characters with some workarounds for UTR Allow disabling ENV write-through to the real environment [JRUBY-5934] #51 Unicode Emoki, Version 4.0 emoji zwj sequences ([2.4] New Unicode 9.0, case-folding, other character logic #4731)
- Update Onigmo 6.0.0 (we have never incorporated all of Onigmo's additions into Joni). This includes at least support for $~, the absent operator.
-
Regexp/String: Updated Unicode version from 8.0.0 to 9.0.0 Feature #12513
-
String
- String#upcase, String#downcase, String#capitalize, String#swapcase and their bang variants work for all of Unicode, and are no longer limited to ASCII. Supported encodings are UTF-8, UTF-16BE/LE, UTF-32BE/LE, and ISO-8859-1~16. Variations are available with options. See the documentation of String#downcase for details. Feature #10085 (Released in JRuby 9.2)
-
Symbol
- Symbol#upcase, Symbol#downcase, Symbol#capitalize, and Symbol#swapcase now work for all of Unicode. See the documentation of String#downcase for details. Feature #10085 ([2.4] New Unicode 9.0, case-folding, other character logic #4731) (Released in JRuby 9.2)
-
TracePoint
- TracePoint#callee_id Feature #12747
Stdlib updates (only items that need specific attention in JRuby)
-
Readline
- Readline.quoting_detection_proc and Readline.quoting_detection_proc= Feature #12659
Compatibility issues (excluding feature bug fixes)
- String/Symbol#upcase/downcase/swapcase/capitalize(!) now work for all of Unicode, not only for ASCII. Feature #10085 ([2.4] New Unicode 9.0, case-folding, other character logic #4731) (Released in JRuby 9.2)
Implementation improvements
-
In some condition,
[x, y].maxand[x, y].minare optimized so that a temporal array is not created. The concrete condition is an implementation detail: currently, the array literal must have no splat, must have at least one expression but literal, the length must be <= 0x100, and Array#max and min must not be redefined. It will work in most casual and real-life use case where it is written with intent toMath.max(x, y). -
Thread deadlock detection now shows their backtrace and dependency. Feature #8214
-
st_table (st.c) internal data structure is improved. Feature #12142
-
Rational is extensively optimized. Feature #12484