JRuby 9.2.0.0 Released
Thursday, May 24 2018
The JRuby community is pleased to announce the release of JRuby 9.2.0.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.2.x is our new major version of JRuby. It is expected to be compatible with Ruby 2.5.x and stay in sync with C Ruby. JRuby 9.2.0.0 is our first release for 2.5 support.
If you do find issues then report them on using our issue tracker at https://github.com/jruby/jruby/issues. We also encourage users to join our IRC channel (#jruby on Freenode) and mailing lists. You may also follow @jruby on Twitter for updates.
Highlights:
- Ruby 2.5 language and stdlib support
- Improved support for non-ASCII identifiers and symbols
- Improved Ruby method call performance
- 225 issues fixed for 9.2.0.0
Github Issues resolved for 9.2.0.0
- #5184 - `true.dup` and `false.dup` blow up (Inconsistent with MRI)
- #5183 - [ji] support Java time APIs with Time/Date/DateTime
- #5181 - deprecate jruby/core_ext Class#subclasses
- #5180 - [ji] RubyString implements CharSequence
- #5176 - upgrade jruby-openssl to 0.10.0
- #5173 - Update json + tests to 2.1 and update excludes.
- #5170 - Clone frame and block before proceeding into class_exec logic.
- #5168 - Remove hack for FileUtils.mv due to incorrect error raised from File.rename
- #5167 - IO.copy_stream doesn't accept objects that respond to #readpartial
- #5161 - [ji] lazy loading of Java (proxy) class extensions
- #5160 - Inconsistencies with MRI: `FrozenError (can't modify frozen array)`
- #5158 - fix resolv on windows
- #5151 - Bytelist love merge
- #5149 - Fix TestLoad#test_symlinked_jar
- #5146 - Handle exception cause with null message
- #5136 - Support overriding `Exception#message`
- #5134 - Raising SIGTERM SignalException returns wrong process exit code
- #5129 - Fix Enumerable#uniq for entry pair
- #5124 - :newline option to File.open implies text mode now. (Part of #5118)
- #5121 - Require real path
- #5117 - Revert "Require real path"
- #5116 - Range should raise TypeError if necessary method is not defined
- #5113 - Numeric#clone and #dup no longer raises TypeError
- #5110 - DateTime.jd doesn't set sec_fraction with 9.2.0.0-SNAPSHOT
- #5109 - Require real path
- #5108 - Thread.report_on_exception default value is now true
- #5107 - Fix failed Ruby 2.5 ruby/spec tests for String
- #5106 - Fix RubyString instances to raise FrozenError exceptions when mutations are attempted in debug mode…
- #5105 - Add Pathname#glob
- #5102 - Freeze Complex and Rational
- #5101 - Fix Complex#finite? and Complex#infinite? failing tests
- #5096 - Enumerable#any?, all?, none? and one? now accept a pattern argument
- #5093 - upgrade joda-time library to latest 2.9.9
- #5092 - DateTime.jd returns incorrect times with 9.2.0.0-SNAPSHOT
- #5090 - SecureRandom.alphanumeric implemented.
- #5089 - Implement fetch for Thread.current
- #5088 - Use com.jcraft.jzlib.JZlib instead of hacking the internals of java.util.zip.CRC32
- #5087 - Add Integer#allbits?, Integer#anybits? and Integer#nobits?
- #5083 - Fix time interval test
- #5079 - Add Method#=== that invokes #call
- #5076 - redo date.rb (most) parts in native
- #5074 - Fix file descriptor leak in resolv.rb
- #5071 - Better use of ThreadContext constants
- #5065 - Parallel exception hierarchy for Java
- #5064 - Update ruby/spec
- #5063 - Generify IRubyObject.toJava to make it more pleasant to use.
- #5062 - Regression or bad merge in string interpolation
- #5061 - Add keyword_init option to Struct.new
- #5056 - Time#at receives 3rd argument which specifies the unit of 2nd argument
- #5055 - [ruby-2.5] Implement String#delete_suffix
- #5051 - Remove mathn.rb from stdlib
- #5050 - refactor annotation-binder generated populators
- #5047 - Module#define_method, alias_method, undef_method, remove_method are now public
- #5046 - Add Process::last_status method
- #5043 - Module#attr, attr_accessor, attr_reader, attr_writer are now public
- #5042 - Deprecate Data class
- #5039 - Add FrozenError class
- #5035 - JRuby's native `SortedSet` lies about adding an object
- #5027 - Andre Kullmann make the profiling service configurable via java prope…
- #5026 - Fix String#rpartition for RegEx on Strings with multibyte chars
- #5025 - No longer hide exceptions from coerce method
- #5024 - Add `#test_windows_1255` to test targets
- #5022 - Fix test coerce2 for master branch
- #5021 - Do modifyCheck for each pair in Array#sort!
- #5012 - Consider switching JSR223 engine to use "persistent" local variables
- #5011 - Remove TestArray#test_zip exclusion test case
- #4999 - IO#write accepts multiple arguments
- #4993 - Ruby 2.5: Add String#delete_prefix and String#delete_prefix!
- #4991 - Update File#path to raise IOError for files opened with File::Constants::TMPFILE option
- #4988 - Ruby 2.5: Support regex for String#start_with?
- #4983 - String#-@ deduplicates unfrozen strings
- #4979 - Fix documents
- #4978 - SortedSet#dup and SortedSet#to_a do not work as expected
- #4975 - Feature/string casecmp
- #4974 - Make Integer#{round,floor,ceil,truncate} always return integer
- #4973 - Remove not used methods
- #4969 - Add File.lutime
- #4966 - Implement Hash#transform_keys and Hash#transform_keys!
- #4962 - BUG: binding visibility for class_exec not thread safe?
- #4961 - Fix Hash#rehash method for duplicate keys
- #4958 - Hash#rehash does not properly rehash
- #4957 - Add Set#reset
- #4954 - Alias Set#=== to #include?
- #4953 - Implement Dir.each_child
- #4952 - Check third argument type for Dir.glob
- #4951 - Fix `Hash#reject`
- #4950 - Alias Set#to_s to inspect
- #4949 - Implement Hash#slice method
- #4948 - Add `#test_slice_before` to test targets
- #4947 - Fix RubyHash to pass `#test_create`
- #4946 - Fix NullPointerException when option is not :base
- #4941 - Implement Dir.children
- #4940 - Implement KeyError#receiver and KeyError#key
- #4938 - Add `#test_singleton_method` to test targets
- #4936 - Implement Dir.glob base option
- #4935 - Implement Array#prepend and Array#append aliases
- #4934 - Implement Array#prepend and Array#append aliases
- #4933 - Add `#test_define_method_with_symbol` to test targets
- #4932 - Fix a typo to match documents
- #4927 - Raise `TypeError` if `module_function` is not called for modules
- #4924 - Fix test undef
- #4919 - Set MetaClass of cloned object
- #4918 - Check meta-class of method objects in `equals`
- #4914 - Make Kernel#pp available by default
- #4911 - Miscellaneous parsing fixes
- #4906 - Implement Kernel.yield_self
- #4905 - Split frame fields to reduce pre/post logic
- #4904 - Implement Integer.sqrt
- #4902 - Add support for validating Regexp in Ripper
- #4898 - Improve compatibility with MRI's Ripper
- #4876 - Ruby 2.5 Support
- #4828 - JRuby creates symbols with US-ASCII encoding but non-ASCII bytes
- #4815 - Fix spec of Thread#status for an externally killed thread that sleeps
- #4811 - Remove ant DSL/wrapper from stdlib and replace with gem.
- #4809 - JRuby 9.2.0.0-SNAPSHOT does not return result of `rake` via `system`
- #4800 - TracePoint: Support .trace
- #4799 - SSL issues when building JRuby on Java 9
- #4786 - Faster MixedModeIRMethod#call
- #4784 - Psych needs update once 3.0.0 is released
- #4780 - PERFORMANCE: Smaller bytecode for interface impl returns
- #4779 - yaml/store has a hack until we get an updated psych.
- #4777 - Generate smaller bytecode when using Ruby type on implemented Java Interface + Benchmark
- #4775 - MINOR: Dry up RubyRange#fixnumEach
- #4771 - an example test case for #4770 that shows how unicode readings fails …
- #4769 - Fix Broken Compilation
- #4762 - MINOR: Cache required arg count in CompiledMethodIR
- #4761 - Toplevel return behavior (2.4)
- #4760 - deprecate Class#subclasses from jruby/core_ext.rb
- #4758 - [ji] make RubyIOs Java Closeable/Flushable + to_java to return stream
- #4756 - [ji] support converting Ruby File -> Java File
- #4755 - Implement get_dns_server_list
- #4754 - PERFORMANCE: Intern Multiple String Constants
- #4753 - MINOR: Make CachingCallSite more JIT friendly
- #4751 - MINOR: Dry up RubyArray and improve performance in a few spots
- #4750 - MINOR: cleanup setting callcounts for JIT
- #4749 - to_inputstream method
- #4742 - MINOR: Add missing `final`s and cleanup dead imports in `org.jruby.irinstructions.CallBase`
- #4735 - BUILDING.md: Markdown formatting, copy-edits
- #4730 - Fix error message in Hash#fetch
- #4729 - KeyError message renders String keys as Symbols
- #4718 - [ji] (auto) convert java numbers
- #4713 - IO#set_encoding should return self (fixes #4712)
- #4712 - IO#set_encoding returns nil instead of itself
- #4711 - High precision BigDecimal to Rational conversion wildly inaccurate
- #4703 - Move to Trusty
- #4697 - Cannot rescue LocalJumpError originated in other thread
- #4694 - Fix break not turning into LocalJumpError soon enough
- #4693 - Dir.glob returns UTF-8 string with Windows-31J encoding
- #4690 - native implementation of set.rb
- #4686 - Cannot rescue from LocalJumpError after wrongly using break in proc
- #4679 - SSL connection fails due to no available cipher on IBM JRE
- #4674 - Fix StrptimeLexer.flex to add a comment about how to generate the lexer
- #4673 - Handle nil buffer in Zlib::GzipReader#readpartial
- #4660 - RuntimeError with compiled multi-byte variable
- #4659 - LoadError with compiled multi-byte symbol
- #4648 - New reify classes
- #4640 - Also allow access control to trigger quiet bail out of jar index.
- #4635 - Implement RubyDateParser in Java
- #4633 - AccessControlException with wrong path when calling File.realpath under SecurityManager and classpath containing spaces
- #4622 - README: latest stable JRuby in install instruction
- #4620 - Fix wrong FFI types on Windows x64
- #4616 - [ruby 2.4] Implemented Integer#ceil, #floor, #truncate
- #4609 - Remove some MRI tests from excludes
- #4606 - JRuby raises SystemCallError instead of Errno::EMSGSIZE
- #4591 - Introduce Date._strptime in Java to improve the performance
- #4584 - Update test-unit version to latest release
- #4583 - JRuby starts executing Enumerator code too soon
- #4579 - Javadoc jar published to Maven Central contains no content
- #4578 - Use shutdown hook to delete temp files instead of File.deleteOnExit
- #4577 - LocalJumpError: unexpected break in spec/ruby/language/break_spec.rb
- #4570 - [jrubyc] respect Ruby visibility rules (do not generate private methods)
- #4502 - Implemented optional buffer argument for Array#pack
- #4490 - [ruby 2.4] Fixes for Integer#digits in PR #4375
- #4470 - Implement `String#casecmp?` and `Symbol#casecmp?`
- #4469 - `private` and `private :foo` have different semantics when compiling to Java
- #4374 - [ruby 2.4] Implemented Hash#transform_values(!)
- #4368 - Implemented Hash#compact and Hash#compact!
- #4343 - Add optional precision for Float#floor
- #4337 - Add optional digits for Float#floor
- #4322 - Add `Pathname#empty?`
- #4309 - fix Array#sum and Enumerable#sum
- #4301 - Add `Dir.empty?`
- #4297 - Feature#12217 Enumerable/Array sum
- #4296 - Add File.empty?
- #4293 - Ruby 2.4 support
- #4292 - [ruby 2.4] Queue and other thread-sync classes moved under Thread
- #4290 - [ruby 2.4] forwardable.rb is broken on non-MRI
- #4288 - [ruby 2.4] Module#refine can now be given a Module
- #4287 - [ruby 2.4] Add support for @ and $ in regexp named groups
- #4283 - JSON::Parser does not reject inputs that it should
- #4209 - Update Psych
- #4205 - Update RubyGems
- #4200 - BigDecimal multiplication with Rational produces garbage digits within the requested precision.
- #4099 - specs for Unicode symbols
- #4096 - Extra tests for symbol encoding Re: #4070 + #3719 and possibly #3880
- #4068 - Enable invokedynamic for JIT tests
- #4019 - gem list don't show some gems as default
- #3880 - define_method using symbols string syntax works incorrectly
- #3846 - Loss of precision on BigDecimal operations starting from 1.7.20
- #3841 - fast-ruby benchmark comparing #cover to #range is faster on MRI
- #3807 - [ji] allow for initialize() to be a valid Java method
- #3794 - improved Date/Time conversions on Java 8
- #3792 - Missing String bounds checks
- #3719 - encoding of utf8 symbols (eg. :λ)
- #3715 - using explicit return with external reference from define_method is 66x slower on 9k
- #3697 - Identifier-keyed tables must always use raw or always use encoded identifiers
- #3640 - Date and DateTime parsing slower than 1.7 and much slower than MRI
- #3617 - jruby -i Edit files in place behaves inconsistent with MRI
- #3572 - **kwd, call(**kwd) does not behave like MRI.
- #3522 - END not working as in MRI
- #3504 - .to_d acts differently in jRuby 9.0.x than Ruby 2.2.x
- #3476 - SortedSet is much slower than Hash
- #3462 - Uninitialized constant in Fiddle::Pointer.malloc
- #3396 - Pathname#relative_path_from failing when there are certain unicode characters in the path
- #3014 - Regexp's source's encoding is wrong
- #2965 - Rakefile/rakelib depends on Ant, will not boot if not present
- #2396 - String does not use <=> to compare two string instances
- #2391 - File.dirname normalization differs from MRI
- #2362 - Deeply-nested super or constant lookup is slower in 9k than in 1.7.
- #2289 - Incorrect exception type for bad reference.
- #1408 - Jruby class implementing java interface with "initialize" method as a part of the interface fails to compile with jrubyc
- #1307 - Incorrect size for :size_t on JRuby / WIndows x64
- #942 - Array#pack does not support java numbers
- #914 - __method__ does not return valid symbol when Non-ASCII method
- #841 - Threads which have blocked Fibers are not killable
The JRuby community is pleased to announce the release of JRuby 9.2.0.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.2.x is our new major version of JRuby. It is expected to be compatible with Ruby 2.5.x and stay in sync with C Ruby. JRuby 9.2.0.0 is our first release for 2.5 support.
If you do find issues then report them on using our issue tracker at https://github.com/jruby/jruby/issues. We also encourage users to join our IRC channel (#jruby on Freenode) and mailing lists. You may also follow @jruby on Twitter for updates.
Highlights:
- Ruby 2.5 language and stdlib support
- Improved support for non-ASCII identifiers and symbols
- Improved Ruby method call performance
- 225 issues fixed for 9.2.0.0
Github Issues resolved for 9.2.0.0
- #5184 - `true.dup` and `false.dup` blow up (Inconsistent with MRI)
- #5183 - [ji] support Java time APIs with Time/Date/DateTime
- #5181 - deprecate jruby/core_ext Class#subclasses
- #5180 - [ji] RubyString implements CharSequence
- #5176 - upgrade jruby-openssl to 0.10.0
- #5173 - Update json + tests to 2.1 and update excludes.
- #5170 - Clone frame and block before proceeding into class_exec logic.
- #5168 - Remove hack for FileUtils.mv due to incorrect error raised from File.rename
- #5167 - IO.copy_stream doesn't accept objects that respond to #readpartial
- #5161 - [ji] lazy loading of Java (proxy) class extensions
- #5160 - Inconsistencies with MRI: `FrozenError (can't modify frozen array)`
- #5158 - fix resolv on windows
- #5151 - Bytelist love merge
- #5149 - Fix TestLoad#test_symlinked_jar
- #5146 - Handle exception cause with null message
- #5136 - Support overriding `Exception#message`
- #5134 - Raising SIGTERM SignalException returns wrong process exit code
- #5129 - Fix Enumerable#uniq for entry pair
- #5124 - :newline option to File.open implies text mode now. (Part of #5118)
- #5121 - Require real path
- #5117 - Revert "Require real path"
- #5116 - Range should raise TypeError if necessary method is not defined
- #5113 - Numeric#clone and #dup no longer raises TypeError
- #5110 - DateTime.jd doesn't set sec_fraction with 9.2.0.0-SNAPSHOT
- #5109 - Require real path
- #5108 - Thread.report_on_exception default value is now true
- #5107 - Fix failed Ruby 2.5 ruby/spec tests for String
- #5106 - Fix RubyString instances to raise FrozenError exceptions when mutations are attempted in debug mode…
- #5105 - Add Pathname#glob
- #5102 - Freeze Complex and Rational
- #5101 - Fix Complex#finite? and Complex#infinite? failing tests
- #5096 - Enumerable#any?, all?, none? and one? now accept a pattern argument
- #5093 - upgrade joda-time library to latest 2.9.9
- #5092 - DateTime.jd returns incorrect times with 9.2.0.0-SNAPSHOT
- #5090 - SecureRandom.alphanumeric implemented.
- #5089 - Implement fetch for Thread.current
- #5088 - Use com.jcraft.jzlib.JZlib instead of hacking the internals of java.util.zip.CRC32
- #5087 - Add Integer#allbits?, Integer#anybits? and Integer#nobits?
- #5083 - Fix time interval test
- #5079 - Add Method#=== that invokes #call
- #5076 - redo date.rb (most) parts in native
- #5074 - Fix file descriptor leak in resolv.rb
- #5071 - Better use of ThreadContext constants
- #5065 - Parallel exception hierarchy for Java
- #5064 - Update ruby/spec
- #5063 - Generify IRubyObject.toJava to make it more pleasant to use.
- #5062 - Regression or bad merge in string interpolation
- #5061 - Add keyword_init option to Struct.new
- #5056 - Time#at receives 3rd argument which specifies the unit of 2nd argument
- #5055 - [ruby-2.5] Implement String#delete_suffix
- #5051 - Remove mathn.rb from stdlib
- #5050 - refactor annotation-binder generated populators
- #5047 - Module#define_method, alias_method, undef_method, remove_method are now public
- #5046 - Add Process::last_status method
- #5043 - Module#attr, attr_accessor, attr_reader, attr_writer are now public
- #5042 - Deprecate Data class
- #5039 - Add FrozenError class
- #5035 - JRuby's native `SortedSet` lies about adding an object
- #5027 - Andre Kullmann make the profiling service configurable via java prope…
- #5026 - Fix String#rpartition for RegEx on Strings with multibyte chars
- #5025 - No longer hide exceptions from coerce method
- #5024 - Add `#test_windows_1255` to test targets
- #5022 - Fix test coerce2 for master branch
- #5021 - Do modifyCheck for each pair in Array#sort!
- #5012 - Consider switching JSR223 engine to use "persistent" local variables
- #5011 - Remove TestArray#test_zip exclusion test case
- #4999 - IO#write accepts multiple arguments
- #4993 - Ruby 2.5: Add String#delete_prefix and String#delete_prefix!
- #4991 - Update File#path to raise IOError for files opened with File::Constants::TMPFILE option
- #4988 - Ruby 2.5: Support regex for String#start_with?
- #4983 - String#-@ deduplicates unfrozen strings
- #4979 - Fix documents
- #4978 - SortedSet#dup and SortedSet#to_a do not work as expected
- #4975 - Feature/string casecmp
- #4974 - Make Integer#{round,floor,ceil,truncate} always return integer
- #4973 - Remove not used methods
- #4969 - Add File.lutime
- #4966 - Implement Hash#transform_keys and Hash#transform_keys!
- #4962 - BUG: binding visibility for class_exec not thread safe?
- #4961 - Fix Hash#rehash method for duplicate keys
- #4958 - Hash#rehash does not properly rehash
- #4957 - Add Set#reset
- #4954 - Alias Set#=== to #include?
- #4953 - Implement Dir.each_child
- #4952 - Check third argument type for Dir.glob
- #4951 - Fix `Hash#reject`
- #4950 - Alias Set#to_s to inspect
- #4949 - Implement Hash#slice method
- #4948 - Add `#test_slice_before` to test targets
- #4947 - Fix RubyHash to pass `#test_create`
- #4946 - Fix NullPointerException when option is not :base
- #4941 - Implement Dir.children
- #4940 - Implement KeyError#receiver and KeyError#key
- #4938 - Add `#test_singleton_method` to test targets
- #4936 - Implement Dir.glob base option
- #4935 - Implement Array#prepend and Array#append aliases
- #4934 - Implement Array#prepend and Array#append aliases
- #4933 - Add `#test_define_method_with_symbol` to test targets
- #4932 - Fix a typo to match documents
- #4927 - Raise `TypeError` if `module_function` is not called for modules
- #4924 - Fix test undef
- #4919 - Set MetaClass of cloned object
- #4918 - Check meta-class of method objects in `equals`
- #4914 - Make Kernel#pp available by default
- #4911 - Miscellaneous parsing fixes
- #4906 - Implement Kernel.yield_self
- #4905 - Split frame fields to reduce pre/post logic
- #4904 - Implement Integer.sqrt
- #4902 - Add support for validating Regexp in Ripper
- #4898 - Improve compatibility with MRI's Ripper
- #4876 - Ruby 2.5 Support
- #4828 - JRuby creates symbols with US-ASCII encoding but non-ASCII bytes
- #4815 - Fix spec of Thread#status for an externally killed thread that sleeps
- #4811 - Remove ant DSL/wrapper from stdlib and replace with gem.
- #4809 - JRuby 9.2.0.0-SNAPSHOT does not return result of `rake` via `system`
- #4800 - TracePoint: Support .trace
- #4799 - SSL issues when building JRuby on Java 9
- #4786 - Faster MixedModeIRMethod#call
- #4784 - Psych needs update once 3.0.0 is released
- #4780 - PERFORMANCE: Smaller bytecode for interface impl returns
- #4779 - yaml/store has a hack until we get an updated psych.
- #4777 - Generate smaller bytecode when using Ruby type on implemented Java Interface + Benchmark
- #4775 - MINOR: Dry up RubyRange#fixnumEach
- #4771 - an example test case for #4770 that shows how unicode readings fails …
- #4769 - Fix Broken Compilation
- #4762 - MINOR: Cache required arg count in CompiledMethodIR
- #4761 - Toplevel return behavior (2.4)
- #4760 - deprecate Class#subclasses from jruby/core_ext.rb
- #4758 - [ji] make RubyIOs Java Closeable/Flushable + to_java to return stream
- #4756 - [ji] support converting Ruby File -> Java File
- #4755 - Implement get_dns_server_list
- #4754 - PERFORMANCE: Intern Multiple String Constants
- #4753 - MINOR: Make CachingCallSite more JIT friendly
- #4751 - MINOR: Dry up RubyArray and improve performance in a few spots
- #4750 - MINOR: cleanup setting callcounts for JIT
- #4749 - to_inputstream method
- #4742 - MINOR: Add missing `final`s and cleanup dead imports in `org.jruby.irinstructions.CallBase`
- #4735 - BUILDING.md: Markdown formatting, copy-edits
- #4730 - Fix error message in Hash#fetch
- #4729 - KeyError message renders String keys as Symbols
- #4718 - [ji] (auto) convert java numbers
- #4713 - IO#set_encoding should return self (fixes #4712)
- #4712 - IO#set_encoding returns nil instead of itself
- #4711 - High precision BigDecimal to Rational conversion wildly inaccurate
- #4703 - Move to Trusty
- #4697 - Cannot rescue LocalJumpError originated in other thread
- #4694 - Fix break not turning into LocalJumpError soon enough
- #4693 - Dir.glob returns UTF-8 string with Windows-31J encoding
- #4690 - native implementation of set.rb
- #4686 - Cannot rescue from LocalJumpError after wrongly using break in proc
- #4679 - SSL connection fails due to no available cipher on IBM JRE
- #4674 - Fix StrptimeLexer.flex to add a comment about how to generate the lexer
- #4673 - Handle nil buffer in Zlib::GzipReader#readpartial
- #4660 - RuntimeError with compiled multi-byte variable
- #4659 - LoadError with compiled multi-byte symbol
- #4648 - New reify classes
- #4640 - Also allow access control to trigger quiet bail out of jar index.
- #4635 - Implement RubyDateParser in Java
- #4633 - AccessControlException with wrong path when calling File.realpath under SecurityManager and classpath containing spaces
- #4622 - README: latest stable JRuby in install instruction
- #4620 - Fix wrong FFI types on Windows x64
- #4616 - [ruby 2.4] Implemented Integer#ceil, #floor, #truncate
- #4609 - Remove some MRI tests from excludes
- #4606 - JRuby raises SystemCallError instead of Errno::EMSGSIZE
- #4591 - Introduce Date._strptime in Java to improve the performance
- #4584 - Update test-unit version to latest release
- #4583 - JRuby starts executing Enumerator code too soon
- #4579 - Javadoc jar published to Maven Central contains no content
- #4578 - Use shutdown hook to delete temp files instead of File.deleteOnExit
- #4577 - LocalJumpError: unexpected break in spec/ruby/language/break_spec.rb
- #4570 - [jrubyc] respect Ruby visibility rules (do not generate private methods)
- #4502 - Implemented optional buffer argument for Array#pack
- #4490 - [ruby 2.4] Fixes for Integer#digits in PR #4375
- #4470 - Implement `String#casecmp?` and `Symbol#casecmp?`
- #4469 - `private` and `private :foo` have different semantics when compiling to Java
- #4374 - [ruby 2.4] Implemented Hash#transform_values(!)
- #4368 - Implemented Hash#compact and Hash#compact!
- #4343 - Add optional precision for Float#floor
- #4337 - Add optional digits for Float#floor
- #4322 - Add `Pathname#empty?`
- #4309 - fix Array#sum and Enumerable#sum
- #4301 - Add `Dir.empty?`
- #4297 - Feature#12217 Enumerable/Array sum
- #4296 - Add File.empty?
- #4293 - Ruby 2.4 support
- #4292 - [ruby 2.4] Queue and other thread-sync classes moved under Thread
- #4290 - [ruby 2.4] forwardable.rb is broken on non-MRI
- #4288 - [ruby 2.4] Module#refine can now be given a Module
- #4287 - [ruby 2.4] Add support for @ and $ in regexp named groups
- #4283 - JSON::Parser does not reject inputs that it should
- #4209 - Update Psych
- #4205 - Update RubyGems
- #4200 - BigDecimal multiplication with Rational produces garbage digits within the requested precision.
- #4099 - specs for Unicode symbols
- #4096 - Extra tests for symbol encoding Re: #4070 + #3719 and possibly #3880
- #4068 - Enable invokedynamic for JIT tests
- #4019 - gem list don't show some gems as default
- #3880 - define_method using symbols string syntax works incorrectly
- #3846 - Loss of precision on BigDecimal operations starting from 1.7.20
- #3841 - fast-ruby benchmark comparing #cover to #range is faster on MRI
- #3807 - [ji] allow for initialize() to be a valid Java method
- #3794 - improved Date/Time conversions on Java 8
- #3792 - Missing String bounds checks
- #3719 - encoding of utf8 symbols (eg. :λ)
- #3715 - using explicit return with external reference from define_method is 66x slower on 9k
- #3697 - Identifier-keyed tables must always use raw or always use encoded identifiers
- #3640 - Date and DateTime parsing slower than 1.7 and much slower than MRI
- #3617 - jruby -i Edit files in place behaves inconsistent with MRI
- #3572 - **kwd, call(**kwd) does not behave like MRI.
- #3522 - END not working as in MRI
- #3504 - .to_d acts differently in jRuby 9.0.x than Ruby 2.2.x
- #3476 - SortedSet is much slower than Hash
- #3462 - Uninitialized constant in Fiddle::Pointer.malloc
- #3396 - Pathname#relative_path_from failing when there are certain unicode characters in the path
- #3014 - Regexp's source's encoding is wrong
- #2965 - Rakefile/rakelib depends on Ant, will not boot if not present
- #2396 - String does not use <=> to compare two string instances
- #2391 - File.dirname normalization differs from MRI
- #2362 - Deeply-nested super or constant lookup is slower in 9k than in 1.7.
- #2289 - Incorrect exception type for bad reference.
- #1408 - Jruby class implementing java interface with "initialize" method as a part of the interface fails to compile with jrubyc
- #1307 - Incorrect size for :size_t on JRuby / WIndows x64
- #942 - Array#pack does not support java numbers
- #914 - __method__ does not return valid symbol when Non-ASCII method
- #841 - Threads which have blocked Fibers are not killable