JRuby 9.1.7.0 Released

Wednesday, January 11 2017

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

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.7.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 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.

  • Fixed spurious LinkageError when using multiple threads
  • Fixed several keyword argument issues
  • Fixed several parser issues
  • Reduced memory use of the JIT
  • Update Psych to 2.2.2
  • Update jruby-openssl to 0.9.18
  • 72 issues fixed for 9.1.7.0

Github Issues resolved for 9.1.7.0

  • #4433 - NullPointerException when creating tempfiles in rspec
  • #4431 - Set toplevel module
  • #4429 - corrupted JIT byte-code for method
  • #4427 - Don't allow null method names
  • #4426 - Calling super() outside of a method causes NPE
  • #4425 - Code behavior changes after being JITted at runtime
  • #4421 - Make StringIO thread-safe by synchronizing against ptr.
  • #4420 - [#4414] Fixes #4414. getVpValueWithPrec19 should raise FloatDomainErrā€¦
  • #4418 - File.expand_path with uri:classloader still relative on Windows
  • #4417 - StringIO is not thread-safe (throws a Java exception)
  • #4416 - The i18n gem does not work in AOT mode
  • #4414 - NumberFormatException when divide BigDecimal by Float::NAN
  • #4410 - chunk_while not returning results equivalent to MRI ruby 2.3+ (jruby 9.1.6.0)
  • #4407 - Concurrent::ScheduledTask is broken on master JRuby
  • #4404 - Decreased coverage with 9.1.7.0 snapshot
  • #4390 - Specific arity jit cleanup
  • #4389 - Check permission to AccessibleObject#setAccessible(boolean) a better way
  • #4388 - Add call protocol to script body and separate non-protocol metas.
  • #4383 - warn with array should behave like puts with array
  • #4382 - Improve stack depth
  • #4381 - Remove unsafe-mock from our build altogether.
  • #4379 - Fix bigdecimal infinity round
  • #4378 - Update jnr.
  • #4369 - break within a block throws LocalJumpError in JRuby but succeeds in MRI Ruby
  • #4366 - Optimize getDefinedMessage by deduping during initialization
  • #4364 - Add regression test for shell exit
  • #4363 - Yard does not work in JRuby =>9.1.3.0
  • #4362 - change status array of ints to an int
  • #4361 - Unexpected value for `$?.exitstatus` when process exited successfully
  • #4356 - trivial: restkwargs => kwargs in FIXME comment
  • #4352 - Fix deadlock when tearing down runtime during debugging
  • #4350 - File.directory? of a uri:classloader resources ending in "/" incorrectly returns false
  • #4349 - -Xnative.enabled=false fails to load windows in kernel
  • #4348 - File.open with open mode a+ do not work
  • #4344 - Can't call a `Proc` which has a required keyword argument and a positional argument
  • #4342 - zsuper does not cope with n repeated _ well
  • #4341 - 9.1.6.0: block arguments *_ and &_ at the same time fails with DynamicScope1 only supports scopes with 1 variables
  • #4340 - Extended class clones and duplicates become unmarshable
  • #4339 - Class clones and duplicates raise StackOverflowError when listing their singleton class ancestors
  • #4336 - Fix unexpected java.lang.ArithmeticException when converting Rational to BigDecimal
  • #4332 - JRuby 9.1.6.0 tries to access O_TMPFILE under Windows
  • #4331 - Skip less specs
  • #4329 - Add missing PortUnreachable catch. Fixes #4104
  • #4324 - Crashing on attempt to convert Rational into BigDecimal
  • #4323 - Usage of `#[]=` assignment in method argument broken
  • #4321 - Fix marshaling Hash with default_proc set to nil
  • #4319 - JRuby can not interpret keyword argument when placed after positional argument in block
  • #4317 - range endpoints with () will generate an NPE
  • #4316 - --disable: should accept gem as alias for gems.
  • #4315 - 2.3 Syntax Failure: %s does not work in alias or undef
  • #4314 - 2.3 syntax failure: 'a b: 1' does not parse as method with kwarg
  • #4310 - Disable notifying travis-rubies of passing [skip ci]
  • #4308 - New syntax errors in 2.3.1/2.3.2 tests.
  • #4302 - Dumping Hash with default_proc that was reset
  • #4299 - Fixed Math.lgamma with input -0.0
  • #4286 - Interrupt ignores exception message
  • #4285 - Catch LinkageError during DynamicScope generation.
  • #4284 - MRI tests that do not appear to exist for MRI
  • #4280 - README: Ruby version manager docs link
  • #4276 - make ttymode and ttymode_yield helpers private
  • #4275 - ttymode, ttymode_yield should be private
  • #4268 - upgrade jruby-openssl to 0.9.18
  • #4266 - JRuby unable to find methods unless jar is in boot classpath
  • #4253 - Respond_to? returns private methods
  • #4196 - Update Psych to eliminate deprecated usage
  • #4123 - Fix IO#syswrite. Fixes #3799
  • #4104 - Resolv::DNS..getresource produces different errors then MRI
  • #4103 - JRuby fails in building from source when using openjdk-7-jdk trusty package
  • #3799 - Unix sockets raise exception on long writes
  • #3729 - Occasional ArrayIndexOutOfBoundsException from a line of Ruby that isn't doing array lookups
  • #2761 - JRuby 9k: simple script ~80% as fast as jruby 1.7.19
  • #2485 - proc with extra args incorrectly binds wrong post args