[ANN] JRuby 9.1.6.0 Released

The JRuby community is pleased to announce the release of JRuby 9.1.6.0

    Homepage: http://www.jruby.org/
    Download: http://www.jruby.org/download

JRuby 9000 is the newest major version of JRuby, representing years of
effort and large-scale reboots of several JRuby subsystems. It is expected
to be compatible with Ruby 2.x and stay in sync with C Ruby. JRuby 9.1.6.0
is our latest release…

Major features of JRuby 9000:

  - Ruby 2.x compatibility
  - A new optimizing runtime based on a traditional compiler design
  - New POSIX-friendly IO and Process
  - Fully ported encoding/transcoding logic from MRI

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.

   - Rubygems updated to 2.6.8
   - Socket library improvements and fixes
   - Fixed several Keyword Argument corner cases
   - Optimized accessing local variables
   - 77 issues fixed for 9.1.6.0

Github Issues resolved for 9.1.6.0

    #4272 - Stack overflow in unresolvedSuper logic from jitted code
    #4264 - Fix unnamed socket inspect
    #4262 - Method#owner returns wrong implementation module
    #4261 - Mutexes should use .lock instead of .lockInterruptibly
    #4259 - Identical Regexp are not equal to each other
    #4256 - Revert "Format initial string to specific precision, so
rounding works."
    #4255 - jit failure: rack
    #4252 - Also perform uninitialized check on temp locals.
    #4251 - nil initialization missing from optionally-set argument
    #4250 - Prepend must set method's "defined class" to the new bottom.
    #4248 - UNIXSocket#peeraddr was fixed some time ago
    #4247 - Garbage data in UNIXSocket path
    #4240 - Rescue optimization over-optimizes rescue body with $!
    #4233 - Fix clone hierarchy
    #4231 - Cannot iterate over a Range of Times
    #4229 - cloned singleton method exists but can't be overwritten
    #4228 - remove_method fails to remove singleton method on cloned object
    #4227 - Missing unit :second for Process.clock_gettime
    #4225 - Don't dup every element in Enumerator#drop (9K)
    #4224 - Fix the incorrect opscode mapping in f2i()
    #4223 - Broken PHASE='-Pjruby_complete_jar_extended -Dinvoker.skip=true'
    #4222 - BasicSocket improvements
    #4221 - UNIX sockets improvements
    #4220 - Handle EADDRINUSE message in IOException.
    #4218 - Enumerable#drop calls #dup on every element
    #4217 - JRuby 9.1.*.* on multiple platforms incorrectly handles block
in `[]` method calls
    #4216 - UDP socket improvements
    #4215 - do not eagerly set eval-type in a thread-local
    #4214 - [Truffle] Use the new getgroups POSIX call.
    #4210 - **operator behavior is different from MRI
    #4207 - Flush destination IO in IO.copy_stream
    #4206 - Kernel#sleep swallows InterruptedException
    #4204 - Implement Socket.socketpair to return Socket instances
    #4203 - Get rid of code dup in ServerSocket#bind
    #4202 - IO.copy_stream with Zlib::GZipWriter broken in 9.1.3.0 and up
    #4199 - Replace BigDecimal#!= by BigDecimal#nonzero?.
    #4198 - Apply patch from rubygems/rubygems#1685
    #4193 - prime? openssl error in 9.1.5.0
    #4190 - TCPServer#accept_nonblock improvement
    #4189 - Implement TCPServer#sysaccept
    #4188 - `require_relative` does not work inside a jar on Windows
    #4187 - Fix Java::JavaLangReflect::GenericSignatureFormatError when
reflecting reified annotation values
    #4186 - JRuby accepts wrong method arguments when mixing positional
with defaults and keywords
    #4184 - Dir.tmpdir returns working directory
    #4178 - Changing type of global variables gives TypeError
    #4177 - Fix issues with File.dirname
    #4176 - NoMethodError: undefined method `dedent_string' when lexing
squigly heredocs in Ripper
    #4174 - Remove premade field-based DynamicScope and generate instead.
    #4171 - JRuby HEAD gets NPE when running `bundle install`
    #4170 - Bring BigMath::log behaviour closer to MRI
    #4169 - squiggly heredoc with single quotes fails to run
    #4168 - Add paths to *DynamicScope that don't check nulls, offsets.
    #4167 - Create a different hierarchy of DynamicScope for use in startup
interp + remove null checks in the existing hierarchy since they are
redundant
    #4162 - Logger: Errno::EINVAL: Invalid argument with JRuby 9.x in
Solaris
    #4159 - Format initial string to specific precision, so rounding works.
    #4158 - BigMath.log(Rational,...) produces garbage digits within the
requested precision
    #4153 - Fix for #4147
    #4152 - Fix for #3229
    #4148 - Java::JavaLangInvoke::WrongMethodTypeException when using
invokedynamic
    #4147 - Logger: log rotation inter-process lock failed. on Windows with
JRuby 9.x
    #4141 - IRB: arrow keys to move along cmd line and up/down in history
not working on Windows
    #4128 - Inspect directly into a RubyString and avoid
StringBuilder/char[].
    #4126 - Implement SignalException class
    #4119 - Full Socket::Option support
    #4117 - Show that ArgumentError from encoding error is recursive
    #4040 - Setting SO_LINGER completely inconsistent
    #4019 - gem list don't show some gems as default
    #3954 - SignalException#signo (and signm) not defined.
    #3886 - Collect all DNS sections by calling to each_resource instead of
each_answer
    #3817 - IO#seek and tell do not properly handle offsets larger than
int32
    #3438 - BasicSocket#getsockopt does not work with all possible Symbol
combinations
    #3343 - File.flock does not work on Solaris for 9k
    #3326 - JRuby 9.0.1.0 vs. MRI 2.2.2 define_method inconsistency
    #3302 - Updated doc for dumpThreads method in Runtime
    #2768 - System.gc() is async, do not attempt to invoke it and retry
sysopen
    #2465 - Build a new pass that ensures that ruby locals / IR tmps are
initialized
    #1987 - sequester tmp directories

···

--
blog: http://blog.enebo.com twitter: tom_enebo
mail: tom.enebo@gmail.com