The JRuby community is pleased to announce the release of JRuby 9.2.0.0
Homepage: http://www.jruby.org/
Download: http://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
http://bugs.jruby.org. 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
···
--
blog: http://blog.enebo.com twitter: tom_enebo
mail: tom.enebo@gmail.com