Recent News
JRuby 10.0.0.0 Released
Monday, April 14 2025
The JRuby community is pleased to announce the release of JRuby 10.0.0.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 10 is finally here! We’ve jumped to Ruby 3.4 compatibility and Java 21 minimum to bring you the best Ruby on JVM experience possible. We are confident this is the most compatible and stable major release we’ve ever had.
Our blog post on JRuby 10 provides a high-level overview of the major changes, with some additional details below. We will update the blog post with additional detailed articles over the coming weeks: https://blog.jruby.org/2025/04/jruby-10-part-1-whats-new
As with any “dot zero” release, we are planning a series of quick updates to address any last-minute issues that snuck into the release. Please file bugs for any issues you see while testing JRuby 10.0: https://github.com/jruby/jruby/issues
Contributors
The JRuby core team today includes Charles Oliver Nutter (@headius), Thomas Enebo (@enebo), and Karol Bucek (@kares). Over the past year we have been honored to accept contributions from many other developers, and JRuby 10 would not be as stable or complete without their help:
@andsel, @mrnoname1000, @ahorek, @evaniainbrooks, @edipofederle, @ccutrer, @danini-the-panini, @ntkme, @andrykonchin, @mohamedhafez, @jsvd, @jpcamara, @mullermp, @ikaronen-relex, @jimtng, @ryannevell, @eregon, @moste00, @sk757a
Ruby Compatibility
- Ruby compatibility has been updated to Ruby 3.4. We consider this release equivalent to Ruby 3.4.2.
- Most features of Ruby 3.2, 3.3, 3.4 are complete, but some are still in progress. See our checklists based on CRuby’s release notes: Ruby 3.2, Ruby 3.3, Ruby 3.4
- Except where a more recent gem was available or a library is unsupported by JRuby, we have included the same standard libraries as Ruby 3.4.
Java 21
After nearly a decade of supporting Java 8, the JRuby team decided it’s time for us to move to a more modern version of Java. The new requirement of Java 21 will allow us to take advantage of many features that were impossible to utilize while simultaneously supporting Java 8:
- On-by-default optimization using InvokeDynamic, which has significantly improved since Java 8.
- Support for thousands of Fibers using the lightweight virtual thread support from Project Loom.
- Fast native function calling and native memory management using Project Panama.
- Greatly improved startup time using Application Class Data Store, enabled by default by our launcher executables.
- Easier access to post-Java 21 features like the Ahead-of-time compiler cache in Project Leyden.
Upgrading to JRuby 10
This release marks a big leap forward for JRuby users, and we are standing by to help with your transition from JRuby 9.x or migration from CRuby. Support services are available to help migrate your critical applications. Many existing users trust JRuby Support by Headius Enterprises to keep their applications in peak condition and to prepare for future updates.
Issues and Pull Requests
There are hundreds of closed issues and merged pull requests in this release. Visit the JRuby 10.0.0.0 milestone for the full list.
201 Issues and PRs resolved for 10.0.0.0
- #6094 Less modes to run JRuby, and one single mode to benchmark JRuby
- #6598 Modularize all the things
- #7516 Improvements to instance variable shaping
- #7638 Add support for Ruby 3.2 attached_object
- #7646 Add Integer#ceildiv
- #7788 Add support for a rescue trace event
- #7871 Ruby 3.2 - Remove deprecated methods: trust/taint and friends
- #7909 Intermittent failure on duped pipe tests JDK 19+
- #7973 Use gem for tempfile
- #8058 Ruby 3.3 support: Queue#freeze now raises TypeError
- #8059 Ruby 3.3 support: add symbolize_names kwarg to MatchData#named_captures
- #8084 remove JRuby-specific (deprecated) Class#subclasses(arg)
- #8143 Remove versioned methods
- #8145 Refactor external API to ease extension porting
- #8152 New parser
- #8153 Update parser to 3.4
- #8154 Update and run CRuby 3.4 tests
- #8159 Fix last obvious syntax problem (involving nested pattern kwargs going off rails)
- #8160 Proc#{dup,clone} should be like other objs
- #8161 Finalizers also are on cloned/duped objects
- #8162 Finalizers also are on cloned/duped objects
- #8163 tracepoint only runs in thread it was enabled on
- #8164 {,Unbound}Method#{proc,dup} need to be more like other Ruby objects
- #8165 Add MatchData#deconstruct…
- #8168 First stab at Err#typeError in api
- #8169 Update json to eliminate references to “19” methods
- #8170 Implement block_given? call as optimized instruction
- #8172 Optimized method and callee
- #8174 Unify call paths for most framed scopes
- #8175 These may have been hanging due to a block_given? bug
- #8176 Simplify fixnum and string ranges
- #8177 A few frozen string and symbol optimizations
- #8180 Optimizations for dynamic string building
- #8181 Add ability to generically optimize instr during LOP
- #8214 Disable eager constants in JRuby 10
- #8223 Make Exception#detailed_message,full_message pass specs
- #8226 Implement “chilled” Strings
- #8227 Narrow frame name optimization to method scopes
- #8228 IO#readlines accepts another arg
- #8229 Fix full_message formatting and Throwable impl
- #8230 More frame name fixes
- #8233 Implement Regexp#linear_time?
- #8236 More string interpolation optimizations
- #8238 Implement regexp timeout
- #8240 Fix IO#each_line specs
- #8249 Reduce deopt from print use of $_
- #8253 Optimize literal fixnum and float arrays
- #8259 Improved representation of JRuby for JVM tools
- #8260 Rewrite Marshal.dump logic for efficiency
- #8262 Proc spreading changed in 3.2 with kwrest
- #8263 Implement Coverage::supported?
- #8266 Enable invokedynamic by default
- #8267 Print out paths for syntax errors
- #8268 Unbound method
- #8276 Struct specs
- #8277 Time#new spec fixes.
- #8279 Reduce overhead of ObjectSpace#each_object when disabled
- #8291 Fix remaining copy stream specs
- #8293 Eliminate last consumers of Variable logic
- #8295 3 new Convert API methods
- #8297 Make common method for handling to_r calls in Rational
- #8298 Api changes
- #8299 Linkage errors from java_import are lazy
- #8300 Do initialize classes during java_import
- #8301 Decode ByteList properly for toString
- #8304 Eager initialize java_import’ed classes
- #8317 New asFixnum, asBoolean, asString in Convert
- #8330 Eliminate dynscope for leaf blocks with break/return
- #8375 Revisit chilled strings and pass all specs
- #8376 Get most Enumerator::Product specs passing
- #8377 No backtick in errors
- #8378 Update to latest CRuby 3.4 tests and stdlib
- #8390 Fix foreach with mode: kwarg
- #8402 Hash#inspect: no arrow for symbol keys. add spacing to match C Ruby
- #8410 Permute indy invoke paths to reduce uncached stack
- #8414 Pre-generate specialized object shapes
- #8418 Some small refactoring while looking for example snippet code of new API
- #8420 A bunch of new API calls and new JRubyAPI annotation
- #8430 More dogfooding of new API
- #8432 argumentError API conversions with a lot of runtime to tc replacement
- #8437 context through RubyArray using more API
- #8444 Nearly all newArray is converted to API
- #8450 Enable invokedynamic by default
- #8452 newFixnum,Symbol,Float are unified with asXXX.
- #8454 more api conversion around Time+
- #8459 API: Nearly all remaining newArgumentError to argumentError
- #8460 more newSymbols made into asSymbol
- #8461 new runtimeError api
- #8467 api: new rangeError, indexError
- #8468 to_s with TC. new dupString api
- #8470 Inspect wrong object when symbol/string wanted in error
- #8471 more illegal formatting added to printf/format
- #8472 Add new Check#checkEmbeddedNulls to replace StringSupport method
- #8473 Make Time load its Ruby-impl side
- #8474 Create#newEmptyString
- #8475 Create#new{,Small}Hash
- #8484 Various array optimizations
- #8485 Fixes for MRI tests
- #8489 Bind directly to all supported arities of native methods
- #8490 New define API
- #8491 Make hash() always call to hash(ThreadContext) and deprecate
- #8492 Make Numeric#coerce use TC with deprecated fallback
- #8493 is_zero+zero_p TCification
- #8494 TCification of isPositive
- #8495 TCification of isNegative
- #8496 Make initialize_copy use TC
- #8498 See how dot format is for specs
- #8507 Eliminate use of unsafe in StringSupport
- #8508 Replace Unsafe byte[] long-walking with VarHandle
- #8514 Move to simple Access apis (context available)
- #8517 Add trace instr for rescue when trace enabled
- #8518 Switch more error backquotes to single
- #8519 inspect() -> inspect(ThreadContext)
- #8520 All String JRuby Methods use context now
- #8521 Make all jruby methods use context in Array
- #8522 context for all numeric types jruby methods
- #8524 context for all Struct methods
- #8525 Warn api
- #8529 Data fixes
- #8530 Update gem_prelude from Ruby 3.4
- #8531 getSingletonClass() replaced with singleonClass(context)
- #8532 Deprecate defineOrGetClassUnder
- #8533 Fixes and impls for Ruby 3.4 specs
- #8534 Last boostrapping classes/modules decoupled from non-boot
- #8537 We should always have a valid staticScope
- #8541 most of constant settin and RubyModule to be TCified
- #8543 allocate() needs ThreadContext
-
#8544 [Extra “” around singleton in {Name No}MethodError]#8544 - #8545 Reduce getRuntime() and make alloc use TC
- #8546 Fix specs involving comments in unpack format strings
- #8547 Fix failing specs for chilled symbols
- #8548 tcification of regex
- #8549 Remove more use of getRuntime()
- #8551 More removal of getRuntime() from non-deprecated code paths
- #8552 more API usage and some runtime removal
- #8553 More API work: toInt, toInteger, toLong, asLong, asInt
- #8554 Fix arity specs for blocks in language
- #8556 Rest args dup keyword hash
- #8558 More API conversion
- #8564 Eliminate exact math and reduce allocations
- #8576 Force a Thread’s block to optimize eagerly
- #8580 Implement **nil
- #8581 implement restriction on aryset to not allow blocks or kwargs
- #8582 Update Ruby 3.4 gems from release
- #8587 Add warning for ::Ruby = as reserved constant
- #8588 Implement MatchData#byte{beg,end}
- #8589 Change singleton_method to look at extend/prepend
- #8616 Eiminate last uses of UnsafeHolder
- #8617 Reduce RubyModule/RubyClass size and creation overhead
- #8618 Improve performance of CI test suites
- #8619 Eliminate fillnil from newArray
- #8622 Move specs toward green
- #8628 Integer spec fixes for JRuby 10
- #8629 Fix Range specs for JRuby 10
- #8631 unused warnings became useless warnings
- #8633 Fiber specs for JRuby 10
- #8636 Remove upfront fillNill in Array
- #8637 We should only warn on actual modification of singleton
- #8639 Remove raw array methods and helpers with fillnil changed
- #8646 More work on numeric API
- #8647 Previous changes from raw array and I put in wrong field name
- #8650 Depre warns
- #8664 Unicode 15.0
- #8668 Propagate Java throwables during load without wrapping
- #8673 parser passes block node vs only single last value to when
- #8674 Ruby 3.4 seems to have simplified ruby2_keywords_hash
- #8676 JRuby 9.4 to_s() signatures must be kept in 10
- #8677 FString logic cleanup
- #8678 Symbol type calculation tweaks
- #8679 Implement Data natively
- #8683 New marshal could break ext authors using old one
- #8684 Deprecation problems + new reporting system
- #8685 Additional improvements to new marshal logic
- #8689 MarshalLoader to match dumper
- #8693 Cleaning up MRI excludes and fixing some stuff
- #8695 Update stdlib from Ruby 3.4.2
- #8698 JRuby 10: incorrect
Method#arity
with keyword arguments - #8699 optimist gem specs get StackOverflowError on JRuby 10
- #8702 was recursively warning on itself
- #8706 Add missing logic I added for procs to methods for ruby-facing arity
- #8708 Refactor launcher AppCDS logic
- #8709 JRuby HEAD
Exception#full_message
fails withuninitialized constant ErrorHighlight::RubyVM
for Exceptions thrown from JRrubyVM - #8710 Encoding error with bad raise message in StringIO
- #8711 Less eager coderange when converting Java String
- #8712 JRuby10 inline bundler error
- #8713 Negative capa
- #8718 Apply Java version-specific flags in launcher script
- #8721 Restructure gem_prelude to fit JRuby’s needs
- #8723 JRuby10: an existing
it
variable inside a block caused SyntaxError: ordinary parameter is defined - #8725 nonsense error check for ‘it’ in parser
- #8729 spec fixed at some point in past
- #8735 JRuby10: (NameError) undefined local variable or method ‘it’ in eval
- #8737 Fixes #8735. it in eval broken
- #8741 NUMERIC_TO_OBJECT was making BigDecimal a Long
- #8742 A few micro optimizations
- #8744 Use platform line separator for backtrace output
- #8745 Updates from CRuby 3.4.2
- #8748 Reduce overhead of indy plumbing
- #8751 Update URI gem to 1.0.3 in JRuby 10
- #8753 Java version detection improvements
- #8759 Fixed enough javadoc “errors” where it no longer stops build
JRuby 9.4.12.0 Released
Tuesday, February 11 2025
The JRuby community is pleased to announce the release of JRuby 9.4.12.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.12.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward!
Critical Fixes
- Added additional locking to the new Class#subclasses implementation to fix a concurrent modification error. #8602, #8603
Standard Library
- jar-dependencies upgraded to 0.5.4 to fix an issue parsing Maven output on Java versions 9 and higher. #8606, #8615
4 Issues and PRs resolved for 9.4.12.0
JRuby 9.4.11.0 Released
Wednesday, January 29 2025
The JRuby community is pleased to announce the release of JRuby 9.4.11.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.11.x targets Ruby 3.1 compatibility. This release fixes two critical bugs in JRuby 9.4.10.0 and we recommend users skip that version when upgrading.
Thank you to our contributors this release, you help keep JRuby moving forward!
- Karol Bucek @kares
Critical Fixes
- Fixed an issue where Mutex lock acquisition may leave the Mutex locked if an asynchronous Thread interrupt happens at the same time. #8585, #8586
- Fixed a memory leak where singleton classes would leave behind bookkeeping objects that accumulated over time. #8591, #8598
Standard Library
- rubygems been updated to version 3.6.3 to fix an incompatibility with bundler 2.6. #8590, #8596
- bundler has been updated to version 2.6.3. #8596
- jruby-openssl has been updated to 0.15.3. #8458, Release 0.15.3
- jar-dependencies has been updated to 0.5.3 to fix remaining issues loading Maven jars in containerized environments. #8593, #8595
9 Issues and PRs resolved for 9.4.11.0
- #8458 [deps] bump jruby-openssl to 0.15.3
- #8584 Remove dependency on jakarta.annotation-api
- #8585 Thread interrupt can leave Mutex locked in synchronize
- #8586 Unlock if poll triggers an exception
- #8590 Bundler v2.6.x is incomptible with Gem system version included in JRuby 9.4.10.0 by default
- #8591 Eliminate leak of non-concrete subclass references
- #8593 Cannot create a Rails app with JRuby 9.4.10.0, Rails 7.1.5.1
- #8595 Update jar-dependencies to 0.5.3
- #8596 Update rubygems to 3.6.3 and bundler to 2.6.3
- #8598 Memory leak from ActiveRecord_Relation after upgrading from JRuby 9.4.9.0 to 9.4.10.0
JRuby 9.4.10.0 Released
Tuesday, January 21 2025
The JRuby community is pleased to announce the release of JRuby 9.4.10.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward!
- Dani Smith @danini-the-panini
- Karol Bucek @kares
- mrnoname1000 @mrnoname1000
Ruby Compatibility
- Fixed a NegativeArraySizeException crash parsing heredocs. #8355, #8557
- Users can now opt into Ruby 3.3 behavior for NoMethodError and NameError that no longer inspects the target object. This inspect frequently led to memory issues. Specify JRuby flag
-XnameError.inspect.object=false
or JVM propertyjruby.nameError.inspect.object=false
to disable the inspect call. #216, #8384, #8538 - Implemented the missing
Process.argv0
method, used by recent Bundler releases. #8568, #8570
Standard Library
- The jar-dependencies gem, responsible for fetching jar file dependencies of Ruby gems, can now be updated independently of JRuby. #7262, #8488, #8502
- An upcoming release of jar-dependencies, will fix issues sourcing jar dependencies in container deployments (partially fixed previously by an updated ruby-maven-libs gem). #7059, #8366
- The psych gem is updated to version 5.2.3, including a fix for YAML aliases from SnakeYAML-Engine version 2.9. #8352, #8575
- The reline gem is updated to 0.5.12. #8481
Java Integration
- Only JVM classes imported from the same classloader hierarchy as JRuby will be bound to constants in JRuby’s package hierarchy. #8156
- Implementing a Java interface no longer leads to constant redefinition warnings. #8349, #8503
- Precompiled Ruby scripts now properly prepare optimized homogeneous case/when statements. Previously they would deserialize incorrectly and garble the branches. #8421, #8424
Performance and Usability
- Additional runtime data structures are eagerly cleared when tearing down a JRuby runtime, aiding GC. #8343, #8566
- The JRuby shell-based launcher script now properly handles JRuby installed in a path with spaces. #8441, #8442
- The
Class#subclasses
method has been optimized to eliminate it as a bottleneck in complex ActiveRecord STI queries. #8457, #8462 - Integer multiplication operations that overflow outside of int64 range have been optimized to eliminate heavy exception raises. #8516, #8523
Issues and PRs resolved for 9.4.10.0
- #7059 Issue of Jar dependency with Jruby-9.3.3.0
- #7262 jar-dependencies cannot be updated out-of-band from jruby
- #8156 JRuby adds Java proxy classes to the Java module even if they are not from JRubyClassLoader
- #8343 Free up memory memory used by JRuby during teardown
- #8349 internal proxy class is stored in Ruby land and prints warning
- #8352 Cyclic references in Set objects raise exception with
YAML#load
- #8355 NegativeArraySizeException while parsing Heredoc in irb in JRuby 9.4.8.0
- #8366 Jruby 9.4.8.0 fails to install psych
- #8384 OutOfMemoryError while constructing a NameError in the context of a large object
- #8398 ruby2_keywords + forwarding to native does not properly check arity
- #8412 Intermittent exceptions with ‘Java::JavaLang::NoClassDefFoundError : org/jruby/gen/RubyObject13’
- #8415 Skip extension builds for default gems
- #8416 [Possible bug] Can not start jruby-swing applications since 9.4.9.0 - or rather, the window auto-closes almost instantly
- #8417 Trivial refactoring for match
- #8421 Incorrect case tree selection when comparing long Symbols during compiled Ruby code execution
- #8424 Sort the jump tables based on new values
- #8425 Don’t clear the ThreadGroup when Thread terminates
- #8431 jruby/thread_dump.rb seems to be broken
- #8433 Root specialized object classloader at JRuby classloader
- #8436 Pass Enumerable#uniq arguments properly
- #8438 Remove rogue exit(0) that shuts down JVM
- #8441 Spaces in the path cause
bin/jruby
script to build an invalid command string - #8442 jruby.sh: Use array to handle option files
- #8457 Class#subclasses slows down with larger sets
- #8462 Optimize Class#subclasses
- #8466 jirb 9.4.9.0 - reline “cannot convert parameter to native pointer”
- #8469 fix –jdb -sourcepath command
- #8477 Update to jar-dependencies 0.5.0
- #8478 Avoid re-polling while reporting a Thread#raise
- #8479 Thread interrupt requests can overwrite each other
- #8480 Provide concrete-only traversal for Class#subclasses
- #8481 Update reline to 0.5.12
- #8488 Issues bundling psych related to the jar-dependencies bump
- #8502 Avoid loading jar-dependencies to install gem hook
- #8503 [ji] do not expose InterfaceImpl classes in Ruby land
- #8511 Update to jruby-maven-plugins 3.0.4
- #8512 Disable Maven download progress output on CI jobs
- #8515 Update jruby-maven-plugins to 3.0.5
- #8516 Strange performance difference?
- #8523 Revert multiply to use non-intrinsic exactness checks
- #8538 Backport no-inspect NameError logic
- #8557 Fixes #8355: wallpaper crash in heredoc eof error
- #8562 Use same logic as IR for kwarg handling in IO#write
- #8566 Additional teardown to aid GC and release resources
- #8567 Update thread dump hook for modern JRuby
- #8568 Process.argv0 missing
- #8570 Add Process.argv0
- #8571 Update to jcodings 1.0.59
- #8572 Use warning instead of warning when adding attr as module_function
- #8573 Update jcodings to 1.0.61 and joni to 2.2.3
- #8575 Update psych to 5.2.3
JRuby 9.4.9.0 Released
Monday, November 04 2024
The JRuby community is pleased to announce the release of JRuby 9.4.9.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @kares, @jpcamara, @jsvd
Ruby Compatibility
- Various fixes for keyword arguments. #8344, #8344, #8382, #8389
- Mutex has been fixed to check for thread interrupts (Thread#kill, Thread#raise) immediately after acquiring the lock. #8403, #8404
Standard Library
- The
fiddle
library is now a default gem and can be upgraded independently of JRuby. #8385
Developer Experience
- The core jar file of JRuby can be rebuilt more quickly by calling Maven with the
-Dcore
flag. #8326 - Support for Coordinated Restore at Checkpoint (OpenJDK Project CRaC), which allows snapshotting a running JRuby process and quickly resuming it later. #8367
Java Integration
- The “lazy” constants feature for classes imported from Java, introduced in JRuby 9.4.8.0, has been reverted due to spurious warnings. We’ll revisit it in a future release. #8349, #8368, #8399, #8400, #8401
- Functions were added to allow flushing out thread-local and fiber-local storage for an entire JRuby runtime. #8369
Security
- REXML was updated to 3.3.9 to get recent fixes and to address CVE-2024-49761, a ReDOS vulnerability. Only users parsing unsanitized XML with REXML are affected. #8396
JRuby 9.4.8.0 Released
Tuesday, July 02 2024
The JRuby community is pleased to announce the release of JRuby 9.4.8.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @edipofederle, @fidothe, @ikaronen-relex, @jimtng, @jsvd, @kares, @mullermp, @ntkme
Ruby Compatibility
Standard Library
- jruby-openssl is updated to 0.15.0, with updated Bouncy Castle libraries to avoid CVEs in older versions.
- uri is updated to 0.12.2, mitigating CVE-2023-36617.
- net-ftp is updated to 0.3.7 with restored functionality on JRuby.
58 Github Issues resolved for 9.4.8.0
- #6198 Add test for #6197
- #7515 Process.wait and Process.wait2 not behaving as expected on Windows with JDK > 8
- #7688 Correct Binding#dup to properly propagate values it captures
- #7750 File.absolute_path does not work correctly on Windows when dir_string is specified and contains non-ASCII characters
- #7879 New failures in Rack tests relating to deflater
- #8129 arity for { |a,| } was -2 and should have been 1
- #8140 [ji] support re-reifying class hierarchy
- #8178 Java::JavaLang::ClassCastException: class org.jruby.java.proxies.ConcreteJavaProxy cannot be cast to class org.jruby.RubyArray
- #8183 IPSocket#addr returning “0:0:0:0:0:0:0:0” as bound ip address and not “::” when preferring IPv6
- #8210 Requiring visibility=PRIVATE for native initialize is error-prone
- #8213 Introduce a DEFAULT visibility to indicate unspecified
- #8216 IO.popen fails to find executable with chdir: kwarg
- #8217 JRuby Jar comuptation fails in OSGi environment
- #8218 Process chdir option sooner so execFillarg sees it
- #8219 Class vars overtaken
- #8220 Fix some error messages to make MRI test pass
- #8222 Update uri to 0.12.2 for CVE-2023-36617
- #8225 Different behavior for Array#reject in required file
- #8232 Synchronize state in AbstractVariable and Argv
- #8237 Open3 doesn’t write on the right STDOUT
- #8239 Fix Dir.home for empty dir name
- #8241 Making excluded tests from
test/mri/ruby/test_env.rb
pass - #8242 Resolve symlinks in user provided $JAVA_HOME
- #8243 handle FileSystemNotFoundException when getting jruby jar
- #8244 org.jruby.javasupport.ext.JavaLang.Number#define emits “method redefined” warnings in verbose mode
- #8245 Remove unused variable assignment from Fiddle::Pointer.to_ptr
- #8246 Remove skipped tests from TestAssignment
- #8247 Remove redundant (and slightly broken) to_int and to_f aliases
- #8248 JRuby parses “mixed” IPv6 address as IPv4
- #8250 [ji] avoid already initialized constant warnings
- #8251 Dir.chdir conflicting warning and error
- #8252 yield specific for interp should have same rest logic as other paths
- #8255 Fix #8183. IPSocket#addr should report :: vs long unspecified address
- #8256 Inconsistent debug info for jitted code in IntelliJ
- #8257 Remove passing MRI test Fixnum
- #8258 Check for override method on eql?
- #8261 [deps] update jruby-openssl to 0.14.6
- #8269 Unbound#== for aliases to be considered equal.
- #8270 Enumerable#inject/reduce should show arg error with no arg or block
- #8273 ARGF spec fixes.
- #8274 fix some range conditions in String#* by relaxing to long at first
- #8275 Refinement#import_methods always warns
- #8278 IO.popen does not return value of the provided block
- #8280 Enhancements for IR printing
- #8281 Set writer modification time to now by default
- #8282 Properly check for Module’s superclass
- #8283 Pattern matching not working
- #8284 Fix pattern JIT Hash match and SyntaxError
- #8288 Race fixes for AOT mode in 9.3
- #8289 Subprocess launch with shell fails with empty env
- #8290 Check for empty string from ENV.op_aref
- #8292 Return the value of the block for IO.popen
- #8294 Fix IPSocket.getaddress to handle special case IPv6 addresses
- #8303 update jruby-openssl to 0.15.0
- #8305 Update net-ftp to JRuby-compatible 0.3.7
- #8306 Properly fall back if can’t setAccessible
- #8309 Default Windows filesystem encoding to UTF-8
- #8310 Enhance reflective pid-getting for Windows Java 8+
JRuby 9.3.15.0 Released
Wednesday, June 26 2024
The JRuby community is pleased to announce the release of JRuby 9.3.15.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
This release only fixes a single problem. “AOT” compiled ruby (using jrubyc) had an uncommon race condition which led to strange endless looping behavior.
2 Github Issues resolved for 9.3.15.0
JRuby 9.4.7.0 Released
Monday, April 29 2024
The JRuby community is pleased to announce the release of JRuby 9.4.7.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @kares, @ryannevell, @jsvd
Ruby Compatibility
- Many edge cases in language compatibility have been fixed. #7440, #8128, #8192, #8193, #8195, #8197, #8198
Standard Library
- jruby-openssl is updated to 0.14.5
- rdoc is updated to 6.4.1.1
- Warnings due to method aliasing in the ostruct library have been mitigated. #8200, #8206
JVM Integration
- Ruby classes that are “reified” into a Java class and later redefined can be “re-reified” to a new Java class with an incrementing version number. #8141, #8185
- Java objects from other classloaders can pollute the
Java::
namespace. This behavior can be disabled now, and will be disabled by default in JRuby 10. #8156, #8208
53 Github Issues resolved for 9.4.7.0
- #7440 Multiple assignment evaluation order consistency
- #8112 update this ancient lockfile
- #8113 Remove long dead torquebox from template Gemfile and update to newer …
- #8114 one last update to puma version for sample Gemfile
- #8119 Possible Keyword Argument Regression in 9.4.6.0
- #8121 Prepending a module to a subclass changes it representation in the superclass#subclasses array
- #8122 Handle prepend in subclasses
- #8123 lutimes was passing huge wrong values to function
- #8124 Method.clone of frozen should stay frozen
- #8125 Proc#clone of frozen proc should stay frozen
- #8126 UnboundMethod#clone of frozen UnboundMethod should stay frozen
- #8127 EncodingError should be SyntaxError for bad symbols?
- #8128 parameters value for **nil should be nokey
- #8130 Return proper encoding error string for String#to_c
- #8131 frozen error handling for remove_instance_variable
- #8132 test flags for stats need to handle file instances as well as strings
- #8133 Implement string/eval form of trace_var
- #8134 Fix various kwarg-related specs in IO#open, File#open and Kernel#open.
- #8135 Cannot install latest
rubocop
- #8136 Redo java commandline calculation to work with newer Java’s
- #8138 [deps] update joda-time to 2.12.7
- #8139 to_time raise an exception. (class org.jruby.ext.date.RubyDate cannot be cast to class org.jruby.ext.date.RubyDateTime)
- #8141 can not re-reify sub-class of a Java sub-class
- #8142 Add-Opens for complete -jar runs as expected in later Java’s
- #8144 Allow extended DateTime to still be constructed using DateTime
- #8148 Profiler raises ‘wrong number of arguments for constructor (ArgumentError)’ for the march_hare gem
- #8155 Concurrently requiring a file from multiple threads may “succeed” even if the file raises an error
- #8156 JRuby adds Java proxy classes to the Java module even if they are not from JRubyClassLoader
- #8157 Incorrect case tree selection when comparing Symbols during compiled Ruby code execution
- #8167 Some simple refactoring but removing some mysterious classcast guards
- #8173 Coverage doesn’t cover
begin
- #8179 Thread#pending_interupt? crashes
- #8185 [ji] support re-reifying class hierarchy
- #8186 [fix] LoadError on require should not complete load
- #8191 Rearrange cond0 to behave more like MRI did in 3.1
- #8192 lhs of compound const would crash if not a Module/Class
- #8193 side-effects in const op element assign by exec parent of lhs twice
- #8195 use left to right evaluation
- #8196 [deps] update jruby-openssl to 0.14.5
- #8197 END was not getting parents lvars
- #8198 Give same error message for duplicated case arms
- #8199 Enumerator#next_values behavior does not match MRI or docs
- #8200 Warnings emitted by requiring ‘ostruct’
- #8201 Fix issue#8199
- #8202 do not emit labels which are not used while constructing loops + IGV enhancements
- #8203 rename all closures to more closely match a name you can read vs CLOSURE_2
- #8204 bump rdoc dependency to 6.4.1.1
- #8205 begin node coverage line should not get added if it has been removed
- #8206 Mark frame-aware method names with bang suffix for ostruct
- #8207 Partially undo kwarg optz from #8095
- #8208 Only set up Java:: constants when accessed directly
- #8209 opted case needs to use updated ints when loaded into new runtime.
- #8211 Always unwrap old initialize methods
JRuby 9.4.6.0 Released
Tuesday, February 20 2024
The JRuby community is pleased to announce the release of JRuby 9.4.6.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @evaniainbrooks, @ahorek, @kares, @most00, @ntkme, @sk757a
Ruby Compatibility
- Support for the new Prism parser for Ruby code has been merged in. A blog post will follow soon. #8103
- IO#fcntl had inverted logic for setting O_NONBLOCK (setting it cleared the value, etc). [#8081], [#8090]
- Many fixes to language and core class compatibility, see issue list.
- Warnings should match verbosity levels of CRuby, with many unwanted warnings now properly omitted without verbose enabled. #7183, #8071
Standard Library
- json is updated to 2.7.1. #7752, #7954
- io-console is updated to 0.7.2. This version fixes IRB on Apple M-series by using stty for console manipulation. #8012
- nkf is now supported by gem version 0.2.0. #8077
- strscan is updated to 3.1.0. #8074, [#8086]
- reline is updated to 0.4.2 #8102
- jruby-openssl is updated to 0.14.3 #8107
JVM Integration
- Ruby Symbols can be use as arguments to JVM methods that receive Java String. #8015, #8057
- Starting with Java 17, package-private methods will no longer be bound automatically even if they can be made visible. #8061, #8093
Native Integration
- The subsystem used for native calls has been updated to support RHEL/CentOS 7 and the Java 9+ Cleaner API. [#8104]
Performance
- Performance of keyword argument handling has been improved. #8021
- Pattern matching is now supported in JRuby’s JIT compiler. #8026, #8027
77 Github Issues resolved for 9.4.6.0
- #4808 Rework global variables, caching to eliminate race conditions
- #6430 Using <internal: for core library methods defined in Ruby
- #7151 File.identical? should use stat to compare files
- #7183 Various alias forms warn on redefine when they should not
- #7523 Define IO::READABLE, WRITABLE, PRIORITY for IO#wait
- #7695 jffi ships with binaries requiring glibc 2.27
- #7721 jirb on win10 : The signal TSTP is in use by the JVM and will not work correctly on this platform
- #7729 Sock fixes
- #7752 Update JSON gem to not use Bigdecimal.new
- #7759 irb on CentOS7, JRuby 9.4.2.0 , and JDK 1.8
- #7760 Failure to load FFI gives an outdated message
- #7845 Including a module again after prepending another module to it isn’t idempotent
- #7862 Ruby 2.7 conformance: ObjectSpace::WeakMap is broken for FixNum keys
- #7939 Yaml exception when trying to install rdoc-data
- #7954 Update json for BigDecimal.new fix
- #7958 Prepend internal marker to internal sources
- #7974 [ji] support java_alias with constructor
- #7981 Less instrs
- #7996 Add %aA for printf and friends
- #8001 Fix various specs
- #8002 Time spec fixes
- #8003 Fix issues in global variable thread-safety
- #8005 New MRI test failures on less common architectures
- #8007 Fix intermittent fails in CI
- #8009 Expand WeakMap to allow floats and fixnums
- #8010 Kernel#send does not strip off empty keywords hashes before calling eventual method
- #8011 Fixes #8010. Kernel#send + empty kwargs hash error
- #8012 Update io-console
- #8013 Tag sweep2
- #8014 Fixes language specs involving blocks/yield
- #8015 Java method lookup for arity-1 method with inexact argument fails in the presence of arity-2 method with same name
- #8016 Lang specs
- #8021 Reduce overhead of kwargs for no-arg methods and blocks
- #8022 Remove implicit prologue state to methods/blocks if that state is unused
- #8026 Full JIT support for pattern matching
- #8027 Pattern jit
- #8031 Reuse thread-local jump exceptions to avoid construction
- #8033 Implement
Exception.to_tty?
- #8039 Implement
Exception.to_tty?
- #8040 Match
Exception#full_message
with MRI 3.2 - #8045 Try to find class resource to avoid exception
- #8046 Socket::IFF_* are missing
- #8047 add socket flags for zeroconf
- #8048 Try and make UDP look a little more like MRI (and hopefully make it more functional)
- #8049 Fix String#unpack from using capacity() and causing wrong error
- #8050 Various cleanups for String operations
- #8052 ignore codes logic was not doing anything in unpack
- #8053 More arity splitting
- #8054 A bit confusing error: “FrozenError: can’t modify frozen NilClass”
- #8055 override getDelegate in PrependedModule to return origin
- #8056 Add hex exponential notation for Kernel::Float
- #8057 recognize RubySymbol as assignable to String
- #8060 Inspect frozen object for error
- #8061
enumerable.map
raise wrong number of arguments only when Ruby script is executed from Gradle using JDK 21 - #8063 Fix typos in cli options
- #8070 Attribute definition on singleton should call singleton_method_added
- #8071 Update some warnings to deprecated
- #8072 Added Module#refinements and Refinement#refined_class
- #8074 Update strscan to fix improper sharing
- #8077 Switch to default gem for nkf
- #8080 [fix] avoid Class#subclasses deprecation with class.rb ext
- #8083 (master) rdoc test suite failing with Java::JavaLang::ArrayIndexOutOfBoundsException
- #8088 Update strscan to 3.1.0 for OOB fix
- #8091 Ripper is not returning unary minus with proper symbol
- #8093 Rework visibility checks for Java integration
- #8095 Tweak kwargs logic to improve JIT inlining
- #8099 [ji] fix java_import when constant exists in Object
- #8100 Extra splat instr which did nothing
- #8101 Flip File.identical? logic to try native first
- #8102 Update reline to 0.4.2
- #8103 Prism pluggable integration work
- #8105 Update JNR dependencies
- #8107 update jruby-openssl to 0.14.3
- #8108 fix undef_method error message
- #8109 Simple error string mismatch. Also corrected for m17n naming to prin…
- #8110 Re-arrange indexerror string when matching group name cannot be found
- #8111 NameError and NoMethodError should be dup’ing receiver
JRuby 9.3.14.0 Released
Tuesday, February 20 2024
The JRuby community is pleased to announce the release of JRuby 9.3.14.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Ruby Compatibility
- IO#fcntl had inverted logic for setting O_NONBLOCK (setting it cleared the value, etc). #8081, #8090
Standard Library
- strscan is updated to the 3.1.0 version #8086
Native Integration
- The subsystem used for native calls has been updated to support RHEL/CentOS 7 and the Java 9+ Cleaner API. #8104 Note: Due to a mistake in the release process 9.3.12.0 released yesterday only changed in version number. It was essentially 9.3.11.0 with a new version.
5 Github Issues resolved for 9.3.14.0
JRuby 9.4.5.0 Released
Thursday, November 02 2023
The JRuby community is pleased to announce the release of JRuby 9.4.5.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @ahorek, @jcharaoui, @kares
Ruby Compatibility
- The experimental Fiber::Scheduler and IO::Buffer APIs are now supported, based on the Ruby 3.3 implementation. Pass
-Xexperimental.fiber.scheduler
to JRuby to enable. #7944- For information on Fiber::Scheduler, see https://docs.ruby-lang.org/en/3.2/Fiber/Scheduler.html.
- For information on IO::Buffer, see https://docs.ruby-lang.org/en/3.2/IO/Buffer.html.
20 Github Issues resolved for 9.4.5.0
- #6346 TCPSocket hangs when RST is received on Windows
- #7944 Support for fiber scheduler API
- #7961 Socket.each loops after receiving RST pegging CPU at 100%
- #7967 Propagate read errors in IO backend
- #7968 RbConfig::CONFIG[“SOEXT”] is missing on JRuby
- #7969 add RbConfig::CONFIG[“SOEXT”]
- #7970 Hide FilenoUtil warning behind native.verbose property
- #7971 Bootstrap cleanup
- #7972 Update strscan to 3.0.7
- #7975 Fix ENOENT with TestProcessSpawn on Debian
- #7976 .delete_if blocks allow deleting same object from array twich
- #7978 Less Load{Frame,Implicit}ClosureInstr
- #7979 Process stuck with 100% cpu when using jruby 9.4.4.0
- #7980 Fix length handling in select!/reject! ensure
- #7982 Error using ActiveSupport::Testing::TestHelpers (7.1.1) on jruby-9.4.4.0
- #7983 Build, test failures when build directory contains special characters
- #7984 Remove unnecessary cast of kwargs
- #7985 Make sure gems path is regex-safe
- #7990 [fix] infinite loop calling Java super from Ruby
- #7993 Preserve insertion order for ivars
JRuby 9.3.13.0 Released
Thursday, November 02 2023
The JRuby community is pleased to announce the release of JRuby 9.3.13.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Note: Due to a mistake in the release process 9.3.12.0 released yesterday only changed in version number. It was essentially 9.3.11.0 with a new version.
JRuby 9.3.13.0 has been released with just a handful of bug fixes this time.
We are ramping down maintenance of 9.3 in preparation for EOL at the end of this year. Let us know what we can do to get you on JRuby 9.4 today!
3 Github Issues resolved for 9.3.13.0
JRuby 9.3.12.0 Released
Wednesday, November 01 2023
The JRuby community is pleased to announce the release of JRuby 9.3.12.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
JRuby 9.3.12.0 was a bungled release. It exists but it is just 9.3.11.0 with a new version number. Please upgrade to 9.3.13.0.
0 Github Issues resolved for 9.3.12.0
JRuby 9.4.4.0 Released
Wednesday, October 18 2023
The JRuby community is pleased to announce the release of JRuby 9.4.4.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @ahorek, @chadlwilson, @k77ch7, @kares, @mrnoname1000, @ntkme, @skmp
Ruby Compatibility
Standard Library
- Default gem updates:
- jruby-openssl 0.14.2. #7886
- psych is updated to 5.1.1.1, which uses SnakeYAML and exposes Psych::Parser.code_point_limit= for globally setting the code point limit.
- bigdecimal is now a default gem (3.1.4) for the pure-Ruby portions; the extension remains part of JRuby itself. #7925
- stringio is updated to 3.0.8. #7881
Platform Support
- This release includes native support for Windows on the AArch64 (ARM64) platform. #7843, #7936, #7937, #7941, #7945, #7960
- The
jruby
shell script gains support for ksh93, meaning that essentially all Bourne-compatible shells can run it. #7870
JVM Integration
- Virtual thread use in Fiber can now be disabled using the
jruby.fiber.vthread=false
property (or JRuby flag-Xfiber.vthread=false
). #7907 - Multiple small bugs in JVM bytecode generation and invokedynamic logic were discovered and fixed. #7913
Build and Distribution
- The JRuby/Maven stack of plugins used to integrate Ruby and Maven artifacts have been updated to the latest versions, now using JRuby 9.4.3.0 for builds and avoiding the use of deprecated rubygems.org APIs. #7872
Performance
- Conditional assignment of instance variables now requires only a single lookup, and optimizes to a simple read after assignment. #7891, #7896
78 Github Issues and PRs resolved for 9.4.4.0
- #7430 - Rails fails to boot under Java 19
- #7470 - OpenJ9 failing -Ptest
- #7623 - setup and fix issues reported by error-prone compiler
- #7649 - Infinite loop in StringScanner regex
- #7815 - NullPointerException for compiled code with for loop
- #7839 - `clone’: wrong number of arguments (given 1, expected 0) (ArgumentError) in JRuby 9.4.x
- #7843 - FFI Support for aarch64-windows
- #7847 - File subclass doesn’t pass arguments from open to new properly
- #7848 - Wrong interpretation of multi-expression when clause
- #7849 - Fixes #7848. Wrong interpretation of multi-expr when clause
- #7850 - Fixes #7847. File subclass passes args from open to new wrong
- #7851 - @JRubyMethod minimum argument not enforced in 9.4.3.0
- #7852 - Array#intersect? incompatibility
- #7853 - Fix #7839. `clone’: wrong number of arguments
- #7854 - Pattern matching with an empty hash should result in no match
- #7855 - eval vs lvars scope
- #7857 - Fixes #7855. pattern assoc assigns should scope
- #7858 - Fixes #7854. Pattern matching with an empty hash should not match
- #7859 - Coverage library returns incorrect info for hash literal constants
- #7860 - Restore arity-checking with an opt-out flag
- #7861 - org.jruby.RubyLoadError getCause returns itself
- #7863 - Fixes #7859. Coverage returns incorrect info for hash literal constants
- #7864 - –help and other output does not check TTY
- #7866 - Recursive hashing corrupts shared hash buffer
- #7867 - [deps] update jruby-openssl to 0.14.2
- #7868 - Expanding on an older method of putting call linenums in right place
- #7869 - Make sure Ruby exception does not provide itself as cause.
- #7870 - Launcher tweaks
- #7872 - Migrate to new mavengem
- #7875 - always_verify_ssl_certificates causes class cast error
- #7881 - Update StringIO and reenable specs
- #7882 - [fix] duplicate hash key literal removal
- #7886 - Update jruby-openssl
- #7887 - Fix BigDecimal#power with negative integer
- #7888 - Fix dynscopes
- #7890 - Fix BigDecimal#eql? when an argument is Rational
- #7891 - Conditional assignment of field does two lookups
- #7892 - Fix BigDecimal#quo with prec and without prec
- #7893 - Add INT64_MAX, INT64_MIN, UINT64_MAX, LLONG_MAX, LLONG_MIN and ULLONG_MAX to RbConfig::LIMITS
- #7894 - Fix BigDecimal#div when an argument is object
- #7895 - Fix BigDecimal.allocate to raise TypeError
- #7896 - Optimize
@a ||= x and defined?(@a)
- #7897 - Update test_bigdecimal.rb and fix a few failures
- #7898 - Marshal.dump with frozen string literals differs on –debug flag
- #7899 - Call-site cache remaining callMethod in Set
- #7901 - Protect cached threadlocal in recursive hash
- #7903 - Move frozen string debug fields into subclass
- #7904 - invokedynamic makes Concurrent::TimerTask.execute reliably result in
java.lang.invoke.WrongMethodTypeException
- #7905 - RubyArray: Fix intersect? for small arrays
- #7911 - multiple applications in tomcat and jruby 9.4.3.0 com.headius.invokebinder.InvalidTransformException: java.lang.IllegalAccessException
- #7913 - Multiple fixes for forced JIT and indy-based Java dispatch
- #7918 - Unexpected ArgumentError calling Forwardable delegated single splat method with keyword arguments
- #7922 - Addrinfo
- #7923 - add Addrinfo#ipv6_unique_local?
- #7924 - (master) frozen string errors with
--debug
- #7925 - Switch to bigdecimal gem
- #7926 - Proc.new with no args no longer supported in 3.1
- #7927 - Fixes #7649. Infinite loop in StringScanner regex
- #7928 - More frozen string tweaks
- #7929 - Fixes #7918. Error with single splat method with keyword arguments
- #7931 - Store absolute path of main at load time
- #7936 - Update jnr stack
- #7937 - File.chown throws “SystemCallError:Unknown error (SystemCallError)” at Windows11 on Arm64
- #7940 - More testing with Java 21
- #7941 - Update ffi to 1.16.1
- #7942 - fnmatch not matching glob syntax in 9.3.8 but it did in 9.2.20.1
- #7945 - Update ffi to 1.16.2
- #7946 - In some cases sorting using String.casecmp results in Comparison method violates its general contract!
- #7947 - fnmatch not matching glob syntax
- #7948 - Fix #7815. NullPointerException for compiled code with for loop
- #7949 - Use a lookup() for field access in static constant
- #7950 - Convert to lower, not upper, for casecmp
- #7952 - Avoid ANSI formatting when not on a TTY
- #7955 - Misc regex and strscan improvements
- #7956 - Re-enable J9 test in CI
- #7957 - Use new GHA M1 runner
- #7960 - Update ffi to 1.16.3
- #7966 - Update to psych 5.1.1.1
JRuby 9.3.11.0 Released
Monday, September 11 2023
The JRuby community is pleased to announce the release of JRuby 9.3.11.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thank you to our contributors this release, you help keep JRuby moving forward! @ahorek, @chadlwilson, @justinstoller, @k77ch7, @kares, @snoglobe
Ruby Compatibility
Standard Library
- strscan is still built-in (not a gem) but has been updated to the 3.0.6 version. #7634, #7884, #7889
- Along with this change, our Regexp engine joni is updated to 2.2.1 for Range optimizations.
- Default gem updates:
- jruby-openssl0.14.2 #7877
JVM Integration
- Virtual thread use in Fiber can now be disabled using the
jruby.fiber.vthread=false
property (or JRuby flag-Xfiber.vthread=false
). #7907
Build and Distribution
- The JRuby/Maven stack of plugins used to integrate Ruby and Maven artifacts have been updated to the latest versions, now using JRuby 9.4.3.0 for builds and avoiding the use of deprecated rubygems.org APIs. #7880
33 Github Issues resolved for 9.3.11.0
- #7216 - Something changed from 9.2.x to 9.3.x that causes a SecurityException with access denied when using jruby as osgi-bundle
- #7353 - SSH connection stucked with NET::SSH_7.0.1 and OpenSSH_8.0 with FIPS enabled
- #7394 - require_relative confused by chdir
- #7483 - Regression in Socket#close - EBADF after unsuccessful connection
- #7633 - Do not return early from ThreadService#terminate
- #7634 - Update joni and strscan
- #7635 - Cleanup IO state for true connect failures
- #7648 - Array#fill not compliant with MRI
- #7651 - Fix Array#fill for edge case
- #7677 - SCRIPT_LINES__ is set to nil if you require ripper.
- #7730 - Running specific regex with Regexp::IGNORECASE flag on text starting with specific pipe character results in java.lang.ArrayIndexOutOfBoundsException
- #7742 - fix flipBuffer overloads
- #7749 - When converting from binary to decimal with to_i(2), the result will be 0 if it contains multiple underscores.
- #7754 - [deps] update jruby-openssl to 0.14.1
- #7762 - [fix] avoid walking constructor instructions on every call
- #7769 - error: invalid multibyte character occurs in JRuby 9.4.2.0
- #7782 - Fix defined?(super) on BasicObject from causing NullPointerException
- #7784 - [build] make generated .class files deterministic
- #7794 - [deps] update joda-time to latest 2.12.5
- #7805 - High lock contention in Socket.select in JRuby 9.3
- #7806 - Reduce contention in heavy IO operations
- #7877 - [deps] update jruby-openssl to 0.14.2
- #7880 - Migrate to new mavengem (9.3 version)
- #7889 - Update joni and strscan for recent fixes
- #7906 - It seems that tomcat results in nullpointer exception when clearing tread locals
- #7907 - Improvements for vthread fibers
- #7912 - Guard for null in StringWrapper
- #7916 - ConcurrentModificationException during RubyModule.defineAnnotatedMethods / Ruby.addBoundMethod
- #7917 - Make bound method management threadsafe
- #7920 - Restore default protection domain for OneShotCL
- #7932 - Store absolute path of main at load time
- #7933 - Improve line numbers for generated dynscopes
- #7934 - Fix String#to_i with leading zero and underscores
Updated interview by HostingAdvice.com with Charles Oliver Nutter
Thursday, June 22 2023
Three years later we have a new interview with JRuby developer Charles Oliver Nutter by HostingAdvice.com! This time we talk about the history of JRuby, how Charles got involved in the project, and what JRuby users can expect to see from the JRuby team over the next few years. If you’ve ever wondered where JRuby came from or where it’s going, check out the interview!
HostingAdvice.com and Charles Oliver Nutter on JRuby’s past, present, and future
JRuby 9.4.3.0 Released
Wednesday, June 07 2023
The JRuby community is pleased to announce the release of JRuby 9.4.3.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @byteit101, @donv, @k77ch7, @rcrews
Ruby Compatibility
Standard Library
- Default gem updates:
- rubygems 3.3.26 #7831
- bundler 2.3.26 #7831
- cgi 0.3.6 #7831
- date 3.3.3 (stub gem on JRuby) #7831
- ffi 1.15.5 #7831
- jruby-openssl 0.14.1
- net-http 0.3.0 #7831
- net-protocol 0.1.2 #7831
- reline 0.3.5 #7831
- ffi-binary-libfixposix 0.5.1.1 to support Apple M1 (used by subspawn for improved subprocess management)
- time 0.2.2 #7831
- timeout 0.3.2 #7831
- uri 0.12.1 #7831
- Bundled gem updates: #7831
- net-imap 0.2.3
- Many fixes for BigDecimal behavior by @k77ch7. #7747, #7758, #7766, #7767, #7768, #7778, #7779, #7780, #7781, #7813, #7827
- Rippper now passes all tests related to the syntax_tree gem. #7776
Performance
- Various small optimizations based on Rails and other frequent use cases. #7522, #7720, #7722, #7783, #7789
JVM Integration
- InvokeDynamic support is now being tested across five major test suites on Java 17 and passes all tests that non-indy execution passes. #7797
79 Github Issues resolved for 9.4.3.0
- #1422 - GzipReader#mtime gives the wrong time
- #6607 - Clean up javadoc for stricter Java 11
- #7452 - Default external to locale as in CRuby
- #7474 - Rails 7 support
- #7522 - case/when optimizations
- #7579 - GLIBC compatibility with RHEL/CentOS 7 and JRuby 9.4.0.0
- #7673 - Enable more traces and reduce costs of others
- #7676 - ruby2_keywords should not warn when using …
- #7711 - Constants set by autoload have wrong line number in JIT
- #7712 - Use real stack trace for autoload const location
- #7714 - Enumerator cleanup
- #7717 - sass-embedded gem extension install fails with rake require error on Windows with JRuby 9.4.2.0
- #7718 - Deprecation cleanup
- #7719 - Fixes #7717. sass-embedded gem extension install fails with jruby-com…
- #7720 - More indy call optz
- #7722 - Eliminate duplication for optimized case/when build
- #7723 - passing specs
- #7724 - Syslog tags
- #7725 - More specs already fixed
- #7726 - Ruby-based SecurityManager can recurse forever
- #7728 - [feat] make Ruby#setWarningsEnabled actually useful
- #7734 - Object with finalizer dumps wrong data leading to:
load': marshal data too short
- #7735 -
Dir.home
is no longer compatible with CRuby after JRuby 9.3 - #7738 - Fix Dir.home called with nil user
- #7739 - Don’t try to marshal non-serializable variables
- #7740 - irb error on Mac M1
- #7741 - some line numbers on warnings are off by 1
- #7743 - [ripper] NPE during parsing the rspec documentation
- #7744 - The
File#absolute_path?
implementation in JRuby 9.4.x.x causes issues with asciidoctor-pdf - #7745 - Pathname#absolute? stopped working properly for URIs
- #7746 - Flaky test running rack on JRuby
- #7747 - Ruby 3.1 : fix Bigdecimal
- #7751 - Move arity-checking into variable-arity method bodies
- #7753 - Fix #7743. NPE during parsing the rspec documentation
- #7755 - Fixes #7676. ruby2_keywords should not warn when using …
- #7756 - Regression go away
- #7757 - Migrate regressions into jruby:spec or remove if already covered
- #7758 - Fix BigDecimal#sub with Object and significant digits
- #7761 - Can’t match rspec errors in 9.4.2.0
- #7764 - Mysterious “unused literal ignored” warnings
- #7765 - GH-6607 Clean up javadoc for stricter Java 11
- #7766 - Fix rounding mode constants of BigDecimal to use the same mri’s values
- #7767 - Fix BigMath#exp and #log error message for edge cases
- #7768 - Fix BigDecimal(0, NAN and INFINITY) to return always same object
- #7770 - Fixes #7769. regexp with / before mbc should work.
- #7774 - ripper presents an extra on_var_field for opt parameters in methods
- #7775 - Fixes #7774. ripper presents an extra on_var_field for opt params
- #7776 - Ripper fixes found while running syntax_tree gems tests.
- #7777 - fix try_convert error message
- #7778 - Fix BigDecimal#to_s for edge case
- #7779 - Fix bigdecimal/util’s #to_d and BigDecimal.interpret_loosely to return correct value for loosely case
- #7780 - Fix several BigDecimal failures
- #7781 - Add BigDecimal#power(n, prec)
- #7783 - Rails profiling optimizations
- #7789 - Java call optimizations
- #7790 - jruby –help displays removed taint level command line option
- #7791 - Remove obsolete command line option
-T[level]
- #7793 - Macbook M1 JRuby 9.4.2.0 Could not open library ‘fixposix’ ‘libfixposix.dylib’
- #7797 - Fix recent regressions on master
- #7800 - Update time and uri for recent ReDoS issues
- #7801 - Update time to 0.2.2 and use date stub gem 3.3.3
- #7802 - Update Subspawn to fix #7793
- #7804 - Incorrect ArgumentError: wrong number of arguments
- #7807 - Update joni to 2.2
- #7808 - Update to backport9 1.13 for module javadoc fix
- #7813 - Add BigDecimal#quo(value, digits)
- #7814 - Update jzlib and fix mtime
- #7816 - Fixes #7804. Incorrect ArgumentError: wrong number of arguments
- #7818 - Small documentation issues regarding java options
- #7820 - Accessing
Encoding
from java code is broken on new thread - #7824 - Use top self for evalScriptlet, since no frame yet
- #7826 - Fix Rational#truncate with an invalid value
- #7827 - Fix BigDeciaml#to_f
- #7828 - Improve verbiage of how to use properties.
- #7830 - ArrayIndexOutOfBoundsException matching regex against emoji string
- #7831 - Update stdlib gems and compat to 3.1.4
- #7832 - Update JNR versions
- #7833 - Update IRB tests to 1.7.0 version
- #7834 - Return to IRB 1.4.2 for now
JRuby 9.4.2.0 Released
Wednesday, March 08 2023
The JRuby community is pleased to announce the release of JRuby 9.4.2.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @k77ch7, @andsel
Ruby Compatibility
__callee__
now properly returns the name under which a method was called, which will be the new name in the case of aliased methods. #2305, #7702- More use cases for keyword arguments have been fixed to behave correctly and avoid extraneous warnings. #7637, #7645, #7657, #7658, #7670, #7672, #7686
- Array#pack now supports more cases, passing nearly all specs. #7663
- Compatibility with CRuby’s command-line arguments has been improved. #7678, #7680, #7681, #7681, #7683, #7684
Standard Library
- irb is updated to 1.4.2. #7690, #7691
- open-uri is updated to 0.3.0. #7701
- io-wait is updated to 0.3.0. #7701
- stringio is updated to 3.0.5. #7701
- strscan is updated to 3.0.6. #7701
- open3 is switched to using the gem at 0.1.2. #7701
Platform Support
- Exception backtraces now default to color output when the controlling terminal is a TTY. Disable using
-Xbacktrace.color=false
or equivalent in .jrubyrc. #7693
Performance
- String#split has been optimized to skip regular expression use for simple split expressions. Simple ASCII strings also split faster. #7629
54 Github Issues resolved for 9.4.2.0
- #2305 -
__callee__
behaves differently from MRI - #7477 -
Integer#chr(encoding: Encoding::UTF_8)
raises a differentRangeError
exception message than on CRuby - #7480 - Cannot call
SubClass#initialize_copy
with an object created from the super class - #7615 - opt != for fixnum in JIT/indy
- #7629 - Split opts
- #7637 - 9.4.1.0: Wrong number of arguments with kwargs when subclassing a java class
- #7639 - Typing @ into irb in 9.4.1.0 crashes it
- #7641 - “Port already in use” errors when configuring remote JMX in 9.4
- #7642 - [9.4.1.0] ArrayIndexOutOfBoundsException
- #7643 - Use SmartBinder to set up struct calls
- #7645 - Fixes #7637. Arity error with kwargs when subclassing a java class
- #7650 - BigDecimal arithmetic regression [jruby-9.4]
- #7652 - Fix Float#to_d of bigdecimal/util
- #7653 - Fix Struct#values_at when passed an integer Range argument for edge cases
- #7655 - JIT coverage fixes
- #7656 - Regression: Class variables in top level methods broken compared to MRI & 9.3
- #7657 - Pattern matching unexpectedly raises “duplicated key name” error
- #7658 - remove deplicated key name error
- #7659 - Fix for #7656.
- #7662 - END blocks had regressed and was calling same block >1
- #7663 - Array#pack unknown directive warns
- #7664 - All these work?
- #7665 - Arity errors for ‘call’ things in Signal#trap
- #7666 - Array#new size boundary error not tripping
- #7667 - Kernel#respond_to? return wrong error string but right error.
- #7668 - Array#to_s/inspect should be same method
- #7669 - Proc#inspect with &:foo should print that out in str
- #7670 - Probably method_missing is not handling keyword arguments properly [jruby-9.4.1.0]
- #7671 - Binding local_variables makes sure they are lvars
- #7672 - jruby-9.4.1.0 issues warning about duplicated keys
- #7674 - Fix #7672. warning about duplicated keys
- #7675 - JIT loses line numbers in some warnings?
- #7678 - Add –encoding command line option.
- #7679 - Spec sweep
- #7680 - disabling RUBYOPT processing was not hooked up.
- #7681 - Frozen string debugging off by one.
- #7682 - The -p command line should use print and not puts.
- #7683 - All -I provided relative paths shold be made absolute
- #7684 - Fixed windowsJ encoding and do not set on invalid K values
- #7685 - Add a warn form that takes a callback
- #7686 - Fix #7670. Coverage data goes off the rails.
- #7687 - Passing specs
- #7690 - Update
irb
to version1.4.2+
- #7691 - Updates irb to 1.4.2
- #7693 - Enable color if console is a tty
- #7694 - Mimic CRuby’s range error logic for chr
- #7696 - Make coderange set on strings created from some IO ops
- #7700 - Define real error methods to avoid callee
- #7701 - Update gems
- #7702 - Encode new and old name in aliased calls
- #7708 - Enumerator.new takes at most one arg
- #7709 - Eliminate 2- and 3-arity paths for Enumerator#initialize
- #7715 - We were quoting symbols in inspect we shouldnt have
- #7716 - Add infra to support Ruby 3.1 pattern error messages.
JRuby 9.4.1.0 Released
Tuesday, February 07 2023
The JRuby community is pleased to announce the release of JRuby 9.4.1.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @ahorek, @cboos, @evaniainbrooks, @jcharaoui, @k77ch7, @knovok, @Panxuefeng-loongson, @ydah
Thanks also to the community of JRuby users for trying out JRuby 9.4.0.0 and filing issues! We’re proud to include so many fixes in this update release and we couldn’t have done it without your bug reports.
Ruby Compatibility
- Several fixes to keyword arguments are included in this release. #7434, #7494, #7497, #7502, #7513, #7537, #7552, #7561, #7572, #7573, #7574, #7583, #7592, #7593
- Random has been fixed to work properly with SecureRandom, which was generating all zeros. #7586, #7597, #7607, #7617
Standard Library
- The Psych YAML library is updated to 5.1.0. This version switches the JRuby extension to SnakeYAML Engine, avoiding CVEs against the original SnakeYAML and updating YAML compatibility to specification version 1.2. #6365, #7570, #7626
Platform Support
- Final changes to support the LoongArch64 architecture have been merged in. #7518
Performance
- Overall JIT bytecode size has been improved, allowing more methods to compile to JVM bytecode. The maximum IR size eligible for JIT has been increased from 1000 instructions to 3000 instructions. #7589
84 Issues resolved for 9.4.1.0
- #5534 - irb and rails console broken on windows 10
- #6297 - jruby-jars profile fails on Java 11
- #6365 - Psych syntax error changed in JRuby 9.2.13.0
- #7112 - RSpec can’t match errors in jruby-9.4.0.0
- #7434 - [9.4.0.0]
IR compiler/interpreter bug: org.jruby.ir.operands.UndefinedValue should not be used as a valid value during execution.
- #7476 -
Zlib::GzipWriter
cannot be properly sub-classed - #7479 - Cannot sub-class
Zlib::GzipWriter
and call.wrap
- #7481 -
Symbol#to_s
returns a frozen String - #7485 - JRuby 9.4 defines Hash#index, and defines Hash.ruby2_keywords_hash{,?} as instance methods
- #7486 - Regression in 9.4 (optimizer? JIT?)
- #7487 - Regression in 9.4 IRB parser
- #7488 - Remove Hash index method, and fix ruby2_keywords_hash module method
- #7489 - Symbol to_s returns frozen string
- #7490 - Update actions/checkout version to v3
- #7491 - Enumerator using Enumerable method with Symbol#to_proc passing wrong value to yield
- #7492 - Possible regression in JRuby v9.4.0.0
- #7493 - one-time-execute can sometimes contain a closure. guard it.
- #7494 - Specific arity kwargs undefined
- #7497 - We should not be setting callInfo anywhere but the call(site) sans (K…
- #7499 - Warnings in Rake’s extension code to FileUtils under JRuby 9.4.0.0
- #7500 - “Unknown node encountered in builder” error on previously working code
- #7501 - DNodes are ListNodes and get compiled wrong in presence of a splat.
- #7502 - Excessive kwargs duplicate key warns
- #7503 - [refactor] make Java embed utils generic
- #7506 - JRuby 9.4.0.0 Anonymous block argument after a splat is broken
- #7509 - Fix syntax error in all cases where & is a param.
- #7510 - Fixes #7479. Cannot sub-class Zlib::GzipWriter and call .wrap
- #7511 - Fixes #7476. Zlib::GzipWriter cannot be properly sub-classed
- #7513 - Kwargy
- #7518 - Support for LoongArch64
- #7520 - Error running rubocop with JRuby 9.4.0.0
- #7521 - FFI errno spec fails on JRuby on Windows
- #7525 - ENV encoding fixes (windows)
- #7526 - Refinement does not self-refine properly
- #7527 - alias winapi_error to lasterror
- #7529 - Enumerator#inspect produces an ASCII-8BIT encoded String
- #7531 - Enumerator#inspect: Use String concatenation not just bytelist appends
- #7532 - Enumerator inspect tests
- #7534 - [feat] allow enabling warnings wout changing $VERBOSE
- #7535 - Refinement regression on 9.4
- #7536 - Fixes #7492. define_method should use definition scope.
- #7537 - Keyword argument regression in JRuby 9.4
- #7539 - The
:binmode
keyword argument isn’t applied onTempfile
in JRuby 9.4 - #7541 - passthrough anno added
- #7547 - jruby-complete cannot start irb in windows
- #7549 - [ji] support converting RubyThread to a java.lang.Thread
- #7550 - Fix Enumerable#zip when an argument does not have each method
- #7551 - UnboundMethod#bind should use virtual include class for module methods
- #7552 - Fixes #7537. Kwargs arg regression.
- #7556 - jRuby 9.4 fails to load Celluloid gem
- #7557 - [ji] revert Thread#to_java behavior to stay compatible, for now
- #7561 - Delegating methods must be able to set ruby2_keywords on delegate.
- #7563 - Fix comparator of Bignum and Infinity
- #7564 - Fix Numeric#remainder when divisor is infinity
- #7566 - Fix Float#floor and Float#round for some edge cases
- #7567 - Fix missing require in mri-core tests
- #7570 - New snakeyaml vulnerability has dropped, affects jruby-complete
- #7571 - [refactor] warnings which assumed a message is being passed
- #7572 - Keyword arguments are catched as arguments instead of keyword arguments
- #7573 - Fixes #7572. Blocks with only keywords losing keyword status.
- #7574 - Simplify logic in IRBuilder for keyword arguments.
- #7576 - yield from Enumerator raises “no receiver given”
- #7580 - Enumerator acts differently when Symbol#to_proc is used
- #7583 - Dir[] with multiple patterns fails if kwargs given.
- #7586 - SecureRandom.random_number is always 0
- #7589 - JIT size and perf improvements
- #7591 - Fix Float#round with half even option
- #7592 - Unexpected ArgumentError due to a JIT bug in JRuby 9.4.0.0
- #7593 - Code was trying to make an int out of the kwargs hash.
- #7594 - Attempt at making proper inflate error happen.
- #7595 - Set refinement bit before building closure
- #7596 - Java::JavaLang::ClassCastException when initializing instance variable
- #7597 - If no seed given, use default random for seed
- #7599 - Treat send of using or refine as refinement
- #7601 - Fixed launch jruby in MSYS2 environment
- #7602 - Some ranges will ‘warning: … at EOL, should be parenthesized?’
- #7603 - Fix errant … warning
- #7606 - Use an identity map for the partial objects
- #7607 - Array#sample does not honor random byte gen
- #7617 - Implement ulong random logic with random bytes
- #7619 - Small internal optimizations found profiling CSV
- #7620 - Use Region accessors in prep for privatizing fields
- #7626 - Use Psych 5.1
- #7628 - RUBY_REVISION is a short sha, not the full sha like on other Rubies
JRuby 9.3.10.0 Released
Wednesday, February 01 2023
The JRuby community is pleased to announce the release of JRuby 9.3.10.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thank you to our community members who contributed pull requests for this release: @ahorek
Ruby Compatibility
- Various small compatibility fixes. See the issues list.
Platform Support
Regexp Regression Fix
- Fixed regression which caused longer strings to match slower. (#7484)
Issues resolved for 9.3.10.0
- #5588 - OpenSSL::PKey::RSA.new without password results in terminal input failure
- #6821 - Possible unpacking issue on current 9.3.0.0 with arm64 arch
- #7260 - JRuby supports a new architecture
- #7484 - Regression for non matching Regexp in
9.3.4
- #7514 - [fix] java_alias-ing for interface methods
- #7542 - specs for pack/unpack with
j
andJ
formats failing on 32-bit platforms - #7545 - public_method_defined? changed value after prepend unrelated module
- #7546 - Method overriding new does not have super_method from Class
- #7548 - cannot use T::Struct from sorbet-runtime due to exception
- #7554 - 1 « (2**40) returns 1 on JRuby
- #7555 - UnboundMethod#bind should introduce include class
- #7558 - Raise NoMemoryError for lshift > int max
- #7559 - Etc#sysconf errors when it shouldn’t
- #7560 - Improvements and greening of 9.3 CI
- #7562 - Use latest mysql like sequel HEAD
- #7565 - Process#spawn should call #to_io on non-IO file descriptor objects
- #7575 - Fix Method#super_method.owner pointing at wrong class
- #7577 - Fix public_method_defined in presence of prepend
- #7581 - Use platform bit width for J/j pack directive
- #7590 - backport Update JNR dependencies
- #7596 - Java::JavaLang::ClassCastException when initializing instance variable
- #7598 - instance_eval, module_eval, class_eval cannot yield to block
- #7605 - Also include frame’s block for instance_eval
- #7608 - Support for LoongArch64
JRuby 9.4.0.0 Released
Wednesday, November 23 2022
The JRuby community is pleased to announce the release of JRuby 9.4.0.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The release of JRuby 9.4 represents a leap forward to Ruby 3.1 compatibility, which would not have been possible without help from the excellent contributors in our JRuby community: @k77ch7, @PurityLake, @ahorek, @byteit101, @mrnoname1000, @edipofederle, @chadlwilson, @philr, @gtback.
A special shout out goes to Kiichi Hiromasa (@k77ch7) for submitting dozens of feature and fix PRs and to Patrick Plenefisch (@byteit101) for his work on the libfixposix-powered subspawn gem.
We plan to put out several maintenance updates in the next few months. To help us improve compatibility and performance, we encourage you to try your apps and libraries on JRuby 9.4 and report any issues you find.
- Issue tracker: https://github.com/jruby/jruby/issues
- Matrix chat: https://matrix.to/#/#jruby:matrix.org
- Twitter: @jruby
- Mastodon: @jruby@ruby.social
- Mailing list: jruby@ruby-lang.org
Ruby Compatibility
- Compatibility is updated to Ruby 3.1 level. This includes all Ruby 2.7, 3.0, and 3.1 features except where noted below. (#6464, #6878, #7015)
- Ractor is not yet supported. JRuby users can achieve better parallelism by using threaded libraries and frameworks.
- The scheduler interface for IO, locks, and fibers is not yet supported. It will be added in an update release.
- Nearly all features from CRuby’s NEWS file have been implemented. Most new tests and specs pass.
- Remaining 3.0 and 3.1 features will be implemented in an update release. See #7459 and #7460.
Standard Library
- Much of the standard library has moved out to gems, and JRuby supports a large subset of these gems. See lib/pom.rb for the complete list of default and bundled gems.
- Greatly improved PTY and spawn support thanks to the subspawn gem, which is included as part of the standard library. #7393
JVM Integration
- Java setFoo methods that do not match JavaBean standards (return value other than void, for example) will now also generate a foo= method when imported into Ruby. (#7340, #7352)
Platform Support
- The JRuby launcher script has been ported to POSIX shell (/bin/sh) and no longer requires Bash. (#7024)
- Initial support for the LoongArch64 platform has been inherited from the Java Native Runtime libraries.
Third-party Libraries and Frameworks
- Initial support for Rails 7. SQLite and MySQL are largely functional, but work remains to update them and PostgreSQL.
JRuby 9.3.9.0 Released
Monday, October 24 2022
The JRuby community is pleased to announce the release of JRuby 9.3.9.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: @chadlwilson, @coheigea
Standard Library
- rdoc has been updated to 6.3.3 to fix all known CVEs. (#7396, #7404)
- rexml has been updated to 3.2.5 to fix all known CVEs. (#7395, #7405)
- jruby-openssl has been updated to 0.14.0 to fix weak HMAC key hashing in bouncycastle, which itself is updated to 1.71. (#7335, #7385, #7399)
- psych has been updated to 3.3.4 to fix CVE-2022-38752 in the SnakeYAML library, which itself is updated to 1.33. (#7386, #7388, #7400)
- rubygems has been updated to 3.2.33 and bundler updated to 2.2.33 to address CVE-2021-43809. (#7397, #7401)
Github Issues resolved for 9.3.9.0
- #5588 - OpenSSL::PKey::RSA.new without password results in terminal input failure
- #7335 - Upgrade jruby-openssl to 0.14.0
- #7367 - StringIO ignores external encoding on Windows
- #7380 - [Tiny issue] swing2.rb example at https://github.com/jruby/jruby/blob/master/samples/swing2.rb has a warning, “swing.rb:4: warning: import is deprecated; use java_import”
- #7385 - Updating jruby-openssl to 0.14.0
- #7386 - Update SnakeYaml to 1.32+ due to CVE-2022-38752
- #7388 - Update to Psych 3.3.4
- #7395 - Update embedded rexml in jruby-complete
- #7396 - Update rdoc in jruby-complete
- #7397 - Update bundler in jruby-complete
- #7399 - Update bouncycastle in jruby-complete
- #7400 - Update snakeyaml in jruby-complete
- #7401 - [deps] update Bundler/Rubygems to latest patch
- #7404 - Update rdoc to 6.3.3 to fix known CVEs
- #7405 - Update rexml to 3.2.5 to fix known CVEs
- #7406 - Time.at with fractional seconds and :in doubles timezone offset
- #7407 - Better match CRuby zone negotiation
- #7416 - Regexp new none option
JRuby 9.3.8.0 Released
Tuesday, September 13 2022
The JRuby community is pleased to announce the release of JRuby 9.3.8.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: @ahorek, @ccutrer, @evaniainbrooks, @naveensrinivasan
Ruby Compatibility
- Altering the visibility of an included module method no longer changes what super method gets called. (#7240, #7343, #7344, #7356)
- Thread termination at shutdown is more robust and visits all non-main threads. (#7351)
Standard Library
- csv has been updated to 3.2.5 to pick up a fix that eliminates fiber use for simple parse_line calls. (#7346, #7348)
- psych has been updated to 3.3.3 to address CVE-2022-25857, an element-nesting DoS. (#7342)
Experimental Features
- Fibers can now be configured to use OpenJDK Project Loom’s virtual threads, which are lightweight and do not consume a native platform thread. Virtual threads make it possible for JRuby applications to create thousands of concurrently-executing fibers. Enable this feature on Java 19 using the JVM flag
--enable-preview
. (#7328)
27 Github Issues resolved for 9.3.8.0
- #7240 - Changing method visibility changes behavior for module-inherited methods
- #7257 - chore: Set permissions for GitHub actions
- #7262 - jar-dependencies cannot be updated out-of-band from jruby
- #7265 - Time.at argument handling
- #7303 - Fix included_modules method to not return wrapped modules
- #7316 - Incompatible error when nested
LoadError
- #7317 - Oddity with the jruby parser: it warns me about “warning: found = in conditional, should be ==”
- #7321 - Fix issue #7316 runtime error when nested raise
- #7324 - Time::at with BigDecimal emits Java Negative Exponent exception
- #7325 - Fix negative scale BigDecimal#to_r
- #7326 - sum method - undefined method ‘last’ for 1:Integer
- #7328 - Use vthreads when available
- #7332 - defined reified classes with their parent class’s classloader as parent
- #7333 - fix Enumberable sum when elements are array
- #7334 - fix zlib encoding
- #7338 - InstanceConfiguration extra loaders not thread safe
- #7342 - Update SnakeYaml to 1.31+ due to CVE-2022-25857
- #7343 - Fix for changing method visibility changes behavior for module-inherited methods
- #7344 - Changing method visibility changes super_method for module-inherited methods
- #7345 - Use thread-safe COW lists here
- #7346 - Iterating over
CSV.parse_line
causes an explosion of threads/fibers - #7348 - Update CSV to 3.2.5
- #7351 - Avoid accidentally killing the teardown thread
- #7354 - Fix 7317 it warns me about “warning: found = in conditional, should be ==”
- #7356 - Fix for method visibility changes super_method for module-inherited methods
- #7358 - Update polyglot-maven and commit updated XMLs
- #7359 - Fixes Time.at argument handling (#7265)
JRuby 9.3.7.0 Released
Tuesday, August 16 2022
The JRuby community is pleased to announce the release of JRuby 9.3.7.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: [@evaniainbrooks], [@k77ch7], [@ccutrer], [@jimtng]
22 Github Issues resolved for 9.3.7.0
- #7120 - Gem.install caused a BootstrapMethodError
- #7185 - Spurious constant replacement warning when using include_package
- #7211 - require_relative doesn’t work inside Jar with 9.3.4.0
- #7218 - Empty rescue block returns exception object instead of nil
- #7264 - update jar-dependencies gem hooks
- #7267 - Circular exception handling can cause infinite loop since 9.3.4.0
- #7268 - com.sun.nio.file.ExtendedOpenOption not available in OSGi bundles on Windows since JRuby 9.3.0.0
- #7271 - Fix BootstrapMethodError in runtime helpers
- #7279 - simple timeout script does not work
- #7280 - Eliminate JI-specific const replacement warning
- #7281 - Use the wide versions of these functions always
- #7282 - Fixes #7218. Empty rescue block returns exception object instead of nil.
- #7288 - Clear errinfo after each finalizer runs
- #7289 - Revert “update jar-dependencies gem hooks”
- #7291 - update jar-dependencies 0.4.2 reference in lib/pom.rb
- #7292 - Always pass filename into AOT root scope creation
- #7298 - Revert “update jar-dependencies 0.4.2 reference in lib/pom.rb”
- #7299 - Fix for issue 7256: Undefined constants when including a module that has been prepended
- #7302 - Fix for issue 7256 (jruby-9.3)
- #7304 - Only use NOSHARE_DELETE if accessible
- #7306 - Syntax Error occurs in regex
- #7314 - Fix parsing Regexp for #7306
JRuby 9.3.6.0 Released
Monday, June 27 2022
The JRuby community is pleased to announce the release of JRuby 9.3.6.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: @ahorek, @keimar, @k77ch7
Ruby Compatibility
- Fixed a leak in the frozen string cache and now ensure frozen strings are reused correctly without reencoding. (#7166, #7229, #7242)
Java Integration
JRuby 9.2.21.0 Released
Monday, June 27 2022
The JRuby community is pleased to announce the release of JRuby 9.2.21.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
Thanks to our contributors this cycle for helping to maintain and improve JRuby 9.2: @dee-see, @edipofederle, @DirkMahler
Ruby Compatibility
- Fixes for a memory leak in the frozen string cache have been backported. (#7021)
Java Integration
- The internal cache for nested jar file contents has been optimized and a new option added for cache expiration. (#7225, #7232, #7259)
Hardware Support
- Support for Apple’s M processors has been backported. It has not been heavily tested, but it has been confirmed working by users. (#6953, #6965, #6985)
Standard Library
- jruby-openssl update to 0.12.2. (#7140)
JRuby 9.3.4.0 Released
Wednesday, March 23 2022
The JRuby community is pleased to announce the release of JRuby 9.3.4.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thanks to our contributors this cycle for helping to improve compatibility: @ahorek, @byteit101, @k77ch7
Ruby Compatibility
define_singleton_method
now always uses public visibility. This simplifies its implementation and eliminates warnings when aliasing it, as in the ostruct gem. (ruby/ostruct#40, #7031, #7055)
Java Integration
- The
import
method for importing Java classes remains deprecated for removal in 9.4, but now provides a better warning with a source location. (#6976) - Ruby subclasses of Java classes and Ruby classes converted into Java classes can now include instance variables that are accessible from Java as normal fields. This improves integration with Java frameworks that use reflection to access object state. (#7012)
Hardware Support
- Generated make files now properly set the platform architecture when running on Linux/aarch64 and Apple’s M1 family of CPUs. This allows sassc and other non-extension C-based gems to build and install properly. (sass/sassc-ruby#231, #7132, #7133)
Standard Library
- ostruct is updated to 0.5.1, which fixes warnings in verbose mode loading the json library. (#6831, #6963)
- logger is updated to 1.5.1, which fixes a log rotation locking issue on Windows. (ruby/logger#67, ruby/logger#68, #7038)
- Socket IPv6 constants are now always defined regardless of platform support, matching CRuby and JRuby 9.2. (#7069, #7071)
33 Github Issues resolved for 9.3.4.0
- #6976 - [Better error/notification message] “calling java_import on a non-Module object is deprecated”
- #7009 - Break in block passed to Thread doesn’t cause LocalJumpError
- #7012 - Allow reified classes to store instance variables in raw fields
- #7016 - Compile splatted rescue as splat
- #7018 - New string literals are marked as tainted if previously equal tainted strings were read from a file
- #7020 - Avoid interning tainted strings
- #7029 - Handle unrooted break jumps in Thread
- #7031 - warning: OpenStruct#define_singleton_method accesses caller method’s state and should not be aliased
- #7035 - Circular exception causes break JRuby
- #7038 - Log rotation inter-process lock failed, Issue occurs in JRuby 9.3.0.0 and Windows
- #7055 - Explicitly use public visibility for define_singleton_method
- #7056 - Restore 9.2 collect signature and add more API
- #7069 - Socket::PF_INET6 is nil on 9.3 when ipv6 is not available, unlike with MRI and 9.2
- #7070 - Regression: 9.3 converts LoadError to NameError when autoloading repeatedly and loading fails and file being loaded is not in current directory
- #7071 - revert ipv6 availability
- #7074 - Remove the require lock on LoadError
- #7102 - ArgumentError re-splatting empty keyword arguments
- #7104 - Integer#to_s, Integer#to_json includes null character(\x00, \u0000) on JRuby 9.3.*
- #7111 - Fix #7104
- #7117 - java_signature throws NPE when using positional annotation arguments
- #7131 - More checking for null fd
- #7132 - Architecture tweaks for JRuby on M1
- #7133 - [aarch64] fix unrecognized command -m64 for native extensions
- #7137 -
Range#===
should not accept range argument - #7138 - Use non-range cover logic for eqq and include
- #7139 - [deps] bump jruby-openssl to latest (0.12.2)
- #7142 - Update jcodings
- #7143 - Better warnings for deprecated java_import forms
- #7145 - Disallow circular causes
- #7146 - Revert ivar Java fields to fix remaining issues
- #7147 - Fixes #7102. ArgumentError re-splatting empty keyword arguments
- #7150 - Allow reified classes to store instance variables in raw fields (fixed)
- #7153 - Ripper.sexp throws error while parsing ‘ö’
JRuby 9.3.3.0 Released
Wednesday, January 19 2022
The JRuby community is pleased to announce the release of JRuby 9.3.3.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
The big news this release is support for Apple’s M1 family of processors (Apple Silicon) via an update to our native FFI backend library. Nearly all our usual test suites are passing on M1 and we have added a self-hosted CI runner thanks to MacStadium’s OSS program. Callbacks from C to Ruby are unsupported, but this does not affect any libraries we ship. We will continue to improve M1 support with your help and bug reports.
We encourage users to file issues first and ask questions later! Please join our Matrix room if you have any issues or just want to get involved.
Thanks to our contributors this cycle for helping to improve compatibility: @ahorek, @byteit101
Additional thanks to @kovyrin for working through M1 issues with us and confirming that a large application builds and tests successfully.
Hardware Support
- This release includes greatly improved support for Apple Silicon processors like the M1. (#6813, #6853, #6974, #6977, #6983, #6986, #7006)
- Known issue: passing a Ruby FFI Function object to C code as a callback is not currently supported due to security restrictions on Apple Silicon. Neither JRuby nor any libraries we ship require this functionality. We will fix it for a future release. (#6995)
Ruby Compatibility
- The parser once again handles files larger than 32k lines. This issue affected simplecov and mailer gems that we know of. (#6984, #6991)
Standard Library
- ostruct is updated to 0.5.1, which fixes warnings in verbose mode loading the json library. (#6831, #6963)
Java Integration
- Additional fixes for super calls from Ruby subclasses of Java classes to match behavior in 9.2.x. (#6935, #6957)
22 Github Issues resolved for 9.3.3.0
- #6813 - File.directory? returns false on macOS M1 for a directory
- #6831 - require “json” outputs warnings
- #6853 - Getting “io/console on JRuby shells out to stty for most operations” on Jruby 9.3 with JDK17
- #6935 - RuntimeError: Found multiple supers in java ctor
- #6957 - Make split-super errors slightly more user friendly
- #6963 - Update ostruct to 0.5.1
- #6968 - Calling super() in a reopened Java subclass method triggers NPE in IRRuntimeHelpers.javaProxySuper
- #6974 - Dir.mktmpdir errors on apple-silicon native JDK
- #6977 - gem install error “Permission denied” for jruby 9.3.2.0 [darwin-aarch64] (Apple M1)
- #6981 - JRuby 9.3.2.0 case/when array comparison differs from CRuby 2.6.9
- #6983 - Wrong file mode/permission when opening/creating a new file [Apple Silicon, arm64, aarch64]
- #6984 - Java::JavaLang::ArrayIndexOutOfBoundsException on jruby-9.3.2.0
- #6986 - Merge 9.2 for JNR update and Symbol fix
- #6989 - case when with an empty array
- #6991 - Fix #9684. AIIOBE when files >16bit lines and using coverage
- #6993 - Possible memory leak from
instance_eval
with jruby 9.3 - #6994 - Fixes #6993. Evals cause memory leak.
- #6996 - Do not cache non-“once” dregexp
- #7004 - Module check mishandles bash operator precedence
- #7006 - Fixes to run tests on Apple Silicon
- #7007 - Java class reopened to add a super call should dispatch normally
- #7010 - Avoid subshell for module check
JRuby 9.3.2.0 Released
Thursday, December 02 2021
The JRuby community is pleased to announce the release of JRuby 9.3.2.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Security
-
Date-parsing methods have been modified to accept an input-size
limit
option. This addresses CVE-2021-41817. It was originally reported against Ruby’s C-baseddate
extension, which JRuby does not use, but JRuby’s own implementation ofdate
is also affected by the same issue.The fix is detailed in #6952. A workaround is provided, via patching the pure-Ruby
date
code in your own JRuby install. Rebuilding JRuby is not necessary. -
In order to match Ruby behavior and permit interrupting these date-parsing regular expression matches, this release also enables interruptible regular expressions globally. This feature can be disabled using the “regexp.interruptible” JRuby option as described in the above PR.
Performance
Native Integration
- The jffi library on MacOS has been updated to sign the native library, allowing it to load properly on Apple Silicon. This improves compatibility on Apple’s AArch64 systems (M1 and friends). (jnr/jffi#116, jnr/jnr-ffi#257)
Github Issues resolved for 9.3.2.0
- #5729 - Check to see if we can do single nanosecond level math
- #6813 - File.directory? returns false on macOS M1 for a directory
- #6843 - move syslog constants to jnr-constants
- #6889 - Also print causes of bubbled-out exceptions
- #6895 - JRuby 9.3 Hash eats key String subclass instance variables
- #6896 - JRuby 9.3 singleton_class bug
- #6899 - Do not deduplicate strings with ivars
- #6900 - Skip prepend wrappers in each_object(Module)
- #6924 - java.lang.Iterable object has Enumerable ancestor but map cannot be called (jruby-9.3.x)
- #6942 - New strftime
- #6943 - Honor the requested address even given hostname
- #6945 - Socket fixes for GHA CI
- #6952 - Limit Date.parse input length and make interruptible
- #6954 - Fix 6924
- #6956 - Improve Performance of Time#strftime
JRuby 9.2.20.1 Released
Wednesday, December 01 2021
The JRuby community is pleased to announce the release of JRuby 9.2.20.1
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
This is a security release to address CVE-2021-41817. It was originally reported against Ruby’s C-based date extension, which JRuby does not use, but JRuby’s own implementation of date is also affected by the same issue.
The issue affects calls to various Date and DateTime parsing methods with extremely long strings. The regular expressions associated with these methods may run much longer than desired or never return.
The fix is detailed in #6951. A workaround is provided, via patching the pure-Ruby date code in your own JRuby install. Rebuilding JRuby is not necessary. This PR is the only functional difference from JRuby 9.2.20.0.
We recommend that all JRuby 9.2 users upgrade.
JRuby 9.2.20.0 Released
Tuesday, November 02 2021
The JRuby community is pleased to announce the release of JRuby 9.2.20.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
Compatiblity
- Argument-count errors will now produce a more accurate backtrace. (#6335, #6768, #6771, #6846, #6928)
Standard Library
- jruby-openssl has been updated to 0.11.0, which includes fixes for expired and replaced certificate verification. (#6871, #6909)
Native Integration
- The built-in FFI library has been updated to match the FFI gem, and can now be upgraded independently of JRuby. (#6732, #6747)
- FFI-based core methods on Windows and Solaris have been modified to delay activating FFI until after RubyGems has loaded any upgrades. (#6751, #6760, #6762)
Java Integration
-
Nested jar files (jars packaged within another application jar) should load more quickly with caching improvements. (#6730, #6734, #6740)
-
39 issues fixed for 9.2.20.0
Github Issues resolved for 9.2.20.0
- #5617 - JRuby raises ENOENT instead of EACCES
- #6184 - NullPointerException or “class is not compiled Ruby” error when using a “for” loop
- #6335 - ArgumentError is reported at wrong level for some jitted methods
- #6726 - Open3 with no JAVA_OPTS fails silently
- #6727 - Fixes #6184. NullPointerException/”class is not compiled Ruby” for loop
- #6730 - JarCache checking for File.lastModified heavily slowing down startup
- #6731 - Use java_home command on MacOS
- #6734 - Backport JarCache soft reference fix
- #6737 - GPL-2.0 with Classpath Exception in the COPYING file
- #6740 - 6730 jar cache slowing down startup time 9.2
- #6741 - Fix reference type and avoid closing jar directly
- #6742 - Backport FFI from master
- #6745 - exec on Windows doesn’t find
.bat
files in PATH - #6746 - Fixes for Windows native exec
- #6747 - Backport FFI from master
- #6748 - Inconsistent encoding when calling #to_s on arrays containing hashes with non us-ascii characters
- #6750 - JRuby issue with Installer EXE file
- #6758 - private/private_method_defined? raising error when a module is prepended
- #6759 - Fixes #6748. Inconsistent encoding when calling #to_s on arrays.
- #6761 - JRuby crashes instead of reporting a syntax error in sequential
rescue
s where the error variable wasn’t defined for the first one - #6764 - 1r should equal to 1.0r
- #6765 - Use canonical form for “r” liternal
- #6767 - Calling String#dup on strings used as a buffer in IO.copy_stream alters the body of all strings duped from the original
- #6768 - stacktrace first line erroneously reports line number. Reports duplicate line # as second line of stacktrace.
- #6769 - Undo shared-buffer optimizations from #6557
- #6770 - Use line number of scope for initial backtrace
- #6771 - Handle varargs frame on arity error in jitted code
- #6776 - With prepend the aliased method gets the wrong self target
- #6779 - fix CGI.unescapeHTML with invalid encoding
- #6782 - Real fix for #6676 for 9.2
- #6784 - Create and use pure-bash dirname and basename
- #6799 - update ffi to 1.15.4
- #6872 - Jruby does not support the “old” LetsEncrypt chain after DST Root CA X3 has expired
- #6883 - Trust native unlink errno to do the right thing
- #6903 - Set#dup does not seem to call #initialize_copy
- #6909 - [deps] update jruby-openssl to 0.11.0
- #6910 - Dynamic dispatch to super.initialize_[dup,clone] in native Set
- #6911 - Update jnr and asm
- #6928 - Fix raw and varargs backtrace elements
JRuby 9.3.1.0 Released
Wednesday, October 13 2021
The JRuby community is pleased to announce the release of JRuby 9.3.1.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with CRuby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
Thank you to our excellent community of users for their many contributions! JRuby would not be successful without your help: @ahorek, @byteit101, @GabrielNagy, and @jsvd
Standard Library
- Updated RubyGems to 2.2.29 and Bundler to 3.2.29. (#6890)
23 Issues resolved
- #6263 - Set jruby-jars gem plugin to use 9.3 release
- #6679 - [ji] allow Java errors from Ruby threads to reach the handler
- #6841 - addrinfo - inspect hostname
- #6842 - Avoid alias warning if target has same reqs
- #6846 - Unexpected frame in stack trace from `caller` method with create_method invocation
- #6849 - JRuby 9.3.0.0 Installer for Windows 10 x64 only works with JDK 8 (not JDK 16)
- #6852 - Fix handling of ENXIO error during resource open
- #6854 - Unexpected behavior when using `module_function` followed by `define_method`
- #6855 - Fix #6854
- #6857 - Process::Waiter is a private_constant on JRuby but not on MRI?
- #6859 - Refinements vs. respond_to? regression in 9.3.0.0
- #6860 - Cannot raise `KeyError` without arguments after 9.3.0.0
- #6861 - Fix KeyError behavior with no arguments
- #6863 - Fix #6859. respond_to? regression with refinements.
- #6864 - Calling :include? on an String Range always returns true in 9.3.0.0
- #6866 - Fix #6864. include? on an String Range always returns true.
- #6870 - Missing keywords after a second proc call
- #6874 - Calling exit! within at_exit doesn't "clear" the exception
- #6876 - Fixes #6870. Missing keywords after a second proc call (full/JIT).
- #6877 - Fix raw and varargs backtrace elements
- #6879 - Fix at_exit exception behavior to match CRuby
- #6886 - Fix and tests for concrete extension #java_class returning the parent
- #6890 - Update rubygems to 2.2.29 and bundler to 3.2.29
JRuby 9.3.0.0 Released
Wednesday, September 22 2021
The JRuby community is pleased to announce the release of JRuby 9.3.0.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.
With such a long development cycle, there are bound to be “dot zero” bugs and compatibility gaps, so we plan to release incremental fixes for JRuby 9.3 rapidly. We encourage users to file issues for any problems they encounter and join us in our Matrix chat room
Thank you to our excellent community of users for their many contributions! JRuby would not be successful without your help: @ahorek, @byteit101, @chrisseaton, @deivid-rodriguez, @edipofederle, @JasonLunn, @joshbressers, @k77ch7, @MariuszCwikla, @marshalium, @MikaelUrankar, @mkristian, @nomadium, @olleolleolle, @pirj, @ProfessorEugene, @pzygielo, @T45K, @thbar
These notes may be updated on the JRuby Wiki to include additional information and links to new or updated documentation: JRuby 9.3.0.0 Release Notes
Compatibility
- Ruby language compatibility is updated to match Ruby 2.6.8. (#5576)
- The require/load/autoload subsystem has been rewritten to better match Ruby behavior. This improves support for the Zeitwerk loader and fixes many long-standing issues. (#2794, #3656, #5403, #5466, #5590, #5618, #5638, #5717, #5763, #5764, #6347, #6445)
- Improved logic for handling complex method and constant lookups, such as when prepends, refinements, or super calls are in play. Most known issues with these forms have been fixed. (596, #2155, #4678, #6271, #6712, #6777, #6778, #6785)
Standard Library
- The standard library has been updated to match Ruby 2.6.8. Several libraries now use the official gems, allowing them to be upgraded independently of JRuby. (#4875, #6150, #6797, #6796, #6795, #6794, #6533, #6802)
Java Integration
- JRuby supports Java versions 8 through 17, and should work well with any supported build of OpenJDK. Future versions of JRuby may drop support for Java 8 through 10, so we encourage users to upgrade older apps soon.
- The Java integration logic for extending Java classes from Ruby has been rewritten to better support Java constructors and to reuse more logic from the rest of our Java integration library. This allows users to use those Ruby subclasses with Java frameworks that bootstrap using reflection, such as JavaFX. (#449, #2369, #4165, #5270, #6422)
- JRuby now ships a new “jruby-base” jar artifact to Maven Central. This artifact provides a bare-bones JRuby jar file with no dependencies or standard libraries included. We may deprecate and remove the “jruby-core” artifact in the future, as it only provides Java dependencies and no standard libraries (users should prefer to build their own with jruby-base or use the jruby-complete artifact). (#6233)
340 Github Issues resolved for 9.3.0.0
- #449 - support newInstance() with arguments
- #596 - Adding a method to eigenclass doesn't work properly. Works in cruby
- #713 - BEGIN/END blocks not executed in main compiled script
- #985 - Kernel.spawn doesn't support some options (ex: :chdir)
- #2150 - Dir#glob does not return files with proper cases
- #2155 - Method#super_method finds something when super is undef'ed
- #2369 - Can't subclass a Java class that calls an abstract function in its constructor
- #2794 - Load/require logic lacks path caching and indexing found in MRI
- #3656 - Autoload is not overwritten by subsequent explicit require
- #4004 - Migrate Ruboto to JRuby 9K
- #4165 - java_field causes NPE when using derived class of a java object
- #4194 - "LoadError: no such file to load" if IOException is raised in loaded file
- #4678 - Prepending a module to a module extended by a class gives NPE when calling `super`
- #4688 - RubyEnumerator.SizeFn does not receive enough context
- #4695 - Super does not mark literal blocks as escaped
- #4875 - Ruby 2.5 Gemification
- #4943 - Open3.open2e returns `Errno::ENOENT` in jRuby but runs fine on Ruby
- #5126 - Status for MRI-related security issues?
- #5143 - Eliminate static field references to JRuby state
- #5200 - Core method call missing in exception backtrace on JRuby 9.2.0.0
- #5219 - [ji] make inspect on Java proxies work
- #5266 - use of JRUBY_OPTS="-Xreify.classes=true" causes Java::JavaLang::StackOverflowError:
- #5270 - Concrete JRuby Implementations of Abstract Java Classes Can't be Constructed With Reflection
- #5381 - only require 'java', users should explicitly require 'jruby'
- #5401 - Disabling fixnum cache breaks racc JRuby implementation
- #5403 - `autoload` should delegate to `require`
- #5419 - Reinstate open-addressing hash to work on concurrency improvements.
- #5466 - Weird `Kernel.autoload` behavior
- #5469 - Add Array#difference
- #5470 - Add Array#union
- #5494 - Ruby 2.6: Add #to_h with block argument to Array, Enum, ENV, Hash and Struct
- #5496 - Bump JRuby version and Ruby compat level to 2.6.0
- #5498 - [ji] change RubyException#toJava to convert by default
- #5502 - Ruby 2.6: Add a new #filter alias for #select
- #5508 - Ruby 2.6: Add a new #then alias to Kernel#yield_self
- #5519 - teardown with threads waiting gets ugly
- #5530 - Ruby 2.6: Add new method Binding#source_location
- #5535 - Ruby 2.6: Add Dir instance methods #each_child and #children
- #5537 - Ruby 2.6: Hash#merge, Hash#merge! and Hash#update now accept multiple arguments
- #5540 - Ruby 2.6: Add endless range
- #5549 - Use `invoke` instead of `invokeExact` to avoid casting error on Android
- #5552 - Ruby 2.6: Add support for endless range in more methods
- #5555 - Ruby 2.6: Switch Range#=== to use cover? instead of include?
- #5576 - Ruby 2.6 Support
- #5590 - LOADED_FEATURES internal index not working correctly
- #5599 - Object#pp changes visibility upon requiring 'pp'
- #5601 - pp should always be private (port from MRI 2.6)
- #5602 - [fix] properly calculate warning ($VERBOSE) default
- #5618 - Performance issues with require_relative
- #5638 - Zeitwerk compatibility check list
- #5646 - Remove deprecated NativeException logic
- #5681 - ArgumentError (not fully converted, 23 bytes left) with String.encode!
- #5710 - Enumerator#any? and yield(*[[]]) bug
- #5717 - Module#autoload (concurrently) blocks a second thread...hanging
- #5732 - Do not bind accessors for Java interface-based constant values
- #5763 - Refactor and optimize loaded features
- #5764 - Rework load service, load path, loaded features, and autoload
- #5857 - Even JRuby 9.2.8.0/ 9.2.11.1 terribly slow
- #5896 - Hash#each raises ArgumentError with a method of arity 2 converted to a block
- #5937 - port CGI.escapeHTML optimization
- #5947 - Update FFI scripts and other files from FFI gem
- #5948 - Update shared FFI code
- #5949 - use optimized CGIEscape
- #6010 - Ruby 2.6 : Add String#split with a blcok
- #6011 - Ruby 2.6 : Add Random.bytes
- #6033 - Ruby 2.6 : Enumerator::Chain class, Enumerable#chain, Enumerator#+
- #6037 - Implement Ruby 2.6 features
- #6045 - Bundler incorrect path resolution handling classloader URI
- #6062 - Mark custom classloaders as parallel capable
- #6063 - [RbConfig] add RUBY_SO_NAME and RUBY_BASE_NAME
- #6064 - throw ArgumentError instead of SecurityError
- #6065 - Add FFI::LastError.winapi_error
- #6066 - remove struct by reference
- #6075 - Restore the backtrace element for the `new` call
- #6080 - Remove IRScope from JIT and add AOT bytecode caching
- #6087 - Add IT for issue 6081
- #6098 - Illegal reflective access by org.jruby.ext.openssl.SecurityHelper
- #6100 - starting jruby: "An illegal reflective access operation has occurred"
- #6104 - Pre-epoch times are rounded up by #to_i
- #6106 - Ruby 2.6 : Enumerator::ArithmeticSequence class, Numeric#step, Range#step
- #6108 - Round Time#to_i down rather than truncating
- #6110 - Implement Thread#{set_trace_func, add_trace_func}
- #6115 - java_import conflicts should get scoped properly
- #6116 - Cleanups and improvements for java_import
- #6117 - RubyTime initialization refactor
- #6120 - Ruby 2.6 : fix Enumerable#to_h with block.
- #6121 - Ruby 2.6 : fix Enumerator::Lazy#find_all and #filter
- #6124 - StackOverflow after several hours after upgrading from JRuby 9.2.9 to 9.2.11
- #6125 - undefined method `runtime' for JRuby:Module on Travis CI when running `rubocop` for `rspec-rails`
- #6127 - Address dangling threads in Timeout module
- #6129 - trouble when running 'rails server' in WSL
- #6130 - InvalidTransformException with jruby-9.2.11.0 + invokedynamic=true
- #6131 - LoadError: no such file to load -- racc/info
- #6132 - Properly recombine varargs with method name for indy m_m
- #6133 - Enhanced exit blocks
- #6135 - Bump `json` version provided by default
- #6139 - Uninitialized constant -- already exists
- #6141 - Tie become_java! and concrete extension (fixes #4165)
- #6142 - Thread didn't execute?
- #6143 - Hold a hard reference to Ruby threads
- #6144 - Audit constant assignment paths for ID vs Java strings
- #6147 - --server argument warning pollutes standard output
- #6150 - Source FFI Ruby sources from the gem
- #6151 - Ruby 2.6 : fix Struct#to_h exception message
- #6153 - Passing `:chdir` to `Kernel.system` doesn't work reliably
- #6155 - handle Java 9+ warnings on windows
- #6157 - CSV parsing and encoding errors in 2.6
- #6158 - New Ripper features in 2.6
- #6159 - Remaining parser/constant name issues in 2.6
- #6166 - Remove usages of deprecated ConfigMap (again)
- #6169 - strftime precision against combinated formats (ex. %F, %r, ...)
- #6171 - webrick tests fail on jruby
- #6172 - Update stdlib gems
- #6173 - Evaluation of `when` more lazily evaluates multiple conditions on one line.
- #6175 - Windows installer fails with Oracle JDK-14: Missing unpack200.exe
- #6176 - Shut down threads on teardown
- #6177 - Remove all remaining references to pack200
- #6178 - Align 8 and 11 in github actions CI
- #6180 - Implement oneshot_lines for coverage
- #6181 - missing method, `Coverage.line_stub` doesn't exist
- #6182 - [ji] java_import now raise NameError on invalid names
- #6183 - Ruby 2.6 : fix StringIO#write method logic
- #6185 - Implement Coverage.line_stub
- #6188 - Thread not killed after calling #kill
- #6189 - "Illegal reflective access operation"
- #6190 - Restart dead enumerator
- #6193 - File.fnmatch with File::FNM_PATHNAME doesn't treat [/a] or [a/] like [a] as MRI does
- #6194 - Remove deprecated classes
- #6197 - Missing method that is public but defined on a non-public superclass
- #6199 - Allow public methods from non-public superclasses to bind
- #6202 - Time.now is inconsistent with MRI and Java System time
- #6203 - Raise Ruby exception in JRuby
- #6205 - Duplicate jnr-ffi classes when combining jruby-core with jython-slim
- #6209 - Update jnr-posix and jnr-ffi to get default image seach
- #6211 - Ruby 2.6 : fix failing transcode tests.
- #6212 - Timeout service shuts down before at_exits have run
- #6213 - Reorder teardown and add a post-exit hook registry
- #6214 - JRuby functionality under "denied" illegal access
- #6220 - fix copy & paste error
- #6221 - missing break
- #6222 - FileOutputStream's cleanup
- #6223 - flo_floor remove dead code
- #6224 - synchronize totalMonomorphicCalls
- #6225 - NoMethodError: undefined method `[]' for
:Class</li> - #6226 - Fixes to improve support for chdir in spawn functions
- #6228 - Default to space padding for "special" formats
- #6231 - Update fnmatch implementation
- #6233 - jruby base artifact
- #6234 - Improved integration with Ruby and Java exceptions
- #6236 - Small optimization roundup
- #6238 - Heavy string benchmark slower than 1.7
- #6239 - Don't double-slash path elements when canonicalizing
- #6242 - Sorbet `srb init` crashes
- #6246 - Fixes to get WEBrick tests greener
- #6247 - `Etc::SC_OPEN_MAX` not defined
- #6249 - Encoding experiments with file path negotiation
- #6250 - implement Etc.sysconf
- #6252 - Fix failling TestUTF16#test_succ
- #6255 - Double splat with empty parameters fails to find child's empty arity method
- #6258 - Heredocs and escaped \n
- #6264 - Expose Java's built-in monitor synchronization as a JRuby API
- #6266 - [etc] implement #confstr and #pathconf
- #6267 - NoMethodError for ObjectSpace::WeakMap#values
- #6268 - Fix reference type and avoid closing jar directly
- #6269 - Avoid using URL.openStream due to JDK cache
- #6271 - Prepending a module hides module's constants
- #6273 - Only close temporary jars to avoid poisoning global jar file cache
- #6276 - Fix typo to combine flags in the parser singleton class rule
- #6279 - Some fixes, tweaks, and new tools for working with IR
- #6286 - `require_relative` with Named Pipe Gives Incorrect Error
- #6296 - Fixes to improve Java 11 testing
- #6301 - Reconfigure some CI builds and add JDK14
- #6311 - Fixes to get specs passing on Darwin and other things
- #6312 - Implement IO#advise
- #6313 - Do the read of the full file contents separately
- #6314 - Loading PsychLibrary fails when temporary jar files do not have permissions to read pom of snakeyaml
- #6315 - Deprecate and isolate all Options that are no longer used
- #6316 - Mark literal blocks escaped when passed through a super call
- #6318 - remove redundant Process.uid patch on windows
- #6321 - Add self to SizeFn
- #6330 - Add an option for specifying the nested jar temp location
- #6340 - [ci] an attempt to run tests on Windows
- #6341 - Propagate code range into Symbol and calculate hash like String
- #6347 - prepend + extend_object still affecting CGI library
- #6349 - bundle exec fails on Bundler 2 with config path and deployment
- #6350 - IRReturnJump when returning from a proc returned by a lambda
- #6351 - Consider both "argument scope" and lambda as return jump target
- #6357 - RubySpec fixes for Windows
- #6358 - Fix failing TestUTF16#test_regexp_union
- #6360 - Fix inconsistency in #5837
- #6363 - [test] Tag off remaining http failures.
- #6364 - Fix test_greek_capital_gap failure.
- #6369 - Avoid uncached isBuiltin and uncached calls in Enumerable
- #6370 - Fallback primitive numeric ops to object dispatch
- #6373 - [ffi] read_string should not throw an error on length 0
- #6374 - [ffi] add bounds checks for writing to an inline char[]
- #6375 - [ffi] update ffi to 1.13.1
- #6376 - [ffi] ulong type looses precision in 64bit mode
- #6377 - [ffi] Do NULL pointer check only when array length > 0
- #6378 - fix failing TestM17N#test_utf_without_bom_valid
- #6380 - Miscellaneous small optimizations
- #6383 - Fixes for non-native execution
- #6386 - Comparing Date object with nil sets global $! variable to NoMethodError
- #6387 - Fix failing TestM17N#test_setbyte_range
- #6388 - Update JNR to Java 8+ versions
- #6390 - jrubyc: make valid java code when using annotations in java_signature
- #6392 - restore $! on date comparisons
- #6397 - jar:file: stat fails with error 123 on Windows
- #6401 - define available constants
- #6402 - Clean up compile warnings and deprecations on Java 14
- #6404 - jrubyc has issues with mangled (target) path on Windows
- #6406 - Allow ulong range values to coerce to long bits
- #6410 - [ffi] fix libc name on Linux
- #6412 - handle winstat errors
- #6422 - Java-constructable Concrete Ruby Classes
- #6425 - Update enxio to omit poll fd from key list
- #6426 - Source ostruct from the 0.3.0 gem
- #6429 - Fixes #6428: Date._strptime raises Java exception on invalid argument
- #6431 - Fix platform type inititilization
- #6438 - Fixes #6404 jrubyc: mangled ("--target") path on Windows
- #6441 - [parser bug] NPE on a long case statement
- #6445 - Method missing for prepended module
- #6451 - Fix yielding to methods that take two params from Hash#each
- #6456 - crash while marking used variables
- #6457 - [embed] refactor (JSR223) exception wrapping
- #6458 - bundle install on Windows fails with NotImplementedError: stat.st_gid unsupported or native support failed to load
- #6460 - [windows] fix gid
- #6462 - Update webrick to 1.6.1
- #6469 - require 'parser' - ArrayIndexOutOfBoundsException
- #6474 - OperatorCallNode was missing from NodeVisitor, add it
- #6479 - Java Interface Default methods not properly supported
- #6481 - Update JNR
- #6484 - [ji] bind interface default methods
- #6485 - require 'bundler' should prefer the gemified version
- #6486 - Make bundler a proper default gem
- #6488 - Sequel CI failures with ActiveSupport 6.1
- #6493 - [ji] "usable" inspect for core Java types
- #6494 - Timezone fixes for 2.6 logic
- #6496 - Spec sweep
- #6497 - Add unpack/pack 'j' and 'J' support
- #6498 - Small spawn fixes
- #6501 - Some simple spec fixes in ENV
- #6503 - Cleanup FFI platform files
- #6509 - [ffi] update to 1.14.2
- #6513 - [ji] eliminate JavaClass usage in favor of Java wrappers
- #6514 - javax.annotation-api has been deprecated, please move to jakarta-annotation-api
- #6519 - Pathname#inspect behaviour is not consistent with other Ruby implementations
- #6522 - optimize Array#unshift
- #6524 - [Ripper] wrong number of arguments (given 1, expected 2) on DOT2/3
- #6525 - Make Pathname#inspect behave like other Ruby implementations (fixes #6519)
- #6533 - [deps] Update RubyGems to 3.2 and Bundler 2.2
- #6534 - Move Monitor to native
- #6535 - Work around EPERM fstat error for inotify under WSL
- #6544 - Thread.handle_interrupt and pending_interrupt? spec failures
- #6545 - Improve tagged pointer emulation
- #6556 - [deps] update joda-time to latest
- #6562 - [feat] support RubyString#split for Java (exts)
- #6564 - Unexpected ArgumentError when calling method and splatting empty hash
- #6569 - Improve compatibility of handle_interrupt
- #6572 - Optimization for calling java vararg methods on hotspot. ~10x speedup
- #6585 - Kill all use of Arity+
- #6589 - RubyIO needs allocation-free read and write paths
- #6590 - Provide direct byte[] read and write for RubyIO
- #6591 - Improve JSR-223 exception messages
- #6593 - fix getsockopt failure
- #6594 - Use more lambdas for great justice
- #6596 - Remove BSF support
- #6597 - Remove the rest of Nailgun
- #6601 - Update jnr-ffi and dependents
- #6614 - More refactoring of block
- #6616 - [stdlib] resolve Set#initialize compatibility
- #6623 - Fixes #6564. Passing **kw to def with no args should work
- #6628 - #dig slower with invokedynamic than without
- #6630 - Provide a collector for indy varargs boxing
- #6633 - Improve inlining of varargs path for split methods
- #6643 - Reduce frame overhead for leaf blocks
- #6646 - Do not assign backref from String#split
- #6653 - Include overriding classes in backtrace mapping
- #6660 - [ji] set Ruby/Java cause on RaiseException
- #6661 - [refactor] move include_package into Java
- #6662 - Marshal.load fails to unmarshal OpenStruct object
- #6663 - ostruct 0.3.3
- #6666 - Ruby 2.6 : Add :receiver option to NameError.new and NomethodError.new
- #6672 - Ruby 2.6 : Update ioOpenGeneric for Pathname methods.
- #6680 - Update to Psych 3.3.2
- #6681 - Fix Dir.glob with cases
- #6683 - Add all missing methods to WeakMap
- #6684 - Move to jakarta-annotation-api
- #6688 - Really fix #6158 ++
- #6694 - Do not pollute CP with annotation-api
- #6697 - [ffi] update to 1.15.1
- #6698 - webrick 1.7.0
- #6706 - Resolve Set#initialize compatibility
- #6707 - Update wiki URLs to point directly to pages in warning messages
- #6708 - Autoload regression
- #6711 - [launcher] basename for solaris
- #6712 - Fix some specs regarding method visibility
- #6715 - Add syslog.rb for FreeBSD aarch64
- #6718 - Current 9.3.0.0 subchild not properly registering the override of a parent with the reification cf 9.2.18.0 and earlier version.
- #6728 - Fix undef with private method
- #6732 - FFI issue loading libidn2 in macos
- #6733 - Test on JDK 16
- #6738 - Fixes #6173. Evaluation of when more lazily evaluates multiple conditions on one line.
- #6744 - [ji] inspect for Thread/TimeZone/ZoneInfo
- #6749 - Use the real module for Kernel autoload
- #6751 - 9.3 : Gem::LoadError: You have already activated ffi 1.15.1, but your Gemfile requires ffi 1.15.3.
- #6756 - Fixes #6242. Sorbet srb init crashes
- #6757 - Fix failures in ruby/spec running with immediate jit mode
- #6760 - Lazily define FFI-using File methods
- #6762 - Actually fix File.symlink on Windows
- #6772 - Merge lastline and other bits from 9.2
- #6774 - fix failing TestBigDecimalUtil#test_String_to_d
- #6777 - Prepend Fixage
- #6778 - use optimized CGIEscape
- #6785 - Fixes #6271. Prepending a module hides module's constants
- #6787 - fix 5 failing BigDecimal tests
- #6791 - restore api compatibility with nio4r
- #6792 - Update JNR dependencies
- #6793 - Update or revert FFI gem
- #6794 - Update to jruby-openssl 0.10.7
- #6795 - Update to 6.1.2.1 to match Ruby 2.6.8
- #6796 - Update rexml to 3.1.9.1 to match ruby 2.6.8
- #6797 - Update did_you_mean to 1.3.0 to match ruby 2.6.8
- #6798 - Update owned dependencies backport9 and options
- #6800 - Out of metaspace intermittently on Travis
- #6802 - Update stdlib
- #6803 - More agressively kill dead code
- #6811 - Update jnr to fix junit dependency scoping
- #6817 - b_nil should noop if compared against truthy immediate (IRBuilder)
- #6818 - GC.start raises ArgumentError when passed named arguments
- #6819 - Add optional argument to start and garbage_collect
- #6820 - Fix super chaining on Ruby subclasses of Java classes
- #6827 - reduce some repeated method calls
- #6829 - Addrinfo#inspect add protocols
- #6830 - Cannot call Varargs Java Methods
- #6832 - "Syntax Error" occurs in "eval"
- #6834 - Fix calling primitive varargs and add tests
- #6835 - Revert ostruct tests/specs due to reverted gem
- #6836 - Fix #6832. "Syntax Error" occurs in "eval"
- #6837 - Fix string literals in other encodings which should be utf-8 encoding
JRuby 9.2.19.0 Released
Tuesday, June 15 2021
The JRuby community is pleased to announce the release of JRuby 9.2.19.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Thanks to contributor @ahorek for a couple quick-fix PRs this release!
Native Integration
- Work around a bug in our backend FFI library, jnr-ffi, that broke calls to
getsockopt
orsetsockopt
in--dev
mode. (#6714, #6723)
Windows Support
- Honor the TZ environment variable when applying a timezone to file modification/access/create times. (#6659, #6720)
Github Issues resolved for 9.2.19.0
JRuby 9.2.18.0 Released
Tuesday, June 08 2021
The JRuby community is pleased to announce the release of JRuby 9.2.18.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Special thanks to our external contributors this release: @ahorek, @xaptronic
Compatibility
- Improved support for subprocess launching on pure-Java environments (primarily Windows). (#6654, #6655, #6678, #6685)
- Concurrency fixes for last match (
$~
) under concurrent access. Still somewhat unpredictable but behavior matches CRuby. (#6640, #6644, #6647)
Standard Library
- The socket library from master (JRuby 9.3) has been backported with all recent fixes, improving compatibility and feature coverage. (#3883, #5148, #6126, #6128, #6156, #6274, #6366, #6372, #6384, #6389, #6399, #6400, #6541, #6542, #6595, #6664)
- Improved support for Open3 on Windows. #6291, (#6648, #6649)
Java Integration
- The bash script and native executable now detect Java module support more robustly. (#6637, #6638, #6639, #6689, #6701)
Native Integration
-
Improved native support for exotic Linux platforms (mips64el, ppc64, s390x, aarch64). #6674, #6675, #6705
-
40 issues fixed for 9.2.18.0
Github Issues resolved for 9.2.18.0
- #3883 - Rinda:RingServer not working (used for spork)
- #5148 - Data read from a UDP socket retains buffer size causing large memory overhead
- #6126 - Socket#connect is not interrupted by Timeout#timeout and Thread#kill
- #6128 - Do all socket connects nonblocking for interrupts
- #6156 - Socket.gethostname encoding still platform specific
- #6274 - Always encode gethostname result as UTF-8
- #6291 - Failed to install bindex on a Windows 10 PC
- #6366 - Add support for TCP_CORK (experimental)
- #6372 - move socket message to constants
- #6384 - [socket] add constants for reserverd ports
- #6389 - [socket] remove misused SOL_ constants
- #6399 - Missing TCP_INFO support
- #6400 - basic TCP_INFO support
- #6541 - Errno::ENOPROTOOPT when connecting to Redis with JRuby-9.2.14.0
- #6542 - [socket] improve keep alive support
- #6595 - Accept numeric host
- #6637 - Fix issue with JAVA_HOME not being set
- #6638 - Restore quotes around module detection JAVA_HOME
- #6639 - Resolve symlinked java command to find home
- #6640 - java.lang.ClassCastException: org.jruby.RubyNil cannot be cast to org.jruby.RubyMatchData
- #6644 - Reduce backref usage in split
- #6647 - Improve concurrency of $~ adjacent methods
- #6648 - JRuby 9.2.17.0 fails to install sassc on Windows
- #6649 - Compatibility fixes for open3 on Windows
- #6654 - Kernel.system leaks ENV on JRuby + Windows
- #6655 - Do not merge extra env with current env
- #6664 - Copy 9.3 socket implementation to 9.2
- #6668 - Comparators (==, <, >, <=, >=) of subclassed Time instance do not call cmp defined on the subclass
- #6670 - Handle possible ArithmeticException when extending byte store for String
- #6671 - Array max size auditing and fixes
- #6674 - Latest JNR libraries for 9.2
- #6675 - JNR updates
- #6678 - Regression on Windows test:jruby test_system_with_conflicting_dir
- #6685 - Also use shell for commands with a space
- #6689 - Failure to RVM-install JRuby 9.2.{13,17},0 on Ubuntu 20 with JDK 8
- #6692 - Getting Java::JavaLang::ArrayIndexOutOfBoundsException in compiler internals
- #6700 - Use cached UTF8 single-char bytelists here
- #6701 - Update jruby.exe
- #6704 - Fixes #6692. AIOOBE on evals overflowing closure ids.
- #6705 - Update JNR deps
JRuby 9.2.17.0 Released
Monday, March 29 2021
The JRuby community is pleased to announce the release of JRuby 9.2.17.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Compatibility
- Miscellaneous small fixes to better support using Sorbet on JRuby. (sorbet/sorbet#1216, #6592)
- Improve detection of Java module support when launching JRuby (also in jruby-launcher 1.1.14). (#6608, #6615, #6617)
Standard Library
- RubyGems updated to 3.1.6. (#6294)
- Build improvements to ensure all parts of default and bundled gems ship in the distribution archives. (#6604, #6609, #6618, #6619)
- zlib fixed to properly handle extra data in stream after inflate finishes. (#6606, #6612)
- Minor updates to align standard library with Ruby 2.5.8. (#6611, #6624)
Performance
- Small optimizations to the dig function. (#6632)
- Optimized calls to the top-level “java”, “javax”, “javafx”, “org”, and “com” packages. (#6635)
Issues Resolved
- #6294 - [deps] update Rubygems to latest 3.1 (3.1.6)
- #6592 - Fixes to support Sorbet
- #6604 - racc default gem bits are not being included in the distribution
- #6605 - RubySet#newSet should be a static method instead of an instance method
- #6606 - zlib decompression produces wrong output
- #6608 - Java::JavaLang::NoClassDefFoundError (java/sql/Date)
- #6609 - Properly install and package bundled and default gem bits
- #6612 - Return only inflated content from Zlib.inflate
- #6615 - Detect modules more robustly
- #6617 - Update Windows jruby.exe for module detection
- #6618 - Include only bundled and default gems in stdlib jar
- #6619 - Only include gems in bundled or default
- #6624 - Update 2.5.8 stdlib
- #6627 - GPL-3.0 in the COPYING file
- #6629 - Unbreak CachingCallSite.isBuiltin
- #6632 - Dig improvements
- #6635 - Cache package after acquisition
JRuby 9.2.16.0 Released
Wednesday, March 03 2021
The JRuby community is pleased to announce the release of JRuby 9.2.16.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Compatibility
- Fixed an issue in Kernel#system where subprocesses that daemonize would cause waitpid to hang. (#6579, #6582)
Standard Library
- Elevated the racc library to a default gem, so it contains all racc sources and can be upgraded. (#6416, #6576, #6581)
- Added RubyGems configuration to preserve “env shebang” in the gem command when updating RubyGems. (#6586)
Github Issues resolved for 9.2.16.0
- #6416 - `bundle exec racc` fails on jruby-head
- #6576 - Unrevert racc gem
- #6579 - Upgrade to 9.2.15.0 causes Kernel#system to hang.
- #6581 - `LoadError: no such file to load -- racc/info` when using JRuby 9.2.15.0
- #6582 - Remove process group to avoid hanging daemons
- #6586 - Expand env-shebang to setup and pristine
- #6587 - Call write directly rather than through stream
JRuby 9.2.15.0 Released
Wednesday, February 24 2021
The JRuby community is pleased to announce the release of JRuby 9.2.15.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Compatibility
- Several issues were fixed in process management, to avoid raising unexpected errors, properly launch executables on Windows, and preserve quoting when also doing a chdir. (#6466, #6477, #6489, #6516, #6532, #6536, #6546, #6565, #6568)
- Error and interrupt handling inside fibers has been improved to avoid leaking fibers and enumerators. (#6309, #6538)
- An incompatibility between the Synchronized module and refinements caused the i18n gem’s deep_merge refinement to break method lookup and prevent Rails apps from starting up. (#6547, #6549)
- IO.copy_stream attempted to write the same content twice when copying to an IO-like object that did not report having written all requested bytes. (#6555, #6557)
- Bare super calls (aka “zsuper”) gathered arguments incorrectly to support define_method, which broke dynamic finders in recent Rails versions. (#6563, #6571)
Standard Library
- The racc library was updated to 1.5.2 (#6507, #6517, #6537)
- Failed UNIX socket connects were leaking an open file descriptor. (#6529, #6531)
Performance
- A bug in setting up block yields using invokedynamic led to excessively deep call stacks and slow execution. (#6260)
Github Issues resolved for 9.2.15.0
- #3205 - Dir.foreach, Dir.new, Dir.open: Missing/incompatible encoding support.
- #6260 - Stack Overflow with invokedynamic.yield turned on
- #6309 - Enumerator.peek not working with Enumerators created with #to_enum over ActiveRecord Relations
- #6338 - JSON.pretty_generate generates different output to MRI for at least an empty hash
- #6466 - java.lang.ArrayIndexOutOfBoundsException in 9.2.13.0
- #6477 - EAGAIN: waitpid on JDK11
- #6489 - Check the retval of waitpid before errno
- #6491 - Undefine rlimit features when unsupported
- #6492 - Disable rlimit features on Windows
- #6499 - Array shuffle method should fail if prng is passed without being a named argument
- #6500 - Fix Array shuffle and sample arity checking
- #6507 - Unhandled Java exception: org.jruby.RubyContinuation$Continuation
- #6516 - When extension is omitted, IO.popen does not find the executable in JRuby on Windows
- #6517 - Install racc 1.5.2 from the gem
- #6526 - Monitor synchronization issue in JRuby 9.2.14.0
- #6527 - Fix interrupt handling in synchronize
- #6528 - `Encoding.default_external = 'ASCII'` with `StringIO#string` results are different from MRI
- #6529 - FD leak with orphan Unix Socket
- #6530 - Backport StringIO encoding fix
- #6531 - Close socket when bind or connect fails
- #6532 - Improvements for popen process launch in Windows
- #6536 - [test] spawn+detach raising (previous) posix error
- #6537 - Revert racc default gem and copy manually
- #6538 - Rework raise interrupt handling at fiber edges
- #6540 - Cruby/Jruby behavior difference with block keyword arguments
- #6546 - Handle errors in Process.detach properly
- #6547 - NoMethodError for Concurrent::Hash#deep_merge!
- #6548 - Ripper comparison operators
- #6549 - Make sync and profiling method wrapper logic work with refinements
- #6550 - Incorrect implementation of org.jruby.embed.variable.VariableInterceptor#terminateLocalVariables
- #6551 - Dir file walking encoding improvements
- #6553 - getResource() should never be called with a starting slash when called on a classloader
- #6555 - IO.copy_stream double-writes to InternetMessageIO
- #6557 - IO.copy_stream fixes
- #6563 - Rails 6.1.2.x dynamic finders cause Java::JavaLang::ClassCastException
- #6565 - Open3 chdir parameter removes quoting
- #6568 - Backport spawn fixes to 9.2
- #6571 - Fixes #6563. Rails 6.1.2.x dynamic finders cause Java::JavaLang::ClassCastException
- #6574 - Fixes #6540. difference with block keyword arguments.
JRuby 9.2.14.0 Released
Tuesday, December 08 2020
The JRuby community is pleased to announce the release of JRuby 9.2.14.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Security
Standard Library
- did_you_mean was updated to 1.2.1 to remove some Creative Commons licensed content. (#6471, #6473)
- jruby-openssl was updated to 0.10.5 to eliminate some Java module warnings and improve compatibility. (#6423)
Concurrency
- A race in storing the lock a thread has just acquired was fixed, preventing that lock from being left locked if the thread dies prematurely. (#6326, #6405, #6407)
Performance
- Call sites bound using invokedynamic were not inlining due to a quirk of classloading on OpenJDK. This has been fixed so such calls inline properly. (#6280)
Native Integration
- The Java Native Runtime used to integrate with native system code has been updated to latest versions to improve compatibility. (#6482)
Github Issues resolved for 9.2.14.0
- #6280 - Trivial call site not inlining with invokedynamic
- #6326 - ActiveRecord ConnectionPool locking issue with 9.2.12.0
- #6354 - I'm trying to install on Windows 10 (64 bit) and getting this error: 'An internal error occurred (error code: 20)'
- #6356 - "WARNING: An illegal reflective access operation has occurred" during gem build (from jopenssl)
- #6367 - Pack200 is dead
- #6371 - Non adapting end of iteration on insert during iteration - difference between Ruby and JRuby
- #6379 - `exit!` incorrectly calls exit handlers
- #6385 - DateTime loses timezone offsets on marshal/unmarshal
- #6393 - Handle modification during delete_if iteration
- #6394 - Remove all references to pack200
- #6395 - Remove teardown hook to allow hard shutdown
- #6405 - Thread kill does not release lock
- #6407 - Make sure locks are added immediately after acquisition
- #6413 - Ripper provides incorrect output
- #6423 - update jruby-openssl to 0.10.5
- #6424 - [fix] Date/DateTime loosing offset on marshal
- #6428 - Date._strptime raises Java exception on invalid argument
- #6432 - [fix] Date._strptime raises Java exception on invalid argument
- #6440 - Java::JavaLang::NullPointerException () --> JRuby 9.2.13.0 on Windows 10
- #6443 - Do not optimize case with null value to switch
- #6463 - Update webrick to 1.6.1
- #6466 - java.lang.ArrayIndexOutOfBoundsException in 9.2.13.0
- #6467 - Simplify detached process thread logic
- #6471 - Bundled did_you_mean gem v1.2.0 has a CC NonCommercial license in included file
- #6473 - Update did_you_mean
- #6475 - WARN FilenoUtil : Native subprocess control requires open access to the JDK IO subsystem
- #6480 - Float() parsing innacuracy
- #6482 - Update JNR projects to latest
JRuby 9.2.13.0 Released
Monday, August 03 2020
The JRuby community is pleased to announce the release of JRuby 9.2.13.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Security
- An alias-expansion bug reported in CVE-2017-18640 has been patched by upgrading the Psych YAML library to use a newer version of SnakeYAML. (#6320, #6332, ruby/psych#457)
Concurrency
- Internal structures used to optimize Ruby code have been made more thread-safe. Previously, these optimizations could be seen across threads in a partially-complete state, leading to errors in JRuby’s core runtime. (#6319, #6323, #6337)
Ruby Compatibility
- IO.copy_stream has been fixed to ensure all read bytes are written. Previously, partial writes would leave some read bytes in limbo, leading to hangs in net/http among other libraries. (#6078, #6348)
- Fixed a regression from 9.2.12.0 in how we translate JDK socket errors to Ruby’s Errno on Windows. (#6322, #6328)
FFI
-
FFI has been patched to not automatically release memory pointers when autorelease is disabled. This caused crashes in the sassc native library and possibly others. (#6310, #6331)
-
12 issues fixed for 9.2.13.0
Github Issues resolved for 9.2.13.0
- #6348 - [fix][backport] Ensure copy_stream write sends all bytes read
- #6337 - JRuby 9.2.12.0 OpenJDK11 java.lang.ArrayIndexOutOfBoundsException from JRuby Runtime
- #6332 - Update Psych to 3.2.0
- #6331 - Allow false autorelease to set unmanaged = true
- #6328 - Fall back on old regexp BindException mapping
- #6323 - Eliminate concurrent modification of runtime-sensitive IR state
- #6322 - Windows raising different exception since 9.2.12.0
- #6320 - Update snakeyaml to version 1.26 or higher CVE-2017-18640
- #6319 - org.jruby.runtime.scopes.DynamicScope6 only supports scopes with 6 variables on JRuby 9.2.12.0/OpenJDK8
- #6310 - Rails: After migration from ruby to jruby, app is not booting
- #6284 - FFI::MemoryPointer autorelease issue
- #6078 - net/http hangs (timeouts) since 9.2.7.0
JRuby 9.2.12.0 Released
Wednesday, July 01 2020
The JRuby community is pleased to announce the release of JRuby 9.2.12.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.
Java Integration
- The last remaining triggers of the “Illegal access” warnings and errors in JRuby core have been fixed. JRuby will avoid accessing Java modules and packages that have not been exported or opened. (#6195, #6287, #6298, #6299)
- A new option is added to work around the OpenJDK URLClassLoader concurrency bug we recently reported.
Set Java property
jruby.ji.close.classloader
tofalse
when embedding JRuby in a JVM application to avoid “zip file closed” errors. This will be the default setting in JRuby 9.3. (#6218, #6307) - Support for calling Kotlin has improved, avoiding warniings for companion objects. This also avoids a warning when accessing Java code where a static final field is named the same as an inner class. (#6196, #6289)
Concurrency
- An issue affecting concurrent generation of Java interface implementations has been fixed. (#6160, #6167)
- Internal optimization of Ruby code has been improved to avoid concurrency issues. (6210, #6230, #6275, 6282, #6288)
Security
A few minor security issues have been fixed. We do not consider them high risk, but we recommend users update. (#6304)
- Numeric objects now use a per-runtime random seed to generate hash values (CVE-2011-4815).
The existing JRuby property
jruby.consistent.hashing
can be set totrue
to restore predictable hash values, as for other core types. (6305) - String#unpack raised the wrong error for invalid input related to CVE-2018-8778. There was no security issue. (#6306)
- The WEBrick HTTP server provided in the Ruby standard library has been updated to 1.6.0, to address two issues with response-splitting and header injection (CVE-2017-17742 and CVE-2019-16254). This server is not typically used in production, so the exposure is limited. (#6308)
24 Github Issues resolved for 9.2.12.0
- #6308 - Update WEBrick to 1.6.0
- #6307 - Only close temporary jars to avoid poisoning global jar file cache
- #6306 - Raise RangeError for out of bounds unpack_at
- #6305 - Mimic CRuby's numeric hashing
- #6304 - Align behavior with CRuby for security specs
- #6299 - Reflective access on Java 11
- #6298 - Do not bind methods from classes that are not exported
- #6289 - Only define static field constant when inner class collides
- #6288 - Always treat non-full IC as not having protocol
- #6287 - com.sun.javafx.collections not exported in javafx.base
- #6285 - Backport 9.3 fixes for 9.2.12
- #6282 - NPE in ruby block called concurrently from Java
- #6275 - Do lazy instruction deserialization against dup'ed reader
- #6256 - Raise proper error for missing URLResource target
- #6230 - CompiledScript throws weird exception that doesn't happen with Invocable
- #6219 - JRuby thrown NullPointerException on File.open of nonexistent uri
- #6218 - Errors running multiple independent ScriptingContainers in parallel
- #6210 - Multithreaded code with function calls fail in precompiled JRuby classes
- #6196 - "warning: already initialized constant Companion" with Kotlin companion objects
- #6195 - Use all the tricks to properly eliminate illegal access warnings
- #6167 - [fix][ji] handle concurrent proxy iface impl init
- #6160 - interface proxy generation is race-y
- #6112 - [fix] Enumerable#any? does not require an arg
- #5968 - Enumerator#any? is wrong for sequence of empty arrays
HostingAdvice.com interview of Charles Oliver Nutter
Thursday, May 07 2020
Our friends over at HostingAdvice.com have written up a great JRuby intro and interview with Charles Nutter, co-lead of JRuby! If you’ve ever wondered how JRuby works or whether it might be a useful tool for your Ruby toolbox, then check out the article and let us know what you think!
JRuby 9.2.11.1 Released
Wednesday, March 25 2020
The JRuby community is pleased to announce the release of JRuby 9.2.11.1
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
As we are actively working on 9.3.0.0 we decided to put out a mini release which fixes a single issue.
- sprintf substring string formatting with precision may expose characters (#6137)
If you format a string using a precision specifier (e.g. %.1s) AND you pass in a substring of a larger string, you may see some of the larger string’s characters in the formatted result. This is due to a bug in the handling of internal String data that causes the result to contain more characters than requested.
long_string = "aabbccddhelloddccbbaa"
start_index = 8
sub_str_length = 5
precision = 3
sub_string = long_string[start_index, sub_str_length]
puts sprintf("%.#{precision}s", sub_string)
# => helloddccbb
This bug could potentially expose sensitive content from the original String. It is unlikely to affect most users, but you are still encouraged to upgrade.
Github Issues resolved for 9.2.11.1
JRuby 9.2.11.0 Released
Monday, March 02 2020
The JRuby community is pleased to announce the release of JRuby 9.2.11.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
Java Integration
- Gems and gem paths packaged inside jar files will properly load now. This 9.2.10.0 regression was caused by a change in RubyGems 3 that exposed a bug in JRuby. (#6060, #6082, #6083, #6084)
Performance Improvements
- Fixed a major performance and memory bottleneck in backtrace generation, used by
Kernel#caller
and friends. This was a regression in 9.2.10.0. (#6089)
Github Issues resolved for 9.2.11.0
- #6097 - CGI.escapeHTML restore the original encoding
- #6093 - CGI.escapeHTML crashes on invalid byte sequence where CRuby does not
- #6091 - Check arity earlier in JavaConstructor#new_instance
- #6090 - [9.2.10.0] bogus revision regression
- #6089 - Pontential performance issue
- #6084 - Use expand_path logic for Dir.glob base path
- #6083 - Basic smoke test with warbler no longer works with jruby-jars-9.2.10
- #6082 - Upgrade to 9.2.10.0 breaks project using asciidoctor-maven-plugin
- #6081 - Dependency convergence errors in 9.2.10.0
- #6079 - newInstance on protected/private classes sometimes give an Index OOB Exception
- #6060 - Globbed jar contents with expand path failing in RubyGems
JRuby 9.2.10.0 Released
Tuesday, February 18 2020
The JRuby community is pleased to announce the release of JRuby 9.2.10.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
Ruby Core
- Kernel#send and BasicObject#__send__ will now honor refinements used in the surrounding scopes. (#5945, #6045)
- Kernel#eval will now honor refinements used in a given binding. (#6017)
- Process#spawn now correctly processes environment variables for the child process. (#3428, #5907)
Ruby Standard Library
- RubyGems has been updated to version 3.0.6. (#5995, #5996)
- The jruby-openssl library has been updated to 0.10.4. This release improves support for newer forms of ciphers and cryptographic keys and reduces the number of Java module warnings displayed. (#6077)
- The compatibility of the fiddle library has been improved. (#5955, #5956, #5960)
Java Support
- Java methods looked up one-at-a-time using
java_method
and friends now honor Java modules. This fixes some illegal access errors introduced in JRuby 9.2.9.0. (#5894, #5969, #6043, #6069, #6072) - More illegal access warnings have been cleaned up in JRuby and the jruby-openssl extension.
Native FFI Improvements
- The native subsystem has been rebuilt on MacOS to avoid security warnings due to the old toolchain originally used to build it. (#6044, #6074)
- Native constants have been updated for Windows to better support the Ruby socket API. (#5656, #6070, #6071)
Performance Improvements
- Several improvements to the method invocation pipeline and JVM bytecode output to improve JIT optimizations. (#5958, #5959, #5978, #5992, #6005)
- Several core methods used by Rails and the internal handling of exception backtraces have been optimized. (#5952, #5961, #5965, #5972, #6014, #6015, #6031, #6067)
JRuby Launcher
- Java options dotfiles accidentally omitted in the JRuby 9.2.9.0 release have been restored in the bin directory.
- The bash-based launcher script has been cleaned up and optimized for cross-platform compatibility. (#5977, #6007, #6016)
Thank You!
The JRuby project would not be possible without contributions from you!
This release includes pull requests or major contributions from the following Github users (in no particular order): @matthewd, @fidothe, @MariuszCwikla, @ahorek, @deivid-rodriguez, @pythias, @rotty3000, @rmannibucau, @Mrnoname1000, @kares, @mkristian, @eregon
Github Issues resolved for 9.2.10.0
- #6077 - update jruby-openssl to 0.10.4
- #6074 - Update jnr dependencies
- #6073 - Fix windows_stub_script to use jruby.exe
- #6072 - Type Error: illegal access for final methods on ReferencePipeline (stream) in Java 11
- #6071 - socket addrinfo fixes
- #6070 - ipproto values are missing on Windows
- #6069 - Generify and reuse accessible method search
- #6067 - optimize roundUpToPowerOfTwo
- #6057 - Bump mavengem-wagon version everywhere
- #6054 - Refined send
- #6044 - libjffi should be rebuilt on darwin (using newer xcode)
- #6043 - Java 11 Compatibility
- #6040 - make jruby-core-source jar has no absolute path from home dir
- #6039 - NullPointerException from FStringEqual.hashCode
- #6038 - profiler crashes with `java.lang.RuntimeException: BUG: refined marker called as method`
- #6036 - Enumerator#take duplicates objects
- #6035 - Prepare io/console for move to gem.
- #6032 - [fix] restore $! on non-local return from rescue
- #6031 - [fix] restore rescue nil performance
- #6030 - Deprecation warning message : Gem::ConfigMap
- #6029 - [fix] inspect builtin
- #6028 - revert rational test
- #6027 - [fix] SyntaxError rational overflow
- #6025 - SyntaxError (Rational (174532925199432957/1E+19) out of range)
- #6024 - Add filesystem and internal encoding names
- #6021 - Fix Enumerator fiber leaks
- #6017 - Refinements in eval with binding
- #6016 - Remove array expansion of JAVA_OPTS environment variable
- #6015 - early block return retains $! filling cause for next error
- #6014 - correct/revisit exception backtrace (and stack-trace)
- #6007 - Bash cleanup
- #6005 - Reduce block overhead
- #6002 - (refinements?) Something is passing nullblock instead of the actual block in GraphQL
- #6000 - Do not alias a Java IsEqual to equal?
- #5999 - ensure javase version in osgi meta is 8 and not 9
- #5998 - update maven-bundle-plugin and bndlib to latest
- #5997 - Stack overflow due to RubyGems warn patch
- #5996 - Update RubyGems to 3.0.6.
- #5995 - Update RubyGems
- #5992 - Make many fields on Ruby final.
- #5991 - Invalid OSGi metadata
- #5990 - The .equal? method should not be mapped to .isEqual for Java objects (e.g. Joda LocalDate)
- #5988 - java.lang.module.ResolutionException
- #5985 - fix strict_base64 for shared strings
- #5984 - Bind only public interface methods for private classes
- #5981 - Nailgun Error - org.jruby.util.NailMain: command not found
- #5979 - Maven source artifact contains full build path
- #5978 - Cache method_missing target
- #5977 - fix 'jruby: line 88: cd: ../libexec/bin: No such file …'
- #5976 - Incorrect warning line
- #5972 - optimize isGregorianLeap
- #5970 - expand #succ for bignums
- #5969 - Mutliple issues on jdk11 after ugrading to jRuby 9.2.9.0
- #5968 - Enumerator#any? is wrong for sequence of empty arrays
- #5966 - Remove usages of deprecated ConfigMap
- #5965 - isGregorianLeap in RubyDate.java - two suggestions for minor changes
- #5963 - improve BUILDING.md
- #5961 - Faster unpackm0
- #5960 - fiddle fixes
- #5959 - Tweak getCurrentContext for SPEED
- #5958 - Propagate ThreadContext through to_a implementations
- #5956 - dlload throws LoadError instead of Fiddle::DLError
- #5955 - NameError: uninitialized constant Fiddle::CParser::TYPE_SIZE_T
- #5953 - Fix Array.pack with @ directive and buffer #4727
- #5952 - Use string index in String #sub/#gsub when String pattern passed without creating a Regexp
- #5945 - Refinements are not activated in send
- #5907 - Properly override base env with supplied values for spawn
- #5905 - String#gsub given a String can avoid Regexp
- #5894 - Can't call methods of private subclasses in a module
- #5656 - Multicast Receive Broken On Windows 10
- #4727 - Array#pack buffer should start from beginning of buffer?
- #3428 - Process.spawn doesn't remove nil env variables
- #2255 - Fixnum instance variable behaviour incorrect
- #2096 - filesystem and internal encodings are missing from Encoding.name_list
JRuby 9.2.9.0 Released
Wednesday, October 30 2019
The JRuby community is pleased to announce the release of JRuby 9.2.9.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
Ruby Standard Library
-
The Ruby Standard Library has been updated to Ruby 2.5.7. JRuby will now report this as our equivalent compatible Ruby version. (#5917)
-
RubyGems has been updated to version 2.7.10.
Security Updates
- This release removes an exploitable version of JQuery used by the rdoc library. See https://www.ruby-lang.org/en/news/2019/08/28/multiple-jquery-vulnerabilities-in-rdoc/
Java Modules Support
- Java modules are better supported in this release by checking for openness before attempting to reflect
against classes from that module. This should reduce the number of module warnings on Java 9+ and make it easier
to configure the JVM to open up appropriate modules and packages to JRuby applications. See also the
.jruby.java_opts
file below, which can help you manage module options. (#5841, 5832, #5843, #5855, #5860)
Java Launcher Improvements
-
JVM options can now be added to global or app-local
.jruby.java_opts
files and automatically processed by the JRuby launcher. See JRuby Java Options Files for more information. Note: This feature is not yet supported by the JRuby native launcher, installed by default in RVM. We will release an update to the native launcher soon. (#5824, #5826) -
You can now pass
--environment
to the JRuby launcher to get a log of exactly how we will execute your application. (#5840) -
JRuby’s dev mode (via the
--dev
flag) adds additional options for Java 9+ and the OpenJ9 JVM. On OpenJ9, the-Xquickstart
and-Xshareclasses
flags are passed via theOPENJ9_JAVA_OPTIONS
environment variable. (#5831)
Memory Usage Reductions
- Numerous changes in this release reduce the boot-time and run-time memory use of JRuby applications. (#5837, #5832, #5874, #5880, #5885)
Thread-safety Improvements
Process.wait APIs are now interruptible
- Threads calling
Process.wait
,waitall
, orwaitpid
will use thepthread_kill
native function to interrupt those operations. Previously these threads were not interruptible. (#1050, #5848)
Native FFI improvements
-
When running JRuby via the “complete” jar file, we must unpack our native FFI stub to an appropriate temporary location. If the default location we use (the host system’s default “temp” location) is not readable or does not allow executable code, we will present an informational error indicating how to correct the issue. (#1302)
-
This release also includes native support for DragonFly BSD. (#5768, #5828)
Time Zone Data
- Time zone data has been updated to IANA 2019c. This update includes six years of timezone changes. (#5951)
Github Issues resolved for 9.2.9.0
- #5951 - Update joda-time and joda-timezones to 2019c
- #5950 - Update all jnr dependencies and joni.
- #5943 - properly synchronize globalInlineCount
- #5942 - Mutex fixes for interruptibility
- #5940 - Improve how we acquire ThreadContext to eliminate null refs.
- #5939 - Restructure indy-based math binding.
- #5938 - regressed indy fixnum op with custom equality (==)
- #5935 - TypeError: "warn" with subclass of String constructed from heredoc
- #5934 - [fix] ensure that fnmatch pattern does not contain a NUL character
- #5931 - [test] update MRI test suite from ruby_2_5
- #5930 - dupImpl specializations
- #5929 - NPE json nested-array regression
- #5928 - faster unpack1
- #5927 - Use new RubyStringBuilder.str api to create inspected string for Exception
- #5926 - fix class nesting #5925
- #5925 - Inner Java classes are nested recursively
- #5923 - Exception inspect in wrong encoding
- #5921 - Add native.popen option to disable native popen.
- #5919 - Synchronize variable reification against real class.
- #5917 - Update stdlib to 2.5.7.
- #5915 - encoding parameter for Dir.open, Dir.new #3205 #4495
- #5912 - Deadlock with puma on JRuby 9.2.8.0
- #5910 - 'Cannot cast org.jruby.gen.RubyObject7 to org.jruby.gen.RubyObject4' errors
- #5909 - Concurrent File#flock calls of the same file results in Errno::EINVAL exception on Windows
- #5908 - Implement Java::JavaLang::Throwable#full_message
- #5906 - Java::JavaLang::Throwable missing full_message method
- #5903 - less locking in interpreter mode (due IRMethod)
- #5902 - [fix] avoid locking on class/module creation
- #5901 - singleton class initialization blocks threads
- #5900 - reporting a better error when tmp doesn't work for temporary executables
- #5898 - Enable recursive fd redirection for popen logic.
- #5897 - Simplify and use static scope for local_variables.
- #5893 - [fix] jit.excludes for block using class (and method) name
- #5891 - Clean up some backref and lastline users.
- #5889 - [feat] jit.exclude based on path/to/impl_file.rb
- #5886 - Update types.conf from ffi/ffi
- #5885 - Unable to call inherited instance method on Java class under OpenJDK 12
- #5884 - frozen path helper
- #5882 - Jruby crashes intermittently right before coverage generation
- #5880 - attempt to share loader for JIT-ed classes
- #5877 - make SecureRandom.rand public
- #5875 - Mutex behavior mismatch with MRI since JRuby 9.2.8.0
- #5874 - Reduce bytecode size from JIT
- #5873 - Kernel#warn keyword handling differs from CRuby
- #5872 - Old version of jQuery is present in the JRuby builds
- #5871 - Use Java 8 stack walker when full trace is requested.
- #5870 - respect jit.max to stop compilation
- #5869 - ArrayIndexOutOfBoundsException when using TracePoint
- #5866 - Test passing control between two threads in the ConditionVariable spec
- #5865 - Kernel#system fails with out: $stdout
- #5864 - Illegal Reflective Access Operation Warning
- #5863 - ConditionVariable#wait causes thread to wait forever in 9.2.8.0
- #5860 - automatic-module-name
- #5859 - Invalid `Tracepoint` Behavior for Blocks
- #5858 - update joda time to 2.10.3
- #5855 - Issues using bundle plugin with Java modules
- #5854 - Implement IO#pread and pwrite.
- #5853 - `slice_after` does not work on lazy Enumerators
- #5852 - Return from block broken in 9.2.8.0
- #5851 - Improvements to backtrace
- #5850 - Fix tracer.rb and get it running in CI
- #5849 - Top frame from interpreter gets wrong filename
- #5848 - Wrap Process.wait* calls with pthread_kill logic.
- #5845 - Propagate interrupt after interrupted sleep loop.
- #5843 - Move all JI setAccessible to trySetAccessible.
- #5841 - Can't call methods of private subclasses with java_method in java 12
- #5840 - Consistently resolve path of jruby.bash
- #5837 - Tweaks to reduce memory use of short commands
- #5835 - Fail gracefully when inner class const_missing finds nothing
- #5834 - enumerator review for better compatibility
- #5832 - Reduce overhead of binding Java classes and methods
- #5831 - Further improvements to dev mode
- #5830 - aligned (and faster) uniq impls + less wrapping
- #5829 - Actually release Windows for_fd fixes
- #5828 - Identify DragonFlyBSD as a platform
- #5826 - Add support for .jruby.java_opts home and cwd files
- #5824 - Provide better documentation on java command @file support
- #5816 - IO#pread and pwrite missing
- #5768 - Support for DragonFly BSD
- #5744 - first stab at a spec
- #5722 - use same parameter for DNS.allocate_request_id/free_request_id to fix leak
- #5700 - [ji] align Java array (with post 1.8 conventions)
- #5127 - system() does not return boolean when Dir.pwd is uri:classloader
- #4495 - Dir.open missing optional second keyword argument
- #1302 - JRuby fails to load FFI support with obscure error when /tmp is not writable
- #1050 - Timeout::timeout not throwing exception when timeout period reaches
JRuby 9.2.8.0 Released
Monday, August 12 2019
The JRuby community is pleased to announce the release of JRuby 9.2.8.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
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.
- Substantial memory reduction (~24% less heap with a simple Rails app)
- Reduced runtime generation of specialized objects and variable scopes
- Enumerator#next logic replaced with Fiber
- Better handling of argument lists passing through Enumerator
- Open Java modules bind methods correctly
- IO and process control improvements on Java 9+ and on Windows
- More robust handling of optimized call paths for Fixnum, Float
- 90 issues fixed for 9.2.8.0
Github Issues resolved for 9.2.8.0
- #5820 - Dereference proc from interface impl singleton
- #5819 - Can't write to java.lang.System.out in java 11
- #5818 - Update JRubyPOSIXHandler.java
- #5814 - fix custom call-site performance regression
- #5813 - Allow generating reified Ruby classes with actual name.
- #5812 - [fix] Enumerable#first block signature (matches MRI)
- #5811 - Remove tag for "str".freeze idempotency test.
- #5810 - Add the column caret line when encountering a SyntaxError
- #5809 - MRI compatibility with IO::sysopen for serial ports on windows
- #5807 - [fix] resolve Range marshal compat with MRI
- #5805 - Marshal dump produces wrong output for Range objects
- #5801 - Ripper is missing EXPR_VALUE
- #5800 - #original_name overwrite on second alias_mathod
- #5799 - .singleton_methods returns an empty array after prepending
- #5795 - Re-open #5595: jruby --debug -S irb --tracer is not working
- #5793 - jruby-jars.gemspec: Drop rubyforge_project
- #5791 - In DateTime.jd, some Rational numbers cause RangeError (bignum too big to convert into `long')
- #5788 - kwargs in Array.each mutates argument
- #5781 - Support Time ranges in rand
- #5774 - Add support for IO::for_fd on windows after jnr-enxio#32
- #5773 - SecureRandom does not implement #bytes like MRI
- #5771 - unpack encoding inconsistent with MRI
- #5770 - Tweak the transcode loop to match MRI error behavior.
- #5767 - TCP Connection refused
- #5761 - Pre-generate DynamicScope shapes at build time
- #5760 - Socket error fixes
- #5754 - EHOSTUNREACH when a FTP connection cannot be established
- #5752 - RbConfigLibrary: Set CCDLFLAGS to "-fPIC"
- #5751 - mkmf: CCDLFLAGS is missing -fPIC
- #5750 - RbConfigLibrary: Set COUTFLAG to "-o "
- #5749 - mkmf: COUTFLAG does not have `-o`
- #5741 - Dependency convergence errors
- #5740 - "class is not compiled Ruby" error for string interpolation expression
- #5738 - Backtrace set with set_backtrace is not dup'd properly in 9.2.7.0
- #5737 - Jruby 9.2.7 with Java 11 "NoMethodError: undefined method `separator' for Java::JavaIo::File:Class"
- #5736 - Jruby 9.2.7 with Java 11 is throwing "Native subprocess control requires open access to sun.nio.ch" warning
- #5735 - Tempfile#open doesn't support default argument
- #5733 - Use external when windows filesystem encoding is not found
- #5731 - Fix and deprecate Java interface constant accessors
- #5730 - Constant access via . does not work when using Java 11
- #5728 - RFC: Do not add CLASSPATH to the module path
- #5726 - Ignore nil for ifnone argument in Enumerable#find
- #5723 - 0.0.to_d returns negative zero in jruby-9.2.7.0
- #5715 - Fix indexOf() RubyString method.
- #5714 - Issue when splitting an encoded string with specific characters
- #5712 - Re-add command line specs to CI and tag new failures
- #5711 - Make the PosixShim errno field into a thread-local
- #5709 - Socket#close raises EBADF after unsuccessful connection
- #5707 - Windows Traditional Chinese Edition: unknown encoding name - MS950
- #5706 - IO.read_nonblock raises EOFError with concurrent reads
- #5704 - update joda-time to latest 2.10.1
- #5703 - [ji] to_time conversion for Java DateTime types
- #5702 - #5699:adding the javax maven dependency to avoid "javax.annotation.Ge…
- #5701 - [ji] support java.math.BigDecimal#to_d
- #5698 - Regression on java array slices with a negative index introduced in 9.2.1.0
- #5697 - Test that lazy enumerator doesn't pre-evaluate
- #5695 - Run BEGIN blocks from JVM-compiled scripts.
- #5693 - pass -ea to JVM and fix asserts for test targets
- #5692 - Address all tests failing with asserts enabled
- #5691 - Licensing confusion; perhaps out of date
- #5689 - Update backport9 to 1.3
- #5688 - [test] public field accessiblity in default package
- #5686 - jruby 9.2.7.0 ships with bundler (it didn't before)
- #5685 - Streams created for file parsing are allowed to finalize
- #5684 - Can't access java member variables
- #5683 - Return to interruptible lock acquisition in Mutex.
- #5672 - Use pure-Ruby Fiber-based Enumerator#next
- #5659 - Fix -x command line option to skip header
- #5641 - File.stat.writable? returning false in JRuby, true in MRI
- #5631 - java_send/java_alias and perhaps others are not finding the proper method
- #5616 - Open3.popen3 does not work in jruby 9.2.6 with openjdk 11.0.2
- #5612 - Fix off-by-one error causing Dir.glob("foo" + "{bar}") to fail if Java asserts are enabled
- #5518 - Limit the width of reified objects to 50 by default.
- #5476 - Mutex#lock and Mutex#synchronize are not interruptible by Thread#kill
- #5284 - NoMethodError when calling protected java method from subclass On java 9
- #5249 - use of jruby causes “Errno::EBADF: Bad file descriptor” error
- #5235 - popen3 doesn't works fine with java 9/10 and jruby > 1.9.13
- #5070 - "str".freeze optimization sporadically produces a different object
- #5044 - lazy map adds extra array layer to single-element array output
- #4968 - proc binding(local variables) is not garbage collected (memory leak)
- #4839 - StackOverflow on using method_added in a mixin
- #4834 - Eliminate or configure invasive JDK class accesses for Java 9
- #4736 - Fixnum/Float 'fast-ops' working even when re-opened
- #4536 - Failing "-x" command line option
- #4419 - exit! and --debug events can cause a deadlock
- #4260 - squiggly heredoc with single quotes indent wrong
- #4212 - Lazy enumerable select eagerly evaluates next item
- #4108 - Enumerator's Yielder does not pass through one-elt array properly
- #3735 - JRuby 9.x slower than 1.7.21 when running Brakeman
- #2892 - Numeric#step issues
JRuby 9.2.7.0 Released
Tuesday, April 09 2019
The JRuby community is pleased to announce the release of JRuby 9.2.7.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. This version offers significant improvements to refinements. It also has a big performance gain for Rational#/. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.
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.
- 53 issues fixed for 9.2.7.0
Github Issues resolved for 9.2.7.0
- #5679 - Provide better thread name for enumerator/fiber workers.
- #5678 - multicast receive broken everywhere
- #5677 - Use close_on_exec method instead of using fcntl calls for pty. Fixes #5663
- #5675 - speedup BigDecimal division
- #5670 - Update fiber/enumerator threads with info about creation
- #5664 - Incorrect parameters for core methods messes up RSpec proxies
- #5663 - File::write uses nonblocking IO when MRI uses blocking
- #5657 - Multicast Receive Broken On all Unixy machines.
- #5654 - NullPointerException with PTY.open returning null (not nil)
- #5653 - Updage to json 2.2.0
- #5652 - Remove the "Fatal" constant since it's hidden in MRI.
- #5651 - Additional pack/unpack optimizations
- #5650 - decimal performance
- #5648 - Fatal is not a module
- #5647 - Outline case bodies from unpack logic.
- #5645 - Only run deploy against actual pushes to our repo
- #5642 - Open3::capture2 and friends hang on stdin_data on Java GTE 9
- #5639 - update to jruby-openssl 0.10.2
- #5636 - Isolate debug specs and run fast suite without --debug
- #5635 - Ubuntu: JRuby startup warning
- #5634 - singleton method + zsuper issue when contained in another class?
- #5629 - Deploy snapshots after successful builds
- #5628 - Set up CI with Azure Pipelines
- #5627 - Rework method invocation to properly super
- #5626 - [fix] make Date/DateTime equality consistent
- #5625 - [fix] DateTime (civil) Float sec rounding
- #5611 - Revert "Push signal traps and at_exit blocks to a common thread for exec."
- #5610 - Revert "Make autoload dynamically dispatch to require. Fixes #5403."
- #5609 - Revert "Autoload fixes"
- #5608 - Kernel#warn doesn't handle exceptions as expected
- #5607 - Multiple adjustments to the Exception and raise logic.
- #5605 - set_backtrace should disable backtrace generation on raise
- #5604 - Improve refinements implementation
- #5584 - improve sprintf compatibility
- #5557 - Ensure symlink path names passed to File.lstat are dereferenced when necessary
- #5550 - Regression: multiple refinements of the same class
- #5547 - FileUtils.chmod failes when called on symlink under linux
- #5545 - Refinements: method can't use other methods from refinement
- #5542 - new grapheme cluster scheme in c code
- #5541 - Refinements not following inheritance
- #5539 - File::Stat#directory? returns false for symlink to directory with trailing slash
- #5489 - Autoload fixes
- #5441 - Push signal traps and at_exit blocks to a common thread for exec.
- #5404 - Make autoload dynamically dispatch to require. Fixes #5403.
- #5221 - Refinement with `super` vs. inheritance
- #5153 - Fix refinements
- #5054 - Refinement is not activated within itself
- #4531 - Order of prepends and extends can break super
- #4514 - [9.1.7.0] Refinements of a superclass's singleton_class not being honored
- #4489 - Refines coming from included modules aren't recognized by jruby
- #4237 - NullPointerException when using refinement including multiple modules and calling super
- #4236 - Refinement that includes itself does not work
- #2160 - Rational support for %f in sprintf
JRuby 9.2.6.0 Released
Monday, February 11 2019
The JRuby community is pleased to announce the release of JRuby 9.2.6.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:
- 52 issues fixed for 9.2.6.0
Github Issues resolved for 9.2.6.0
- #5597 - "Useless" warnings have file as "null"
- #5596 - proc with no arguments does not pick up current block
- #5595 - IRB with tracer flag is not working
- #5591 - Eliminate all magic builtin libraries
- #5589 - Time, DateTime: fix isTzRelative book keeping
- #5587 - Time: minimal fix for Rails Time.change() problem
- #5586 - Time: fix TZ offset
- #5583 - Time: fix localtime(), getlocal(), parse() for TZ offset
- #5581 - [fix] interpret today TZ-relative but use GJ chrono
- #5580 - fix float formating regression (half-even rounding)
- #5572 - adding RbConfig TOPDIR (and related)
- #5564 - Fix time precision with fractional seconds as Rational
- #5562 - uninitialized constant RbConfig::TOPDIR
- #5558 - Time precision problem
- #5556 - float format-ing regression in 9.2
- #5554 - [fix] Thread#status should reflect exited exception
- #5548 - Define a proper annotation parameter for DynamicMethod.Version
- #5538 - Multi-rescue should not eagerly evaluate its elements
- #5533 - File modification time not properly set
- #5531 - Validate ivar and const symbols from Java before adding to table.
- #5529 - Update to psych 3.1.
- #5528 - Handle symbol dumping properly
- #5527 - Fixes #5517 (returns in unexpected place)
- #5526 - Use atomics to reduce contention within failover invaldator.
- #5525 - High lock contention invalidating "failover global" invalidator
- #5524 - backport fd leak in resolv
- #5523 - Regression with Marshal.load(a Hash)
- #5522 - test, review & avoid (regressed) mutex behavior
- #5520 - Mutex gets 'broken' sporadically (since 9.2.1)
- #5517 - NPE due to unhandled non-local return
- #5516 - Fix sub-millisecond datetime difference handling
- #5515 - Add log.singletons and .verbose to track singleton class creation.
- #5514 - Executors are not shut down during tearDown
- #5513 - String#scan raises java.lang.ArrayIndexOutOfBoundsException with multi-byte characters
- #5512 - Eliminate transient objects for looking up symbol by bytelist
- #5506 - review thread sync and clear references
- #5505 - Update stdlib to Ruby 2.5.3.
- #5504 - Also fix up return values when frame is present, for backref.
- #5503 - Problem when method returns Regexp capture group using special variable $1
- #5500 - Use Java 9 stack walking to reduce the cost of #caller and friends
- #5499 - Fix known binary compat issues with new Java 9 overloads.
- #5493 - Difference of DateTimes with fractional milliseconds calculated incorrectly
- #5479 - Update ERB stdlib from MRI 2.5.0 to at least 2.5.1
- #5462 - add java 10, 11 opcodes
- #5451 - improve cross compile compatibility
- #5450 - java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()
- #5418 - Date.today does not appear to take the local TZ into account
- #5383 - Create new pgroup when spawning process in chdir
- #5312 - test_status_and_stop_p exposes a race in Thread status
- #5169 - Reflective methods should not create symbols for nonexistent elements
- #4784 - DateTime to_time does not preserve UTC-ness
- #4157 - Kernel.sprintf("%f",...) rounds to even on MRI but JRuby rounds away from zero
JRuby 9.2.5.0 Released
Thursday, December 06 2018
The JRuby community is pleased to announce the release of JRuby 9.2.5.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:
- 29 issues fixed for 9.2.5.0
Github Issues resolved for 9.2.5.0
- #5495 - Remove failed tag for Array#to_h MRI tests
- #5491 - improved error message for "wrong number of arguments"
- #5488 - [fix] RubyException#toJava(Object) shouldn't return null
- #5487 - [#5288] Overwrite parent class with module wrapper
- #5483 - Java::JavaLang::ArrayStoreException when running cucumber tests
- #5481 - Never return the internal module name as a mutable string.
- #5480 - Class names are mutable
- #5477 - mongoid driver does not work in JRuby on Windows or JRuby loads incorrect socket constants on Windows.
- #5474 - less sync-ing with thread registration
- #5461 - fix duplicate declaration
- #5460 - Revisit symbol hash and marshal fixes from #4576
- #5458 - Tempfile.open should have arity 3, to allow IO options through.
- #5456 - Tempfile.open does not recognize the 3rd argument (options to pass to File.open)
- #5455 - Fix multi-arity method binding.
- #5453 - Splatted kwarg struct init
- #5452 - Use default sg ITALY with getChronology here.
- #5448 - RubyStruct.java gives ArgumentError: unknown keywords: keyword
- #5447 - sigsev on installing gems on aarch64
- #5445 - fix max range for usec
- #5444 - fix an edge case in gcd calculation
- #5443 - fix overflow in #i_gcd
- #5435 - Allows CompiledIRMethod to inline methods when it is the host scope.
- #5433 - update jruby-readline de-ja-vu (for JRuby::Util.load_ext)
- #5417 - Improve errno detect
- #5410 - remove getClass from RubyRegexp
- #5409 - synchronize RubyHash#iteratorExitSync
- #5387 - Updated jruby-readline alters terminal settings, breaking interactive prompts
- #5288 - Regression: Refinements Broken from 9.1 to 9.2
- #5242 - OpenSSL::Cipher#update doesn't accept a buffer argument
JRuby 9.2.4.1 Released
Wednesday, November 28 2018
The JRuby community is pleased to announce the release of JRuby 9.2.4.1
- 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.
This is a security release that updates the native Windows executables shipped in the bin directory. A user reported that several virus scanners appear to flag one of these executables, jrubyw.exe, as containing a virus. We scanned the systems used for building those executables, and were unable to find any evidence of infection, but as a precaution we have rebuilt them on a known clean system for this release.
Github Issues resolved for 9.2.4.1
JRuby 9.2.4.0 Released
Tuesday, November 13 2018
The JRuby community is pleased to announce the release of JRuby 9.2.4.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:
- 4 issues fixed for 9.2.4.0
Github Issues resolved for 9.2.4.0
JRuby 9.2.3.0 Released
Friday, November 09 2018
The JRuby community is pleased to announce the release of JRuby 9.2.3.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:
- 1 issues fixed for 9.2.3.0
Github Issues resolved for 9.2.3.0
- #5431 - Java::JavaLang::RuntimeException: org.jruby.runtime.scopes.DynamicScope0 only supports scopes with 0 variables
JRuby 9.2.2.0 Released
Thursday, November 08 2018
The JRuby community is pleased to announce the release of JRuby 9.2.2.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:
- 4 issues fixed for 9.2.2.0
Github Issues resolved for 9.2.2.0
JRuby 9.2.1.0 Released
Tuesday, November 06 2018
The JRuby community is pleased to announce the release of JRuby 9.2.1.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:
- Performance improvements and bug fixes for Java integration
- More efficient layout of Ruby instance variables
- Basic support for Java 11
- Support for Java 11’s Application Class Data Sharing to improve startup
- Expanded invokedynamic method call support
- 166 issues fixed for 9.2.1.0
Github Issues resolved for 9.2.1.0
- #5416 - More robust way to detect atomic move failure. Fixes #5415.
- #5415 - Regression 9.2.1.0 File#mv
- #5414 - Add opens for java.io and java.nio.channels to improve compat.
- #5413 - Bucket size of zero is not valid. For bucketless, use small.
- #5412 - Temporarily revert open-addressing Hash for concurrency reasons.
- #5411 - taint flag
- #5408 - missing return
- #5402 - Only use the UTC formatter if time was not specified as relative.
- #5400 - Time.new with explicit timezone string will display as UTF with +00:00.
- #5399 - Do a fast dup of args when all symbols, due to kwarg processing.
- #5398 - Hash#any? not always returning proper keys/values
- #5397 - Revert "[ji] make inspect on Java proxies work"
- #5396 - Regression from Date.parse optimizations
- #5394 - [fix] singleton meta class
- #5393 - Fix Hash#shift when at capacity
- #5392 - Hash#shift fails at capacity boundaries
- #5391 - Fixing coercion case for subtraction from BigDecimal. Fixes #5386.
- #5390 - Clear references to threads and thread contexts on teardown.
- #5389 - Update jffi to 1.2.18 for refreshed 32-bit ARM support.
- #5388 - Revert updated jruby-readline
- #5386 - Bigdecimal and coerce failing on subtraction operation
- #5384 - Prophile
- #5380 - [fix] do not parse zone for local + better dst calculation
- #5378 - Always use full logic for processing glob segments.
- #5377 - Thread#status can return unexpected value "dead"
- #5375 - Struct#values should return an array which is independent of the struct
- #5373 - [#5287] Use epoll selector for file IO on macosx
- #5372 - Struct#to_a returns an array that is linked to the struct
- #5371 - Raise error on negative usec param to Time.new.
- #5370 - Time can be initialized with negative nanoseconds
- #5369 - Make subtract and addition operators work with DateTime objects
- #5368 - ArrayIndexOutOfBoundsException in Joni
- #5367 - enable Integer#sqrt
- #5366 - improve rational performance
- #5365 - Kernel#sleep hangs on CI
- #5364 - improve gcd performance
- #5363 - Improvements for modules on Java 9+
- #5362 - Unable to use jirb on ARMv7 processor
- #5361 - upgrade mavengem extension
- #5360 - Fix #5357
- #5358 - Fix toplevel method visibility in jit/fullint script scopes.
- #5357 - respect frozen_string_literal
- #5356 - Use JDK atomic move to more closely emulate POSIX rename.
- #5354 - Realign timeout with MRI.
- #5352 - wsl workaround
- #5351 - Update to Psych 3.0.3.pre2. See ruby/psych#352.
- #5350 - [Zlib][CRC32] Trim 'start' value to 32-bit for negative long integers
- #5348 - revert volatile mod from values[] RubyArray store?
- #5347 - optimize nextPowOfTwo
- #5346 - Use right -sourcepath when jruby is invoked via jdb
- #5345 - bump asm version + remove asm-analysis
- #5344 - upgrade jar_dependencies to 0.4.0
- #5342 - return early if one of the arrays is empty
- #5341 - LoadError when loading a class with inline hash using instance vars as values.
- #5338 - fix shuffle_random
- #5337 - index error instead of argument error
- #5336 - fix enumerable first
- #5335 - Fix mvnw jar file path for Cygwin
- #5333 - no result with glob pattern "\\"
- #5332 - ByteList java.lang.IllegalAccessError
- #5331 - [WSL] Errno::ENOMEM
- #5328 - Fix ci deploy
- #5325 - Update JNR projects.
- #5323 - Fix tagged as failed spec for Enumerable#slice_when
- #5321 - ProcessBuilder#environment
- #5318 - JRuby raises IOError instead of specific error if File.rename(a,b) fails due to hidden filesystem
- #5317 - Allocate method on NilClass should raise TypeError
- #5316 - Update jnr-constants for fixes after the updated generation logic
- #5315 - Remove thread stop
- #5314 - test_handle_interrupted? may expose improper handle_interrupt logic
- #5307 - Short-circuit chained lazy calls once a nil is encountered.
- #5306 - Fix Hash#initialize spec tagged as failed
- #5305 - Fix Hash#rehash for open addressing
- #5304 - rehashing regression with compare_by_identity
- #5303 - Fix some failed Enumerable#find_index specs
- #5302 - Fix failed Enumerable#uniq spec when yielded with multiple arguments
- #5299 - Improve RubyHash#resize performance
- #5298 - Fix remaining failing tests with Enumerable#all? when given a pattern argument
- #5297 - Struct does initialize attributes wrong
- #5296 - Fix some failed tests for Enumerable#all?, #any?, #none? and #one?
- #5290 - Zlib crc32 resulting into Java::JavaLang::ArrayIndexOutOfBoundsException (32)
- #5289 - Implement hash cache to fix #5280
- #5287 - sysread hangs on EOF on mac
- #5286 - Proc source location gives wrong result
- #5281 - BUILDING.md: Mention Java 8 JDK is required
- #5280 - bundle install fails since #5215
- #5279 - Incorrect values resulting from to_date on a Time object
- #5278 - Refactor and fix allocFirst with buckets for RubyHash
- #5277 - fix duplicated file encoding
- #5276 - Fixes underlying logic of slice_when / chunk_while to handle 1 element collections
- #5275 - `slice_when` and `chunk_when` don't work with an 1-element enumerable
- #5273 - IllegalCharsetNameException: -Dfile.encoding=UTF-8UTF-8
- #5272 - Stackoverflow calling "super" from included module method
- #5267 - 76c2df8 causes unit test failure of Oracle enhanced adapter
- #5265 - Add Complimentary Regression Test for GH-5203
- #5259 - [refactor] improve Date parsing performance
- #5255 - Date parsing (still) noticeably slower than MRI
- #5252 - can't use Date.iso8601 with a string subclass
- #5250 - fix invalid date error message
- #5247 - 9.2.0.0 requires java 8 but states java 7 as requirement
- #5245 - Duped modules' class-level methods produce NPE when inspected
- #5244 - 9.2.0.0 rake missing rake gem and fails
- #5239 - review String -> RubyString UTF (8) encoding
- #5233 - jruby (ext) loading left-overs to consider
- #5231 - dont mutate module names
- #5229 - Mutating result of Module#to_s changes Module#to_s on JRuby 9.2
- #5226 - upgrade to jruby-openssl 0.10.1
- #5222 - NullPointerException when deserializing a Set with YAML.load
- #5219 - [ji] make inspect on Java proxies work
- #5218 - The coderange is not properly recomputed after upcase/downcase/swapcase
- #5216 - Method Missing: org.jruby.RubyInteger.int2fix
- #5215 - Open addressing algorithm for RubyHash
- #5214 - Clone proc blocks as well so they have their own frame etc.
- #5211 - [ji] coercing Ruby File/Dir to Java File/Path
- #5210 - Haml on JRuby 9.2.0.0 throws error evaluating interpolated element attribute with `#`
- #5209 - NoMethodError: undefined method `on_kwrest_param'
- #5208 - Encoding of String.name is ASCII-8BIT
- #5205 - review (cleanup) boot -> standard JRuby extension loading
- #5204 - AsciidoctorJ fails on JRuby 9.2.0.0
- #5198 - Consider encoding when deduplicating strings.
- #5197 - GZipFile#close does not return IO object as MRI does
- #5196 - [9.2.0.0] Missing gems in dist
- #5195 - 9.2.0.0 regression in Date#to_time for BC dates resulting in Time off by 1 year
- #5193 - JRUBY 9.2.0.0: Assertion Failure when Reporting RSpec Failure
- #5192 - jgem fails to load gem from rubygems on Raspbian
- #5191 - 9.2.0.0 Regression in DateTime.parse for BC dates
- #5190 - JRuby 9.2.0.0 string deduplication via String#-@ does not work the same as CRuby
- #5189 - JRuby 9.2.0.0 warns about BigDecimal.new even in non-verbose mode
- #5188 - Invalid Date exception when marshaling a Date - 9.2.0.0
- #5187 - Non-volatile instance variables
- #5186 - Finish reification
- #5182 - Java types should simply toString on inspect?
- #5175 - Always search full hierarchy for highest definition of a cvar.
- #5171 - Generate right-shaped object subclasses
- #5164 - Thread::Backtrace::Location#label inside eval does not return enclosing method name
- #5163 - When Thread::Backtrace::Location#base_label and #label are #== on MRI they are also #equal?
- #5162 - Thread::Backtrace::Location#base_label for blocks differs from MRI
- #5098 - YAML.load significant performance degradation when JSON string is included
- #5069 - Implement AppCDS support for startup time improvement
- #4981 - Do not leak DNS Request IDs
- #4851 - Unable to use protected java method in jruby with jdk9
- #4781 - Improve two-way integration of Java and Ruby exceptions
- #4708 - [2.4] Hash key randomization, universal hashing, new Hash impl
- #4689 - __dir__ does not return canonicalized absolute path
- #4684 - Rename readmsg to recvmsg
- #4528 - Not every class has a superclass?
- #4403 - MRI and JRuby disagree about File.exist?("/non_directory_file.name/")
- #4281 - JSON::Parser issues with encodings
- #4197 - Generify accept methods in AST
- #3937 - Implement Thread#report_on_exception
- #3922 - Performance regression with `Time.parse` from 1.7 to 9k
- #3843 - Java calls do not bind directly with invokedynamic
- #3834 - Anonymous class-type being raised by Timeout/Queue in both 9x and 1x.
- #3739 - Drop 500MB cap for 9.1 on (and all launchers)
- #3688 - Multibyte identifiers not marshaled correctly
- #3495 - io/console.rb on AIX not working in v9.x
- #3313 - Running threads stay running after teardown
- #2212 - Kernel#__method__ within a proc returns incorrect value after method definition
- #2056 - Use ExactMath for overflow
- #1795 - Time#zone using Time#local
- #1554 - Class variable in subclass is not overtaken by class variable in superclass
- #1509 - Socket::Constants incorrect on Windows
- #1183 - Use of deprecated Thread.stop() causes ThreadDeath exceptions propagating to caller
- #1026 - Errno::ENOTDIR on Dir.chdir into jar
- #315 - Improve handling of $! in exception logic
- #287 - Class does not inherit singleton_class's class methods
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
JRuby 9.1.17.0 Released
Monday, April 23 2018
The JRuby community is pleased to announce the release of JRuby 9.1.17.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.1.x is our current major version of JRuby. It is expected to be compatible with Ruby 2.3.x and stay in sync with C Ruby. JRuby 9.1.17.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.
Highlights:
- Windows installer works with Java 9
- Improved compatiblity on Java 9/10
- 31 issues fixed for 9.1.17.0
Github Issues resolved for 9.1.17.0
- #5141 - Multiple Array#concat calls for single-element array throws ConcurrencyError
- #5138 - jruby > 9.1.13.0 crashing on bundler when certain jvm flags are enabled
- #5137 - Use ConcurrentWeakHashMap for RubyClass.subclasses
- #5132 - Can't set `java.security.egd` system property
- #5131 - TypeError: bind argument must be an instance of ...
- #5128 - eval in Rack::Builder prints "warning: `frozen_string_literal' is ignored after any tokens"
- #5125 - Cannot subclass standard class Time
- #5120 - Dist target now fails
- #5115 - ConcurrentModification error during Tomcat startup
- #5112 - UDPSocket fails to bind to an IPv6 address unless AF_INET6 is explicitly set
- #5111 - NPE from within CoverageModule.convertCoverageToRuby
- #5104 - IRB doesn't start on jRuby 9.1.16.0
- #5100 - File.open() on Windows without binary flag reading 0x0A (newline) instead of 0x0D (return)
- #5099 - Exception.new.backtrace_locations should return nil
- #5091 - "Invalid extended option" error for legit `-X` options
- #5086 - RegexpError "invalid pattern in look-behind" for certain Regexps since 9.1.16.0
- #5084 - Error when installing 9.1.16.0 on Windows 10 (64 Bit)
- #5081 - TCPSocket/UDPSocket close deadlock while other thread read
- #5080 - Method#owner for alias methods doesn't include prepended modules, breaking equality
- #5078 - Numeric#step yields Floats instead of Integers
- #5075 - File.utime failing with JRuby 9.1.16.0
- #5073 - File#mtime does not behave like it does in MRI in respect to renamed and deleted files on POSIX
- #5072 - update jffi and release version for JRuby 1.7
- #5066 - The & operator doesn't work with quoted symbols
- #5057 - java.net.preferIPv4Stack=true warning not possible to disable on OpenBSD
- #5018 - open3.rb broken in JRuby
- #4989 - Inconsistent end_of_day result
- #4894 - Is there a way to fail-fast on ambiguous arguments?
- #4796 - Possible ChannelFD leak in FilenoUtil?
- #2455 - red black tree 50% slower in 9k compared to 1.7
- #2354 - Java exceptions do not propagate out of Thread#join
JRuby 9.1.16.0 Released
Wednesday, February 21 2018
The JRuby community is pleased to announce the release of JRuby 9.1.16.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.1.x is our current major version of JRuby. It is expected to be compatible with Ruby 2.3.x and stay in sync with C Ruby. JRuby 9.1.16.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.
Highlights:
- Rubygems updated to version 2.6.14.1
- Fixed some ensure blocks being executed twice (9.1.15.0 regression)
- Support grapheme detection via \X
- Fixed error while loading readline on Windows
- 51 issues fixed for 9.1.16.0
Github Issues resolved for 9.1.16.0
- #5052 - String literal difference from MRI
- #5048 - IO.copy_stream replaces read chunk even if it's duplicated
- #5041 - Add modification check on String#chomp! method with default separator
- #5037 - align C ported memsearch code - need to handle array[length] properly
- #5036 - Scan ArrayIndexOutOfBoundsException Error
- #5019 - Do not leak DNS Request IDs
- #5018 - open3.rb broken in JRuby
- #5017 - Add `#test_power_of_0` and `#test_power_of_1_and_minus_1` to test targets
- #5016 - Exclude `#test_windows_1255` from our tests
- #5015 - Remove unused import statements
- #5014 - Remove TestArray#test_uniq_bang_with_freeze exclusion test case
- #5013 - fix issue where expr fails on freebsd.
- #5010 - Fix `convertCommon`
- #5006 - Fix test coerce2
- #5004 - PTY.open unusable because of fcntl error
- #5003 - Low-level Java error printed on Errno::EPIPE exception
- #5001 - Implement `Rational#coerce` with `Complex` object
- #5000 - Accept `nil` as an argument of `Rational#<=>`
- #4998 - Remove unused import statements
- #4996 - Add `#test_symbol_op` to test targets
- #4995 - Wrong #inspect is used in Method#inspect
- #4994 - Fix `Symbol#inspect` of UTF_16/UTF_32
- #4992 - Check an encoding of string
- #4982 - Set encoding for character literal
- #4976 - EADDRINUSE when binding TCP socket with globally disabled IPv6
- #4970 - String from literal sometimes not reused with frozen_string_literal enabled
- #4959 - Raise `TypeError` if `#extend_object` is called for no module objects
- #4955 - Revert to using weakref.rb, since it's based on a proper weak map.
- #4944 - Set original Module to definedClass of methods
- #4942 - No stdout with drip on jruby-9.1.15.0
- #4920 - Fiber#transfer gets confused about thread owners
- #4916 - RubyHash doesn't implement the contract of java.util.Map correctly
- #4910 - Regression with TCPSocket#close_on_exec on windows
- #4909 - JRuby 9000 performance with --debug is 4-5x slower than JRuby 1.7.2 or Ruby 2.3.3
- #4903 - Weird error using IO.copy_stream, IO duck types and enumerators
- #4900 - Improve compatibility with MRI's Ripper for JRuby 9.1
- #4899 - Compiled module descriptor in complete JAR distro
- #4896 - Jruby + Rspec scoping issues on Classes with Prepended Modules
- #4895 - Regression in 9.1.15.0 with some ensure blocks being executed twice
- #4891 - JRuby returns nil backtrace for living newborn threads, whereas MRI returns []
- #4889 - jruby 9.1.15 fails with NameError: cannot load Java class jline.console.ConsoleReader
- #4887 - ThreadedNexter shutdown can in some situations interrupt a thread executing a different task
- #4886 - Improvements to subclass management and method cache invalidation
- #4885 - powerpc64le-linux "Syslog not supported on this platform"
- #4879 - Performance issue with ruby meta programming
- #4818 - Raise Errno::EISDIR when opening a directory for reading on Windows
- #4795 - [#4710] nanosecond precision in utime using libc futimens
- #4721 - NPE while dup-ing guava's ImmutableList
- #4710 - utime behaviour different from MRI
- #4568 - Support grapheme detection via \X
- #4060 - Wrong line numbers inside set_trace_func for end events
JRuby 9.1.15.0 Released
Thursday, December 07 2017
The JRuby community is pleased to announce the release of JRuby 9.1.15.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.1.x is our current major version of JRuby. It is expected to be compatible with Ruby 2.3.x and stay in sync with C Ruby. JRuby 9.1.15.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.
Highlights:
- Rubygems updated to version 2.6.14
- \K suported in regexps
- Socket close_on_exec support
- 30 issues fixed for 9.1.15.0
Github Issues resolved for 9.1.15.0
- #4882 - Ripper doesn't handle private def with nested block
- #4881 - Don't unconditionally emit debug level info from RACC
- #4880 - Dead Exception in RealClassGenerator
- #4874 - Update rake's url
- #4871 - A regexp with \K doesn't work in JRuby
- #4869 - UDPSocket.new(Socket::AF_INET6) throws exception (JRuby 9.1.14.0)
- #4866 - Rails parsing time ends with usec 1 instead of 0
- #4865 - OOM due to unbounded rescuePCs growth
- #4862 - Mutex sleeps indefinitely with timeout <= 0.0001 seconds
- #4861 - cannot link Java class com.util (java.lang.NoClassDefFoundError: com/util (wrong name: com/Util))
- #4860 - Fix issues discovered using Error Prone
- #4858 - undefined "close_on_exec=" for TCPSocket
- #4857 - OpenSSL::Cipher#random_iv Regression in 9.1.14.0
- #4854 - Simultaneous client reads / writes to the same socket from different threads can deadlock
- #4852 - [#3953] Use java.nio for FileTest#symlink?
- #4849 - Gem::LoadError: You have already activated rack-cors 1.0.1, but your Gemfile requires rack-cors 1.0.2
- #4844 - Potential bug in internal/runtime/ThreadService?
- #4843 - popen doesn't work on Windows
- #4842 - copy_stream to SSL seems to read the file into memory
- #4838 - Fiber#alive? returns true even when already finished
- #4837 - String#concat(java.lang.String) does not work
- #4740 - activation of jar-dependencies in bundler clashes with shipped gem
- #4701 - IO.copy_stream doesn't seem to limit the chunk size
- #4696 - OpenSSL::Random.random_bytes specs seem to get stuck on Travis
- #4685 - Rails csfr_meta_tag requires minutes to render due to jruby use of /dev/random on a virtual machine
- #4677 - __FILE__ is not available in BEGIN section
- #4460 - RangeError: bignum too big to convert into `long'
- #4384 - JRuby counterpart for RubyVM.stat
- #3953 - File.symlink? fails on Windows, in 9.1.2.0
- #3903 - defined? with a colon2 fully resolves the left constant
JRuby 9.1.14.0 Released
Wednesday, November 08 2017
The JRuby community is pleased to announce the release of JRuby 9.1.14.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.1.x is our current major version of JRuby. It is expected to be compatible with Ruby 2.3.x and stay in sync with C Ruby. JRuby 9.1.14.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.
Highlights:
- Java 9 support
- 23 issues fixed for 9.1.14.0
Github Issues resolved for 9.1.14.0
- #4841 - do/end and break precedence issue with omitted parens
- #4831 - jitescript jar clashes with bundled jitescript classes in jruby-complete jar
- #4830 - Make BigDecimal::limit work for subtraction and division. Fix issue #1615
- #4827 - IO#read_nonblock throwing EOFError with "exception: false"
- #4824 - FFI not working on Java 9 MacOS
- #4822 - Time#to_datetime incorrect for times before the date of calendar reform
- #4821 - switch ShellLauncher to use getAbsolutePath
- #4819 - Coverage levels discrepancies between JRuby 1.7.x and JRuby 9.1.x
- #4817 - Fix an infinite loop when attempting to read from a directory
- #4816 - Raise Errno::ENOTDIR if the parent of an opened file is not a directory
- #4812 - Backport LocalJumpError and EQQ fixes from 9.2
- #4810 - Time/Datetime conversion inconsistency with MRI
- #4807 - Wrong control flow order with Constant ||=
- #4805 - can not require openssl with JDK9
- #4804 - Case with complex when uses == instead of ===
- #4797 - Global variables read stale values
- #4792 - Unhandled Java exception in Ripper on inline comments
- #4787 - Ripper fails to lexical analyse around escaped newline on JRuby
- #4747 - Fix memory/disk usage leak when creating many ScriptingContaiers
- #4705 - Thread.current.status is wrong for killed thread
- #4111 - Java 9 support
- #3928 - File descriptors from stdlib jars are leaked when ScriptingContainers are terminated
- #1615 - BigDecimal::limit has not effect
JRuby 9.1.13.0 Released
Wednesday, September 06 2017
The JRuby community is pleased to announce the release of JRuby 9.1.13.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.1.x is our current major version of JRuby. It is expected to be compatible with Ruby 2.3.x and stay in sync with C Ruby. JRuby 9.1.13.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.
Highlights:
- 24 issues fixed for 9.1.13.0
Github Issues resolved for 9.1.13.0
- #4772 - File.symlink? fix typo
- #4770 - YAML::Store does not retrieve UTF8 values correctly in read-only mode
- #4765 - When creating a symbolic link JRuby give bad error message when not an admin on windows
- #4764 - Update to latest rubygems
- #4745 - (SystemCallError) Unknown error 123 - FindFirstFile with AsciidoctorJ-PDF on Win10
- #4741 - core_ext/class.rb:subclasses conflicts with ActiveRecord
- #4739 - "org.jruby.runtime.scopes.DynamicScope1 only supports scopes with 1 variables" with Deeply Nested Blocks
- #4737 - Line numbers in backtrace with multiline method invocation are sometimes different from CRuby (again)
- #4734 - haml-lint hangs with JRuby 9.1.12.0
- #4733 - Array.instance_methods different for jRuby inside Rails
- #4732 - Error executing `elm-install` from `elm_install` gem
- #4728 - Parser does not seem to terminate when parsing this string
- #4726 - upgrade jruby-openssl to 0.9.21
- #4725 - JRuby wrongly mutates hash passed in as keyword arg with indy enabled
- #4724 - Enumerable#each_with_index is broken again
- #4723 - Problem with Class.instance_methods after Module.prepend
- #4717 - NPE in windows parsing command line string -e ...
- #4716 - Rails no longer runs on Tomcat
- #4706 - TypeError: debugging with --debug
- #4699 - Re-raising the cause of a Java exception can result in leaked memory and IllegalStateExceptions
- #4692 - File path canonicalization still broken inside jars on Windows
- #4691 - `syslog/logger` from the Ruby standard library is missing in JRuby 9
- #4629 - Possible incompatibility with Sorcerer in 9.1.9.0 + 9.1.10.0
- #4621 - jrubyc compiled representation breaks but source rb works fine
JRuby 9.1.12.0 Released
Thursday, June 15 2017
The JRuby community is pleased to announce the release of JRuby 9.1.12.0
- Homepage: https://www.jruby.org/
- Download: https://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.12.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.
Highlights:
- Regression where in uncommon cases zlib would fail when trying to detect end-of-stream. This would make some gems fail to install.
Github Issues resolved for 9.1.12.0
- #4671 - Error installing rubygems-bundler in 9.1.11.0
JRuby 9.1.11.0 Released
Wednesday, June 14 2017
The JRuby community is pleased to announce the release of JRuby 9.1.11.0
- Homepage: https://www.jruby.org/
- Download: https://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.11.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.
Highlights:
- FFI memory leak regression fixed
- File.symlink regression on windows fixed
- 27 issues fixed for 9.1.11.0
Github Issues resolved for 9.1.11.0
- #4669 - File.symlink broken on windows
- #4664 - Line numbers in backtrace with multiline method invocation are sometimes different from CRuby
- #4663 - JRuby raises 'syntax error, unexpected kDO_BLOCK' where MRI does not
- #4662 - LoadError with compiled multi-byte constant
- #4661 - missing throw statements on ffi callback
- #4658 - __dir__ won't work with embed paths such as uri:classloader: (#4611)
- #4657 - Make Time#utc and #localtime raise RuntimeError when the object is frozen
- #4656 - SecureRandom update to match Ruby 2.3
- #4655 - Time#utc and #localtime can mutate a frozen object
- #4647 - help classpath: canonicalization on Windows to fully resolve #4145
- #4646 - try harder to avoid long overflow in Time#+ (fixes #1779)
- #4642 - Fix missing callMethod override
- #4641 - NPE when printing a variable in a view
- #4639 - Fix Module inclusion order
- #4638 - Also fix EMSGSIZE on Alpine Linux. Relates to #4606
- #4636 - Implement Zlib::GzipReader #ungetbyte and #ungetc
- #4631 - Zlib::GzipReader does not support #ungetc or #ungetbyte
- #4630 - Jarified app breaks with `uri:classloader:BY\` on Windows with 9.1.10.0
- #4625 - FFI memory leak regression
- #4618 - Fix Float::INFINITY BigDecimal comparison
- #4612 - REGRESSION - File.realpath fails on classpath paths
- #4611 - [Q] __dir__ variable in jar file.
- #4608 - Fix UDPSocket#(send|write) to raise EMSGSIZE
- #4607 - SecureRandom.random_number doesn't accept a range
- #4572 - Can't compare BigDecimal with Float::INFINITY got FloatDomainError: NaN
- #1938 - Reincluded modules do not splice changes into hierarchy in the correct order
- #1779 - Time.now + bignum incorrect
JRuby 9.1.10.0 Released
Thursday, May 25 2017
The JRuby community is pleased to announce the release of JRuby 9.1.10.0
- Homepage: https://www.jruby.org/
- Download: https://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.10.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.
This release just fixes two regressions:
arr.with_index {|v| }
was passing[element, index]
to v instead of justelement
.type.become_java!
was raising when it could not become a java reified type but JRubyFX depends on this completing without error.
JRuby 9.1.9.0 Released
Tuesday, May 16 2017
The JRuby community is pleased to announce the release of JRuby 9.1.9.0
- Homepage: https://www.jruby.org/
- Download: https://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.9.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.
- Heuristic to rebind less in invokedynamic when it callsite changes too much
- Some improvements in having proper symbol encoding
- Improved source line reporting on errors
- 51 issues fixed for 9.1.9.0
Github Issues resolved for 9.1.9.0
- #4605 - CGI.unescapeHTML => Java::JavaLang::ArrayIndexOutOfBoundsException
- #4604 - Include Ruby Licensed json libs in COPYING #4587
- #4603 - ASF projects can't bundle and ship jruby9k
- #4602 - Also increment thresholds in indy sites for method_missing.
- #4601 - Bump jnr-posix. Fixes #4600
- #4600 - Dir.tmpdir fails with error on AARCH64
- #4597 - Update COPYING for bundled java licenses #4587
- #4596 - Oat gem slower at steady-state with invokedynamic than without it
- #4592 - Clean up structure of io/console and avoid stty on Windows.
- #4587 - COPYING is missing Java libraries
- #4586 - Jruby profiler raises exception when using the holidays gem
- #4581 - Fix wrong method lookup cache used when class is prepended
- #4567 - Add native console support on AARCH64
- #4566 - Return Process::Waiter with pid in Process.detach
- #4565 - Time.now sometimes attempts to call libc gettimeofday on Windows
- #4564 - String encoding differs between MRI and JRuby
- #4562 - Ripper.sexp unexpectedly returns nil when given source includes keyword-ish symbol
- #4561 - Fix Method#parameters for a method generated by respond_to_missing?
- #4559 - Copy-editing: misspellings
- #4556 - Java::JavaLang::ArrayIndexOutOfBoundsException in CGI.unescapeHTML
- #4555 - ArgumentError message differs on multiple unknown keywords args
- #4554 - Kullmann: Fix TracePoint nil event. Add test
- #4553 - support new JDK version string scheme
- #4548 - Add AARCH64 support in FFI
- #4547 - Symbol encoding changes after defining a method with same name
- #4544 - Use jnr-constants 0.9.9-SNAPSHOT to fix #4006.
- #4543 - When canonicalizing classpath URIs, use a bogus root path.
- #4542 - Regression(?) in String#% from 9.1.7.0 to 9.1.8.0
- #4537 - Update to Rubygems 2.6.11
- #4534 - Don't yieldSpecific to allow arrays through normal block params.
- #4532 - Enumerable#each_entry behaves differently from MRI
- #4530 - do not set eval-type NONE value in a thread-local
- #4529 - plenty of [org.jruby.EvalType] (value [NONE]) in thread-locals
- #4527 - Guard gem does not work on JRuby 9.1.8.0
- #4526 - Marshal.load fails with an explicit nil proc
- #4523 - String#% fails with Hash parameter
- #4522 - cleanup and improve Time's nsec rounding
- #4520 - File.mtime doesn't return milliseconds
- #4487 - Travis-ci: Error parsing Gemfile on current jruby-head
- #4430 - JIT fixnum cases (with a value span <= 32) as a tableswitch
- #4328 - Literal rational syntax does not support Bignum
- #4211 - Wrong line number reported in backtrace of syntax error caused by '*/'
- #4154 - Wrong line number reported in backtrace in hash creation
- #4145 - Can't use `require_relative` with a path beginning with `lib` in a jar...on Linux
- #4070 - Non-ASCII Symbol gives ArgumentError when calling inspect on the symbol
- #3897 - jRuby 9050 and 9100 behave differently for case / when with Array from MRI
- #3625 - remote execution
- #3347 - GBK Symbol Error (jruby 9.0.1.0)
- #2798 - Dynamic "once" regexps are not as atomic as in MRI
- #2126 - Failure to reject invalid float forms with proper message
- #843 - Time#nsec rounding is happening at a place we don't want.
JRuby 1.7.27 Released
Thursday, May 11 2017
The JRuby community is pleased to announce the release of JRuby 1.7.27
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.27 is our latest update release of JRuby 1.7.x. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. This is very likely our last 1.7.x release barring any release mistake or strong pushback. We are hoping all JRuby users can migrate to JRuby 9k and get on the Ruby 2.x train…
Highlights:
- 20 issues fixed for 1.7.27
Github Issues resolved for 1.7.27
- #4590 - Clean up structure of io/console and avoid stty on Windows.
- #4588 - Backport 4389
- #4563 - (peazy) enumerator backports for 1.7
- #4545 - Update jnr-constants to 0.9.9 for 1.7.
- #4519 - 64-bit immediate return to prompt on console interrupt before termination
- #4491 - Immediately unregister out and err for JSR223 evals. Fixes #4446.
- #4446 - ChannelDescriptor is not removed from the map after ScriptContainer is terminated
- #4306 - JRuby 1.7: update to latest jruby-openssl version
- #4226 - Don't dup every element in Enumerator#drop (1.7)
- #4155 - 1.7.26 regression: NoMethodError: private method `require' called for Kernel:Module in Sequel
- #4149 - Backport securerandom
- #4116 - File.dirname interprets backslashes as path separators on Mac OS X
- #4057 - The JVM SIGSEGVs when using RubyEtc.getgrgid
- #4006 - JRuby 1.7 branch uses java.lang.management.ManagementFactory
- #3989 - JRuby + Cygwin + Jenkins causes message related to stty
- #3781 - JRuby throws java.lang.ArrayIndexOutOfBoundsException
- #3383 - public org.jruby.Runtime.Profile.Builtin::MethodData
- #1571 - Enumerator#feed
- #1398 - Private method error changes when `method_missing` is defined but should not
- #1260 - alias_method intermittent issue in 1.7.6 & 1.7.8 (example to recreate included)
JRuby 9.1.8.0 Released
Monday, March 06 2017
The JRuby community is pleased to announce the release of JRuby 9.1.8.0
- Homepage: https://www.jruby.org/
- Download: https://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.8.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 intermittent DynamicScope size errors
- Concurrency fixes to jitting of blocks (mostly seen as previous bullet).
- Several issues fixed when running with -Xcompile.invokedynamic
- 81 issues fixed for 9.1.8.0
Github Issues resolved for 9.1.8.0
- #4521 - Use actual impl module to test bindability. Fixes #4477.
- #4516 - DynamicScope sizeError
- #4513 - cgi/escape does not define CGI.escapeHTML and other methods
- #4512 - release and upgrade BC (jruby-openssl)
- #4511 - Fix some issues with Fiddle
- #4509 - Fix #4463 Marshal load bigdecimal NaN fails
- #4508 - $. never seems to change once JIT'd
- #4507 - Actually cache the idTest on the module.
- #4504 - Improve some of the debug logging in ConstantLookupSite.
- #4503 - Allow reads after calling BasicSocket#close_write.
- #4501 - JRuby native no longer loads on windows
- #4500 - IO#close_write seems to close the read side too for unix sockets
- #4499 - Make failed indy call sites still use specific-arity dispatch
- #4498 - Separate varargs and specific-arity names in JIT. Fixes #4482
- #4497 - The return value of `ARGF.file#lineno` differs from that of MRI
- #4496 - Use ipaddr to compare the sender's address
- #4494 - Use arity hashCode instead of proc#hash in CallableSelector
- #4492 - YAML: Can't load files with characters in the supplementary plane
- #4486 - Set up EWOULDBLOCKWaitReadable/Writable if not present. Fix #4473
- #4485 - Allow refinements in one eval to be seen in the next.
- #4484 - Rational() and IO.try_convert do not work for BasicObjects
- #4483 - Complex() Kernel method does not consult an object's to_c method
- #4482 - Doing require_relative too often leads to TypeError
- #4481 - String#unpack: Unpacked string should not have an encoding
- #4478 - Block doesn't retain it's binding through instance_eval
- #4477 - prepending to the singleton class of a module breaks instance_method
- #4475 - Activating refinements in binding.eval doesn't stick outside of the evaluated string.
- #4473 - IO::EWOULDBLOCKWaitReadable Exception class not defined
- #4472 - jrubyc broken for simple (self-executing) scripts in 9.1.7.0
- #4471 - Make sure to iterate over all keys when cancelling keys in a SelectorPool
- #4467 - Exception backtrace is nil when it should be present
- #4466 - Fix #3799 again.
- #4465 - Java Null Pointer exception while bundling
- #4463 - Marshal load bigdecimal NaN fails.
- #4461 - `ObjectSpace.each_object.to_a` raises `ArrayIndexOutOfBoundsException`
- #4457 - system and spawn raise 'wrong exec redirect action' when redirecting given `out: tempfile` or `err: tempfile`
- #4455 - Sequel fails with -Xcompile.invokedynamic=true
- #4454 - Licensing is confusing
- #4448 - [ji] support 'native' method arguments (e.g. org.jruby.RubyObject)
- #4447 - Fix GzipReader "position" update for #each and #each_line.
- #4445 - string encoding is incorrect when compiling to .class files via jrubyc
- #4443 - LocalJumpError when creating enumerator inside GzipReader.open block
- #4442 - Unable to re-deploy rails app (java.lang.RuntimeException: BUG: could not initialize constructor handle)
- #4439 - Memory leaks due to overwritten local variables being wrongly kept alive on the stack
- #4438 - fix Base64#decode64 behavior
- #4437 - String#scrub ignores the block if the string encoding is not ASCII-compatible
- #4435 - [ji] deterministic Java bean-style method aliases
- #4428 - [#4353] Ignore consecutive DOUBLE_STAR in glob_helper.
- #4423 - Kill the LocalJumpError logic for break in lambda. Fixes #4369.
- #4413 - JRuby's impl of FFI differs in behavior from MRI; segfaults/crashes
- #4399 - RubyHash's compare_by_identify Java method naming is confusing
- #4393 - microsecond accuracy is not supported in class Time
- #4392 - compile back to hard scope when closure compile/build requested
- #4391 - Metaspace fills with java.lang.invoke.LambdaForms$ over time
- #4353 - Dir.glob returns doubles, if used with recursive directory matchers "**"
- #4312 - Fix JRuby embed crash after application reloading
- #4304 - Singleton on non-persistent Java type Java::JavaLang::NullPointerException
- #4219 - Calling super with two "_" params ignores the value of the second
- #4028 - Base64.decode64 incorrect result when missing paddings
- #3663 - Never-ending getaddress() call when using compressed IPv6 nameservers in /etc/resolv.conf
- #3545 - java.lang.NullPointerException when using for loops
- #3528 - ActiveRecord::StatementInvalid: ArgumentError: wrong number of arguments (1 for 2) for invokedynamic
- #3350 - JRuby 9.0.1.0 has slower $global_var usage
- #3185 - PTY.spawn doesn't pass arguments
- #3020 - Attempt to get output from PTY.spawn periodically hangs
- #2355 - State file use in UUID gem causes severe performance degradation
- #2161 - Hash inspection not working as in MRI for sprintf %p
- #1842 - Dir#glob and escaped commas
- #1784 - OpenSSL::PKey.read throws a null pointer exception
- #1653 - '/' works as a valid path but children don't (under windows)
- #1643 - Cannot call a Java method whose parameter is RubyArray when it is overloaded
- #1437 - test/mri/ruby/test_regexp.rb has regexp that fail to parse
- #1381 - io/console and/or FFI do not load right with alternative -0 separator
- #1368 - Need to error for unsupported keywords
- #1321 - TracePoint thread_begin and thread_end events are broken
- #1269 - RegexpError with look-behind
- #1258 - Improve Bignum string parsing
- #1149 - chmod inside of File block fails to create file
- #1067 - [2.1] StringScanner named captures
- #1037 - TypeError raised when trying to propagate java Throwables using Thread.raise
- #413 - $LOADED_FEATURES.clear does not appear to clear internal set
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
- Homepage: https://www.jruby.org/
- Download: https://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.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
JRuby 9.1.6.0 Released
Wednesday, November 09 2016
The JRuby community is pleased to announce the release of JRuby 9.1.6.0
- Homepage: https://www.jruby.org/
- Download: https://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 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.
- 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
JRuby 9.1.5.0 Released
Tuesday, September 06 2016
The JRuby community is pleased to announce the release of JRuby 9.1.5.0
- Homepage: https://www.jruby.org/
- Download: https://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.5.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.
This release addresses a few more regressions. All users are recommended to upgrade.
- 7 issues fixed for 9.1.5.0
Github Issues resolved for 9.1.5.0
- #4139 - Deprecate framed invoke
- #4138 - Use a CallSite for invocation of attr writers. Fixes #4134.
- #4137 - Unconditionally enable maven enforcer in release profile.
- #4136 - avoid JCE CNFE warning on non Oracle/OpenJDK
- #4135 - 9.1.3.0 and 9.1.4.0 have a -SNAPSHOT dependency
- #4134 - Rails new fails with 9.1.3.0 and "--dev" option
- #4132 - java.lang.NullPointerException: unwrapJavaObject at org/jruby/javasupport/JavaUtil.java:287
JRuby 9.1.4.0 Released
Thursday, September 01 2016
The JRuby community is pleased to announce the release of JRuby 9.1.4.0
- Homepage: https://www.jruby.org/
- Download: https://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.4.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.
This release addresses a serious regression in 9.1.3.0 where some 2-element arrays would return the wrong value. All users are strongly recommended to upgrade to 9.1.4.0.
- 2 issues fixed for 9.1.4.0
Github Issues resolved for 9.1.4.0
JRuby 9.1.3.0 Released
Tuesday, August 30 2016
The JRuby community is pleased to announce the release of JRuby 9.1.3.0
- Homepage: https://www.jruby.org/
- Download: https://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.3.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.
Notable updates since 9.1.2.0
- Stdlib updated to 2.3.1; RubyGems updated to 2.6.6
- Improved type coercion performance (to_s, …)
- Optimized all-Fixnum case/when
- Initial support for Java 9
- Better keyword argument support
- Tweaks to SecureRandom to reduce entropy starvation
- Repaired thread-safety regressions in autoload and require
- 105 issues fixed for 9.1.3.0
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal JIT compiler from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, and does not work on Windows. However we are now interested in people submitting issues for small gems with minimal dependencies who see issues running on JRuby+Truffle
Graal has been integrated into Java 9 early access builds, and can be used today as part of the GraalVM, which is currently the recommended way to run JRuby+Truffle.
More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.1.3.0
- #4114 - jruby-gradle plugin fails with a 9.1.3.0-SNAPSHOT
- #4107 - workaround compilation problems with unsafe-mock.jar
- #4105 - File.size? should work on uri:classloader: resources
- #4103 - JRuby fails in building from source when using openjdk-7-jdk trusty package
- #4102 - No more wrapper
- #4101 - JDK 8u102 changed JceSecurity#isRestricted to final
- #4100 - Change script file restriction
- #4091 - concurrent loading does not resolve loaded constant
- #4089 - Math.log10 should use Java's log10 method
- #4087 - stdlib update for 9.1 (from Ruby 2.3.1)
- #4078 - Bump racc. Fixes #4071
- #4077 - Recursive regex compile fails: (RegexpError) invalid group name <0>
- #4073 - IO#fsync doesn't trigger an fsync(2) syscall?
- #4071 - racc needs upgrade
- #4069 - Unusual regression in Range#to_a
- #4065 - Update platform config files from FFI gem. See jruby/jruby#3981
- #4061 - Fix Socket.tcp connect_timeout option
- #4059 - Remove dead rake tasks
- #4057 - The JVM SIGSEGVs when using RubyEtc.getgrgid
- #4056 - Return line no in SyntaxError when parsing Regexp
- #4055 - Double-splat should not work with non-symbol keys
- #4054 - RubyEnumerator implements java.util.Iterator
- #4053 - require_realative calls self.require instead of Kernel.require
- #4052 - Partially fix set_trace_func line numbers
- #4051 - Wrong line numbers in Kernel#caller inside set_trace_func (with code to reproduce)
- #4049 - net/http lib throws java.nio.channels.NotYetConnectedException
- #4046 - inconsistent each and each_with_index return
- #4045 - Java array #each does not handle block-less case
- #4039 - Java array (Enumerable) does not handle last()
- #4038 - Fix some parts of Socket::Option
- #4037 - NullPointerExeption in org.jruby.RubyBasicObject.yieldUnder
- #4034 - incorrect Java::void type
- #4032 - Incorrect error class is rescued when the super class is Java::JavaLang::RuntimeException
- #4031 - Make JRuby compatible with capybara-webkit (and possibly other gems)
- #4029 - UnsupportedOperationException: BUG: invoking UndefinedMethod.call; (doing warble)
- #4020 - Rails app on 9.1.2.0 raises stackoverflow exceptions after 6-8 hours of activity following an upgrade from 1.7.
- #4014 - ClassCastException thrown when a method is defined inside a test
- #4013 - Passing a default parameter to a block causes an exception.
- #4010 - Reopen stdio streams when run from Drip, to pick up its FIFOs.
- #4008 - Unmarshaling regexp loses UTF-8 encoding
- #4003 - singleton method handle stack overflow
- #4001 - Java::JavaLang::StackOverflowError with gsub(RegExp, Hash)
- #4000 - JRubyFX application not working when running from jar (works in 1.7, doesn't work in 9k)
- #3999 - Intermittent NullPointerException under 9.1.1.0/9.1.2.0
- #3998 - JRuby 9.1.2.0 not working on windows server 2003/2003 R2
- #3993 - Performance issue when extending objects with a module including constants
- #3988 - Packed arrays
- #3983 - Kernel#system fails to execute if SecurityManager denies access to a $PATH entry even if it permits a later one
- #3981 - Unable to resolve type uint32_t with FFI
- #3976 - Superclass mixin implementation called instead of subclass implementation
- #3975 - Running with flag --enable-frozen-string-literal crashes stdlib/jar_dependencies.rb
- #3972 - Use platform defaults from defaults file rather than eager load.
- #3970 - recv_nonblock returns :wait_readable instead of raising
- #3969 - Call plus ensure does not properly initialize all temps
- #3966 - Incorrect case evaluation when evaluating variable with value of []
- #3963 - SelectorPool returns Selectors with old keys in them
- #3961 - Use Java's Arrays.sort
- #3960 - Fix Range#eql? checks that start and end of range are same using MethodNames.EQL
- #3957 - (SystemCallError) Unknown error 123 - FindFirstFile with AsciidoctorJ on Win10
- #3956 - Range#eql? returns incorrect result for float vs int
- #3952 - Ensure that Selectors from SelectorPool don't have old keys in them
- #3950 - Bundler fails under +indy (claims gems listed more than once)
- #3948 - Open3.popen3 with block fails on Windows
- #3946 - warning: Ambiguous first argument
- #3945 - Sequel + Celluloid + jtds error in 9.1.x
- #3944 - Array#min doesn't respect monkey patching
- #3943 - no such file to load -- ffi in 9.1.2.0 jruby.jar
- #3938 - Flag registry
- #3935 - Fixed shift with negative distance on Bignum
- #3934 - Apparent regression with NameError in 9.1.0.0
- #3930 - Misc optz
- #3929 - waitReadable should block
- #3919 - Arrays.sort
- #3912 - fix four additional MRI string tests
- #3911 - Unify super and call splatting logic in interpreter and JIT.
- #3909 - ZSuper does not require caller's binding/scope.
- #3906 - Kwargs should not need dynamic scope, since we have static handy.
- #3902 - Soften this restriction to just readable resources.
- #3898 - Disable the AddLocalVarLoadStore pass to fix #3891.
- #3896 - Test new recursion
- #3892 - Enabled did_you_mean, install during build, and clear gem paths
- #3891 - Changes to local variables not visible to other threads even when protected by a lock
- #3887 - Recursion detection should use identity map, but it blows up
- #3869 - Unable to use UnboundMethod referencing super with define_singleton_method
- #3868 - 9.1.0.0 hangs on syswrite
- #3861 - Double packaging of `org/joda/time/format/messages.properties` in jruby-jars
- #3835 - Thread-level events explode due to empty stack
- #3828 - jruby-rack adjust_gem_path has no effect
- #3823 - Rails 5 dependencies fail to load 'listen' lib for evented file checking
- #3814 - Expose two Enumerator-related bugs
- #3808 - defined? poor performance
- #3778 - Unicode chars in method names aren't accepted
- #3760 - TypeError raised by JRuby during keyword argument checking while the call is perfectly legit
- #3713 - IRReturnJump unhandled
- #3708 - Unresolved super with module_function
- #3680 - JRuby and devise Null pointer exception
- #3625 - remote execution
- #3480 - Bundle did_you_mean gem
- #3138 - Mixing Hash and keyword arguments raises an error
- #2997 - Error while using socket class
- #2690 - no STDOUT with drip on jruby-9.0.0.0.pre1
- #2340 - curried proc with varargs doesn't call properly
- #1405 - SecureRandom performance could be better
- #1376 - Kernel#caller from arglist is missing a stack frame
- #1279 - Lazy load Digest::SHA256 is not thread safe
JRuby 1.7.26 Released
Monday, August 29 2016
The JRuby community is pleased to announce the release of JRuby 1.7.26
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.26 is our thirtieth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
PSA: Over the years we have had Windows CI support and then lost Windows CI supprt. We would still irregularly run tests on windows, but this is never as good as getting more immediate feedback. Via the ability to use an awesome service like ci.appveyor.com, we are again regularly running against a Windows CI. If you peruse the list of resolved issues you will see how important it is to be regularly running CI on all the OSes you support.
Highlights:
- 8 issues fixed for 1.7.26
Github Issues resolved for 1.7.26
- #4115 - Backport "Change script file restriction" from 9000
- #4064 - CompoundJarURLStreamHandler leaves many URL stream handles open before GC
- #4063 - Explicitly close input stream in CompoundJarURLStreamHandler
- #4062 - Write a log message when findClass IOException is caught
- #4021 - String range object incorrectly tries to convert to int
- #3980 - rbThrowInternal throws error if IRubyObject ID is greater than Integer.MAX_VALUE
- #3927 - backport BigDecimal .to_r for #3728
- #3825 - Fix Net::HTTP nil body bug
JRuby 9.1.2.0 Released
Friday, May 27 2016
The JRuby community is pleased to announce the release of JRuby 9.1.2.0
- Homepage: https://www.jruby.org/
- Download: https://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.2.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.
Notable updates since 9.1.1.0
- 5 issues fixed for 9.1.2.0
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal JIT compiler from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, and does not work on Windows. However we are now interested in people submitting issues for small gems with minimal dependencies who see issues running on JRuby+Truffle
Graal has been integrated into Java 9 early access builds, and can be used today as part of the GraalVM, which is currently the recommended way to run JRuby+Truffle.
More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.1.2.0
JRuby 9.1.1.0 Released
Thursday, May 19 2016
The JRuby community is pleased to announce the release of JRuby 9.1.1.0
- Homepage: https://www.jruby.org/
- Download: https://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.1.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.
Notable updates since 9.1.0.0
- 18 issues fixed for 9.1.1.0
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal JIT compiler from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, and does not work on Windows. However we are now interested in people submitting issues for small gems with minimal dependencies who see issues running on JRuby+Truffle
Graal has been integrated into Java 9 early access builds, and can be used today as part of the GraalVM, which is currently the recommended way to run JRuby+Truffle.
More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.1.1.0
- #3884 - Invalid hash value for nested arrays
- #3882 - Refactor transcodeLoop into ruby and non-ruby parts.
- #3879 - fix quoted paths
- #3878 - Can't run rails if jruby's path contains whitespaces
- #3877 - File.basename should support windows1250
- #3874 - Ensure native methods called by indy get frame if requested.
- #3873 - Test define method visibility
- #3872 - Limit padding width for strftime.
- #3871 - Encoding.find("filesystem") on windows
- #3866 - expand_path should use the original encoding
- #3865 - Several named capture warnings in date/format
- #3863 - net-ldap#bind fails in jruby-9.1.0.0 (but works in jruby-9.0.5.0)
- #3858 - [Truffle] remove_const doesn't completely clear a module's name
- #3856 - [jRuby 9.1.0.0] Strange behavior with Enumerable::max method
- #3855 - JRuby 9.1.0.0 on Windows causes frozen string errors when using rake and minitest
- #3854 - JRuby 9.1.0.0 define_method creates private methods in some cases where it should create public methods
- #3849 - File.expand_path doesn't respect args encoding
- #3842 - Indy call sites are not setting up frame for core methods
JRuby 9.1.0.0 Released
Tuesday, May 03 2016
The JRuby community is pleased to announce the release of JRuby 9.1.0.0
- Homepage: https://www.jruby.org/
- Download: https://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.0.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.
Notable updates since 9.0.5.0
- Ruby 2.3 Compatible (language and standard library) (i)
- Fixed performance and behavior regressions from 9.0.5.0
- Added several JIT optimizations missed in initial 9k release
- Fixed most of the outstanding parser bugs
- RubyGems updated to 2.6.4
- Many improvements to our Java Integration
- 114 issues fixed for 9.1.0.0
(i) We have a large majority of Ruby 2.3 features but we are not completely done. You can follow our remaining work by tracking this issue.
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal JIT compiler from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, and does not work on Windows. However we are now interested in people submitting issues for small gems with minimal dependencies who see issues running on JRuby+Truffle
Graal has been integrated into Java 9 early access builds, and can be used today as part of the GraalVM, which is currently the recommended way to run JRuby+Truffle.
More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.1.0.0
- #3838 - Compilation fails with openjdk8 u92
- #3833 - Fixnum#bit_length - uses bit inversion when the value is negative
- #3832 - Fix a bug where NameError#receiver raises an ArgumentError after #to_s is called
- #3831 - Fixes Fixnum#bitLength when the value is negative.
- #3830 - Adds method #bitLength to Bignum
- #3829 - Fixnum#bit_length always returns 64 for negative number
- #3827 - Bignum#bit_length is missing
- #3820 - Error when rspec loads files using Refinements
- #3818 - `n ** m` is slow
- #3811 - Time.parse should coerce argument into a String
- #3809 - bind (abstract) methods when implementing interface
- #3802 - moving Ruby Java extensions into native
- #3796 - Refinements causes "ArgumentError: tried to create Proc object without a block"
- #3791 - Add option to enable ir writing on-the-fly
- #3790 - [ji] java.util.Collection should not be to_ary convertible
- #3789 - [ji] java.lang.Throwable should not provide to_str
- #3787 - Recent CI snapshots give warning on load of openssl
- #3779 - improved method arities on become_java!
- #3777 - trycatch blocks are being defined inefficiently in the JIT
- #3773 - cleanup NativeException
- #3763 - Syntax error with &.< in combination with other operators
- #3762 - File.open ignores :universal_newline options on Windows
- #3758 - Fix strftime %Z to act like CRuby
- #3757 - Some cases of assignment in conditional do not warn as in MRI
- #3754 - [ji] package (internal) refactoring
- #3752 - Removing 'new' class method from interfaces #3275
- #3750 - load path from the command line -I should use the same splitting as for GEM_PATH
- #3744 - Performance issue when connected to network
- #3741 - Consider dropping -Xss from launcher
- #3734 - compiled .rb does not handle rest kwargs right
- #3733 - ActiveSupport EventedFileUpdateChecker wrong number of arguments in JRuby
- #3723 - lazy secure random
- #3722 - thread-context refactor backtrace retrieval
- #3718 - RubyGems after 2.4.8 is broken on JRuby
- #3711 - Passing in command line arguments containing "%20n" causes jruby to abort with error "%n in writable segment detected"
- #3703 - JRuby 9.0.5.0: uninitialized variables assigned to self as default method argument cause org.jruby.ir.operands.UndefinedValue
- #3699 - Improving error message when flock is not available
- #3686 - Regression in overcommit's tests in JRuby 9000
- #3682 - set ClassloaderDelegate(false) as default for OSGiIsolatedScriptingContainer + IsolatedScriptingContainer
- #3679 - Parser seems to choke on Japanese-encoded text
- #3676 - can not install ruby-maven on jruby from jruby-dist archives
- #3669 - Autoload of module broken for Ruby subclass of Java class
- #3668 - Object#try(:squeeze!) raises an array index out of bounds exception
- #3666 - NKF still uses Charset transcoding rather than jcodings
- #3664 - File#pos fails for files greater than java.lang.Integer::MAX_VALUE on 64-bit systems
- #3659 - Resolv fails under load with SocketError: bind: name or service not known
- #3658 - Implement Process::setproctitle
- #3654 - `Exception#cause` is difference behavior with CRuby 2.3.0
- #3653 - `system` method is different behavior from JRuby 1.7.x and CRuby 2.3.x
- #3652 - Lock is not released at Kernel.require when Gem.try_activate throws RuntimeException
- #3651 - Compile of method call with block return results is "is not compiled Ruby; use java_import to load normal classes"
- #3650 - Hash#compare_by_identity does not work correctly when key is destructively changed
- #3649 - prime? very slow
- #3647 - Encoding::ConverterNotFoundError when using Encoding.default_internal
- #3646 - Dir::Tmpname.make_tmpname inconsistent with Ruby 2.2+
- #3645 - AWS SDK Uninitialized Constant Error
- #3643 - Somehow super stopped working in jruby 9.0.5.0
- #3639 - superclass production in parser became less restrictive in 2.3
- #3638 - Class cast in parser
- #3636 - DEAD: marking instr dead!!
- #3633 - Failures in JRuby 9.0.5.0 on Sinatra build
- #3632 - JRuby 1.7.24 - REXML bad encoding issue
- #3631 - Override of Gem.path_separator cause gem update --system to fail
- #3628 - Command line flag '-p' doesn't reflect changes made to $_
- #3627 - Process#spawn error when redirecting error to stdout (jruby 9.0.4.0)
- #3626 - 9.0.5.0 numerical computation regression
- #3620 - JRUBY_OPTS gives misleading warning
- #3618 - blacklist ppc64 Linux from windows installer packaging
- #3616 - Time.at loses precision when using BigDecimal as argument
- #3613 - LoadError with 'compiled' ruby files with JRuby9000 (using rescue)
- #3567 - [2.3] Parser does not recognize lonely operator after do...end
- #3565 - [2.3] Missing <<~ heredoc form
- #3548 - Refinements in method bodies aren't activated
- #3541 - Warning: setEvalType unimplemented in org.jruby.RubySymbol$1
- #3536 - [ruby 2.3 Feature #10718] IO#close should not raise IOError on closed IO objects.
- #3535 - [ruby-2.3 Feature #11785] add `encoding:` optional argument to String.new
- #3533 - [ruby-2.3] Feature #10984 - Hash comparison operators
- #3532 - [ruby-2.3] Feature #10730: Implement Array#bsearch_index
- #3517 - [ruby-2.3 feature #10769] add Enumerable#chunk_while, spec for it
- #3516 - ArrayStoreException using Google's google-api-client and autoparse gems
- #3513 - case/when eqq calls do not cache
- #3510 - [Ruby-2.3] - Pathname#descend and Pathname#ascend supported blockless…
- #3507 - JRuby 2.2 mode inconsistent with MRI 2.1+
- #3498 - [Ruby-2.3] - Implements Enumerable#grep_v
- #3491 - Frozen string optimizations from MRI
- #3490 - remove "initial_state" argument of Enumerable#{slice_before,chunk}
- #3486 - [Ruby-2.3] - Implements Hash#fetch_values
- #3481 - implement Coverage.peek_result
- #3479 - Ruby 2.3 support
- #3475 - proc-to-interface dispatch method collision using Java 8 streams
- #3473 - IO.popen with file mode w does not close stream and hangs on Win7
- #3469 - beyond JRuby's StandardErrorLogger
- #3458 - Ruby 2.3's #dig
- #3454 - Passing a ruby class as a java.lang.Class into Java land
- #3435 - File.seek fails on large file
- #3386 - Ripper on 9.0.x.x reports wrong line number
- #3370 - treat deadlocks as circular require - as MRI does it
- #3341 - autoload & require deadlock
- #3318 - Autoloading appears to lead to race conditions
- #3275 - should not be able to instantiate an interface (using new)
- #3261 - isutf8 exception Jruby 9.0.00
- #3206 - Invocation of become_java! instances fails with "cannot make variable arity"
- #3094 - NoMethodError being reported as "UndefinedValue.java:52:in `undefinedOperation': java.lang.RuntimeException: IR compiler/interpreter bug: org.jruby.ir.operands” in jruby-9.0.0.0.pre2
- #2977 - Weird error when refinement is used in rspec
- #2403 - Unicode characters are lost when embedding JRuby even if the calling code performs no conversion to byte[]
- #2147 - TestParse#test_named_capture_conflict
- #2127 - Method name encoding seems off
- #2124 - Optional args that self-reference must resolve
- #1981 - Wrong number of reported lines in Coverage API
- #1925 - jruby can't use it's own java classes
- #1285 - Broken JRuby and UTF-8 method names
- #1249 - JDK8 provides its own List#sort, Map#replace, and Map#merge
- #1196 - Coverage reports wrong number of lines
- #621 - UDPSocket#send copies data multiple times
JRuby 1.7.25 Released
Thursday, April 14 2016
The JRuby community is pleased to announce the release of JRuby 1.7.25
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.25 is our twenty-ninth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
PSA: Over the years we have had Windows CI support and then lost Windows CI supprt. We would still irregularly run tests on windows, but this is never as good as getting more immediate feedback. Via the ability to use an awesome service like ci.appveyor.com, we are again regularly running against a Windows CI. If you peruse the list of resolved issues you will see how important it is to be regularly running CI on all the OSes you support.
Highlights:
- Appveyor CI runs for windows
- Several windows fixes based on regaining Windows CI support
- concurrent regexp thread crasher regression fixed
- 15 issues fixed for 1.7.25
Github Issues resolved for 1.7.25
- #3786 - File.dirname is munching too much off on an UNC pathname
- #3767 - Workaround for JRuby bug with UTF-8 encoding on non-English Windows
- #3766 - IO.copy_streams are not closing filename argument IO instances.
- #3748 - Wrong number of reported lines in Coverage API
- #3745 - IO#write_nonblock causes CCE on Windows
- #3738 - File.open w/ File::RDWR should write \r\n but gets should read as \n after rewind on windows
- #3736 - File.open ignores :universal_newline options on Windows
- #3727 - Tempfile#open on windows unconditionally opens in "b" mode messing CRLF logic (--1.9)
- #3720 - ScriptingContainer.getHomeDirectory() and getCurrentDirectory() return / paths and no \\ paths on Windows
- #3709 - JRuby 1.7.x Tempfile.path ends up being \\ delimited.
- #3670 - Error when matching regex in multiple threads
- #3642 - process_manager: Incompatible subprocess cmd parsing behaviour on 1.7 (ENV variables)
- #2697 - OpenSSL::PKey::RSA.new behaves differently than MRI
- #1727 - Errno::ENOENT: No such file or directory - \\server creating a directory in a UNC path
- #584 - wrong current line
JRuby 9.0.5.0 Released
Tuesday, January 26 2016
The JRuby community is pleased to announce the release of JRuby 9.0.5.0
- Homepage: https://www.jruby.org/
- Download: https://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.2.x and stay in sync with C Ruby. JRuby 9.0.5.0 is our latest release…
Major features of JRuby 9000:
- Ruby 2.2 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.
Notable updates since 9.0.4.0
- Fixed leaks in IO.select and IO.copy_stream.
- Implemented DATA support lost in 9k.
- Fixed regression breaking empty-body define_method methods.
- Windows stat crashing on 32 bit JVMs
- 53 issues fixed for 9.0.5.0
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal JIT compiler from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, and does not work on Windows. However we are now interested in people submitting issues for small gems with minimal dependencies who see issues running on JRuby+Truffle
Graal has been integrated into Java 9 early access builds, and can be used today as part of the GraalVM, which is currently the recommended way to run JRuby+Truffle.
More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.5.0
- #3609 - Incompatible method lookup under Kernel.load(file,true), aka wrap, on 9.x
- #3602 - Fix cache-constructed-proxies
- #3599 - jrubyc won't compile a file with method in outer scope (NoMethodError: undefined method `new_method' for nil:NilClass)
- #3597 - Fix SizedQueue#num_waiting regression
- #3591 - Unhandled Java exception: java.lang.ArrayIndexOutOfBoundsException: -3
- #3590 - IO.copy_stream leaves opened files in ObjectSpace
- #3588 - Leak in select for a UNIXSocket (at least)
- #3586 - org.jruby.runtime.load.ClassExtensionLibrary.tryFind fails on certain classnames
- #3581 - Cache proxies of newly constructed Java objects
- #3579 - JRuby doesn't support DATA and __END__
- #3577 - Block call IR optimization failures by 0d35995e1704bb716a9b54064208cf82ace2f150
- #3576 - ConstructorInvoker isn't storing the proxy in the ObjectProxyCache
- #3574 - autoload + const_defined? inconsistent with Ruby 2.0+
- #3573 - MRI 2.2.2 / JRuby 9.0.4.0 difference given explicit `self` receiver for private method call.
- #3564 - Rational suffix doesn't work with 0
- #3563 - jdk9 produces warning on launcher
- #3558 - case doesn't match empty array
- #3542 - StopIteration does not propagate a result
- #3540 - Fix Enumerable#{min_by, max_by} with nil
- #3539 - Prevent to make subclass of Class
- #3538 - Regexp match raises java.lang.ArrayIndexOutOfBoundsException in numbered backreference
- #3537 - Fix Array#collect! that returns a sized enumerator as Array#map!
- #3530 - Calling IO.console twice raises NoMethodError for `#open?`
- #3527 - BigDecimal.new("5-6").to_i returns 0 on 9k where 1.7 and MRI returns 5
- #3520 - Having Problems With Celluloid::IO / Nonblocking IO
- #3494 - Proper support for UNIXSocket.for_fd
- #3493 - Wrong name mangling. V8Utils => v8utils instead of v8.utils
- #3492 - UNIXSocket#recv_io, UNIXSocket#send_io implementation using JNR
- #3488 - forcing a nil (no) backtrace with Java APIs
- #3483 - define_method with empty body throws RuntimeError in interpreter
- #3478 - Print warning when JRuby.objectspace is enabled
- #3472 - Hash keys should only be deduplicated for direct literal forms
- #3453 - AOT compile of method with conditional return results in "is not compiled Ruby; use java_import to load normal classes"
- #3452 - AOT compile of empty module results in NullPointerException
- #3437 - Fix for issue 3402: String#encode with :replace option does not return correct value
- #3433 - Getting back different values between Time#to_r and Time#to_i
- #3412 - [Truffle] make j+tr part of the distribution
- #3411 - Convert chinese encoding GB18030 to UTF-8 doesn't work
- #3405 - Hash has bug to set encoding into key string wrongly when the key string is used once with different encoding
- #3402 - String.encode :replace option does not work when encoding to UTF8
- #3331 - Fix 3303 refactor zoneHelper into getRubyTimeZoneName
- #3328 - remove support for aliasing Java indexed getters as Ruby readers
- #3262 - jruby 9.0.0.0 Java::JavaLang::Character.name
- #3209 - Correct a format string in Signal#trap.
- #3208 - Trapping reserved signals doesn't print a meaningful message
- #3193 - Java::JavaLang::StackOverflowError running spec which works on 2.2.1
- #3121 - jruby 9.0.0.0.rc1 performance regressions
- #3120 - Add some more tests for bignum pow
- #3119 - Fix date.rewrite_frags
- #2149 - Failing DateTime.strptime for weird dates near epoch
- #2142 - Struct#inspect does not produce the same output as MRI 2.2
- #940 - Implement UNIXServer and UNIXSocket.for_fd
- #455 - RubyUDPSocket swallows exceptions
JRuby 1.7.24 Released
Wednesday, January 20 2016
The JRuby community is pleased to announce the release of JRuby 1.7.24
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.24 is our twenty-eigth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
Highlights:
- Windows stat crashing on 32 bit JVMs
- Annoying io/console warning on Windows now only happens in verbose mode
- stat.directory? now workds again on Windows
- Update out of date unicode data (will fix some character class regexps)
- 16 issues fixed for 1.7.24
Github Issues resolved for 1.7.24
- #3555 - jruby-jars jruby-core should not include java/util/concurrent/ConcurrentHashMap.class
- #3554 - Use of Unsafe in High Scale break on Android
- #3550 - Warning "io/console not supported; tty will not be manipulated" occurs again on 1.7.23
- #3525 - File::Stat.new() issue in 1.7.23 on Windows 7
- #3505 - stat.writable? incorrectly reporting false for some directories on Windows 7
- #3496 - asciidoctorj-pdf does not work with JRuby 1.7.23
- #3403 - log exception backtrace in one log record
- #3213 - Add snapshot of "jruby-jars-*.gem" to the CI build
- #3180 - Kernel.load(file, true) produces RuntimeException: Should not get here!
- #3154 - Add complete jar and other release artifacts to ci.jruby.org builds
- #3032 - Self requiring file breaks inheritance hooks
- #2960 - Block Parameter Scoping (vs Ruby)
- #2954 - Posible compilation issue
- #2945 - Module#const_get may return incomplete class
- #2104 - Ambiguous method warnings in core_ext/object.rb in 9k
- #821 - IO.select does not properly coerce timeout argument
JRuby 1.7.23 Released
Tuesday, November 24 2015
The JRuby community is pleased to announce the release of JRuby 1.7.23
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.23 is our twenty-seventh update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
Highlights:
- Windows stat now supports long and UNC pathnames
- Windows stat no longer leaks memory (broken since 1.7.20)
- Various Windows path fixes
- Various jar and/or classpath fixes with filesystem-related methods
- Fixed issue with native support not loading on some Ubuntu systems
- 31 issues fixed for 1.7.23
Github Issues resolved for 1.7.23
- #3470 - Method aliases are not consistently mapped for a class with isFoo and getFoo
- #3463 - Module method defined on metaclass in Java ext has wrong owner
- #3446 - Memory leak off heap on Windows when using File::Stat
- #3443 - jruby-complete.jar ignores nested gems of required jar
- #3422 - Fix Fixnum#pred overflow
- #3421 - Fix GzipWriter output
- #3418 - "FloatDomainError: Computation results to 'NaN'(Not a Number)"
- #3401 - File.realpath on uri-like paths fails
- #3392 - Pathname#relative_path_from failing when there is a '!' character in the path
- #3381 - helper to clean up stale /tmp/jruby-12345/XZY.jar files
- #3377 - #to_ary behavior does not conform to MRI behavior
- #3352 - /tmp/jrubyXXX.jar files are left in place by classloader if process is SIGKILLed
- #3346 - Error messages for failed casts using Integer() subtly different to MRI
- #3342 - File.file?( "uri:classloader:/path/") can be true which is wrong
- #3329 - Fix java_implements for multiple interfaces
- #3307 - jruby-complete-1.7.x comes with yaml ruby files from yecht.jar which conflicts with stdlib
- #3306 - psych can not load yaml file from classloader
- #3294 - processArguments is run twice
- #3287 - Cannot resolve or detect symlinks on Windows
- #3285 - "NotImplementedError: waitpid unsupported or native support failed to load" with 9.0.0.0 on Ubuntu if build tools not installed
- #3280 - Encoding of symbol literals does not respect the encoding of the source file (1.9 edition)
- #3278 - backport #3271, #3211, #3221
- #3186 - Unable to use bundler with jruby-complete for versions 1.7.21 and 9.0.0.0. 1.7.19 works as expected.
- #3132 - expandPathInternal Windows compatibility
- #2865 - Ambiguous method warning when there does not appear to be any ambiguity
- #2187 - Fix JsonProfilePrinter
- #1827 - normalize JRubyHome for windows.
- #846 - Difference in exception handling behavior JRuby <-> Ruby 1.9.3
- #625 - Socket.const_defined? returns false for constants defined in the scope in 1.8 mode
- #364 - symlinks interact badly with Dir; cause infinite loop/recursion
- #338 - NKF constants
JRuby 9.0.4.0 Released
Friday, November 13 2015
The JRuby community is pleased to announce the release of JRuby 9.0.4.0
- Homepage: https://www.jruby.org/
- Download: https://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.2.x and stay in sync with C Ruby. JRuby 9.0.4.0 is our third of many point releases…
9.0.4.0 is a quick turnaround release to address some problems with the new stat() implementation on windows and couple of issues. We have a lot more confidence in the new stat code now. In addition, we addressed a fairly long-standing memory leak with stat() on windows. A followup release for 1.7.23 will also be out soon to address the same leak (next week).
Major features of JRuby 9000:
- Ruby 2.2 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.
Notable updates since 9.0.3.0
- Resolved various issues with stat() on Windows
- Fixed couple of encoding/transcoding issues
- Source with __FILE__ in it will now JIT
- Native call subsystem will load on mixed 32/64 bit Linux distributions
- 11 issues fixed for 9.0.4.0
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.4.0
- #3457 - stat.st_gid is unsupported on windows
- #3449 - jirb fails to start on Windows
- #3448 - File.stat("someunavailable").mtime returns odd result
- #3444 - Fix TCPServer#accept NPE log
- #3442 - String#crypt crashes when a receiver is shared String
- #3425 - String#tr different behavior as compared to MRI Ruby
- #3410 - Cannot install jRuby 9.0.3.0
- #3409 - NotImplementedError: flock unsupported or native support failed to load
- #3408 - IRB fails to start with JRuby9.0.3.0 on Windows 10.
- #3197 - require_relative fails for relative paths within jars on Windows
- #2381 - IO#rewind ... doesn't. (when backed by a ByteArrayInputStream).
JRuby 9.0.3.0 Released
Wednesday, October 21 2015
The JRuby community is pleased to announce the release of JRuby 9.0.3.0
- Homepage: https://www.jruby.org/
- Download: https://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.2.x and stay in sync with C Ruby. JRuby 9.0.3.0 is our second of many point releases…
[NOTE: 9.0.2.0 was prematurely released to Maven with a serious issue so we had to skip putting out a 9.0.2.0 release (Maven does not allow replacing pushed artifacts). So 9.0.3.0 is our second official point release. We apologize for any confusion this may cause.]
Major features of JRuby 9000:
- Ruby 2.2 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.
Notable updates since 9.0.1.0
- Pattern ‘foo rescue nil’ now can, at times, run 48x faster
- Blocks can independently JIT now improving perf in some scenarios
- define_method with non-capturing body is now 2+x faster (~same speed as def)
- stat() on windows now supports long paths and UNC paths
- Handful of issues fixed makes Rails master run (sans AR-JDBC work outstanding)
- 31 issues fixed for 9.0.3.0
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.3.0
- #3397 - ArrayIndexOutOfBoundsException when utf8 string matched against regexp with with word boundary \b
- #3399 - Can't seek when file accessed using classpath: OR uri:classloader: schemes
- #3394 - JRuby thread stuck on IntHashMap.rehash
- #3380 - Bad value for $$
- #3378 - #to_ary behavior does not conform to MRI Ruby (1.7.22)
- #3372 - FileUtils#remove_tailing_slash is a poor method name
- #3371 - splash params lose a nesting level *only* in #_to_proc
- #3368 - Jitted blocks do not scope evals properly
- #3365 - test/mri/psych//test_yaml.rb fails with enable system assertions
- #3364 - Running Rails test with Jruby 9000
- #3362 - bar rescue nil should not fail if StandardError is removed
- #3356 - Inconsistence when modifying return object in ensure
- #3348 - CSV parsing performance is poor
- #3340 - JRuby NoMethodError: undefined method `open?' for #<File:/dev/tty>
- #3338 - JRuby 9.0.1.0 #to_ary should return Array
- #3337 - support (seekable) ByteArrayInputStream#to_io.rewind
- #3333 - handle non-public inner class retrieval
- #3330 - Fix java_implements for multiple interfaces
- #3327 - Issue #3324
- #3324 - _id2ref should raise RangeError rather than return nil for no object found
- #3319 - find-bugs 2
- #3317 - find-bugs 1
- #3300 - extension class does not get loaded
- #3292 - UTF-8 encoding on MS-Windows
- #3282 - UDPSocket Error inconsistent with MRI
- #3279 - non-intuitive overloaded varargs matching
- #3270 - Kernel#require cannot find compiled ruby classes in jruby 9.0.0.0
- #3267 - Encoding issue in jruby 9.0.0.0
- #3257 - Initial $LOAD_PATH depends on JRUBY_HOME in jruby-complete-9.0.0.0
- #3215 - bin/jruby is not updated when bin/jruby.bash is
- #3137 - Hash#select! inconsistency with MRI when yielding only one argument
JRuby 9.0.1.0 Released
Wednesday, September 02 2015
The JRuby community is pleased to announce the release of JRuby 9.0.1.0
- Homepage: https://www.jruby.org/
- Download: https://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.2.x and stay in sync with C Ruby. JRuby 9.0.1.0 is our first of many point releases…
Major features of JRuby 9000:
- Ruby 2.2 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.
Notable updates since 9.0.0.0
- Reduced memory usage since 9.0.0.0 by 13%
- Improved support for refinements; 70% of CRuby tests passing
- jruby-openssl updated to version 0.9.11
- psych updated to version 2.0.15
- 44 issues fixed for 9.0.1.0
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.1.0
- #3288 - 9K seems to be handling all jruby.xxx properties
- #3284 - Spec improvements
- #3283 - Not getting SIGCHLD when a child process dies
- #3277 - Spec improvements
- #3276 - Class with prepended module is its own superclass
- #3271 - bigdecimal & bigmath
- #3265 - Updates for RSpec 3
- #3251 - jruby: warning: unknown property jruby.{memory,stack}.max
- #3249 - Socket.send freezes string unexpectedly (RuntimeError: can't modify frozen string)
- #3248 - File.fnmatch doesn't match german vowels
- #3245 - Parser fails on `assert_equal(true, (not ()))` expresion
- #3238 - Fix Digest bubblebabble incorrect output on empty string
- #3237 - $! gets unset by rescue, even when the rescue doesn't catch the error
- #3233 - Rails.root set to "uri:classloader:/" for new Rails app with JRuby 9.0.0.0
- #3228 - Fix an embedded runtime memory leak in Java7ClassValue
- #3227 - Array#uniq behavior differs from MRI with BasicObject members
- #3224 - removed unused FileIO class from persistence.util
- #3221 - big decimal parser
- #3220 - RubyInstanceConfig#setupEnvironment throws AccessControlException on Windows
- #3218 - add to_h to the class used for ENV
- #3211 - bignum speedup
- #3200 - Fixing RangeError with code from 1.7 branch
- #3198 - licensing information out of date?
- #3189 - 9k fail ftp on Windows
- #3188 - jruby-1_7 merge failures on master
- #3187 - Add MRI test for proc visibility
- #3175 - 9k fail to compile ruby code of using multibyte char on Windows
- #3174 - ensure clause is executed before begin clause ends ?
- #3173 - Can't reference the proc itself in a proc
- #3165 - Fix RubyRange#initialize_copy mistakenly erroring on #dup'ing a range
- #3163 - dup on Range regression
- #3162 - Different results for `to_h` and `to_hash` on `ENV`
- #3118 - Jruby 9000 RC1 throws Java::JavaLang::ClassCastException: org.jruby.RubyBignum cannot be cast to org.jruby.RubyFixnum
- #2956 - bubblebabble is wrong for empty strings
- #2901 - Psych fails with MBC strings in ASCII-8BIT
- #2148 - BigMath.log fails MRI 2.2 tests
- #2131 - Divergent behavior in MRI vs JRuby wrt Class::undef
- #1968 - JRuby Yaml implementation (psych) fails dumping "-."
- #1907 - Frozen
- #1900 - "invalid byte sequence in UTF-8" after String#encode!; behavior differs from MRI (JRuby-1.7.13)
- #1877 - Array#delete_if - no size update
- #1770 - Wrong julian day for DateTime with a negative rational offset
- #1328 - Encoding of symbol literals does not respect the encoding of the source file
- #378 - Need ability to set Socket.setReuseAddress() in RubyTCPSocket.java
JRuby 1.7.22 Released
Thursday, August 20 2015
The JRuby community is pleased to announce the release of JRuby 1.7.22
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.22 is our twenty-sixth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
Highlights:
- 31 issues fixed for 1.7.22
- Updated jruby-openssl to version 0.9.10
- require_relative fix for softlinks and for embedded classloading scenarios
- jruby-complete works better with sub-processes
- Added bubblebabble digest format
- Java 8 default methods can now be called from Ruby
Github Issues resolved for 1.7.22
- #3263 - Ambiguous method warning when submitting a Runnable to an Executor
- #3254 - File.flock does not work on Solaris
- #3246 - require 'digest/bubblebabble' fails
- #3232 - Usage of deprecated and unimplemented Thread.stop(Throwable)
- #3177 - strange stacktrace
- #3176 - CWD is uri:classloader: then require_relative might not work
- #3169 - require_relative wrong in Jruby1.7 with symbolic links
- #3161 - IsolatedScriptingContainer does not honour setting Environment or Argv
- #3160 - Define packages for classes in nested JARs
- #3156 - Socket.pack_sockaddr_in fails for nil port (MRI doesn't)
- #3155 - NullPointerException on deleting items from an Array while mapping over it
- #3150 - File.expand_path( 'asd', Pathname.new('uri:classloader:/') produces corrupted result
- #3147 - JRuby trying to load jit'd code from Jars
- #3142 - shift and rehash methods in Array and Hash
- #3141 - Sub-process invocations of JRuby with jruby-complete fail in 1.7.21
- #3136 - improve dispatch for proc-to-iface based on arg count
- #3133 - JRuby-Complete-1.7.21 not running Rake on WIndows 7
- #3117 - Unexpected behaviour of Process.waitpid...?
- #3091 - [#2867] modified Date#>> to take calendar reforms under consideration
- #3053 - upgrade jruby-openssl (due regression)
- #3025 - jruby 1.7.20 - Java::JavaLang::IllegalArgumentException (the salt parameter must not be empty)
- #2923 - ArrayIndexOutOfBoundsException when calling super of Java class
- #2913 - Some File::Stat operations don't work for Oracle JDK
- #2867 - Date#next_year difference behvior with MRI
- #2468 - Some Java modules do not respond_to name
- #2232 - exceptions thrown by Ruby not propagated to calling Ruby when some Java involved in between
- #2164 - A case where calling a lambda is different between MRI and JRuby
- #1595 - "gem install bundler" fails using 2.0 or 2.1 mode
- #1553 - JRuby > 1.7.0 doesn't work with Oanda FXClient
- #1365 - System.setProperty("org.jruby.embed.compat.version", "RUBY1_8") does not work
- #340 - NullPointerException in getCompatVersionParameter(JRubyApplet.java:140)
JRuby 9.0.0.0 Released
Wednesday, July 22 2015
The JRuby community is pleased to announce the release of JRuby 9.0.0.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9000 is the new version of JRuby, representing years of effort and large-scale reboots of several JRuby subsystems. It is expected to be compatible with Ruby 2.2.x and stay in sync with C Ruby.
Major features of JRuby 9000:
- Ruby 2.2 compatibility
- A new optimizing runtime based on a traditional compiler design
- New POSIX-friendly IO and Process
- Fully ported encoding/transcoding logic from MRI
Read our blog entry on JRuby 9000 for more information.
We finally made it to 9.0.0.0. As the flood gates open and we get some people trying this new major version for the first time we expect to get a stream of issue reports. JRuby 9k should be stable and production ready but real world users hitting it for the first time generally uncovers new issues. Because of this, we expect to fairly quickly have followup point releases.
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.
It is important to point out that when we do put out JRuby 9.0.0.0 that this is only the starting point. Our new internals gives us lots of potential to keep pushing the bar higher on JRuby performance.
Notable updates since rc2
- Two reverts on classloading to restore behavior to be like JRuby 1.7.x
- Non-lambda return passing through a lambda could return improperly
- Fixed two visibility issues on methods (#3123, #3135)
- 39 issues fixed for 9.0.0.0 (note: some issues in list predate rc2 release)
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.0.0
- #3158 - timeout method not calling Timeout::timeout
- #3152 - Since JRuby-9.0.0.0 changes to classloaders are failing ruby-processing
- #3151 - http.rb gem specs fail on JRuby 9.0.0.0.pre2 and greater
- #3149 - Issue requiring 'yaml' on SwingWorker on jruby 9.0.0.0.rc2
- #3143 - #each's return takes precendence over inner block's return with a lambda
- #3139 - Gson gem fails to parse JSON on jruby9.0.0.0.rc1
- #3134 - jruby-9.0.0.0.rc2/lib/ruby/maven-home/bin/mvn not executable
- #3129 - Included Timeout crashes when module method version of timeout used
- #3126 - load current directory file
- #3125 - 9.0.0.0.rc2 popen3 doesn't work on Windows
- #3123 - private method error in jruby-9.0.0.0.rc1
- #3110 - Unable to load Sybase driver in rc1, works in pre2
- #3062 - Unable to java_import a class on jruby-9.0.0.0.rc1
- #3059 - Windows bin/*.bat files missing in 9.0.0.0.rc1
- #3034 - jruby: warning: unknown property jruby.export
- #2964 - In windows ScriptingContainerTest fails
- #2950 - not implemented error Raspberry pi 2
- #2762 - IO.copy_stream doesn't rewind the destination
- #2718 - JVM6 JIT caches duplicate values multiple times per compile unit
- #2713 - Hash#inspect differs from MRI Ruby 2.2.1; This problem occurs if Hash has double-quoted UTF8 symbol key.
- #2684 - JRuby automatically reaps child pids
- #2559 - 9.0.0.0-pre1: NoSuchMethodError in pg_jruby gem
- #2499 - jrubyc command doesn't work on 9.0.0.0-pre1
- #2497 - So Rails Rake Tasks Don't work? Preview 1 - 9.0.0.0
- #2483 - Long generated filenames in Truffle code prevent compilation on some systems
- #2480 - Keyword arguments arity issue
- #2476 - truffle modular
- #2462 - Removed unused var
- #2416 - Remove JumpException, Next, Redo, etc. exceptions from old runtime
- #2341 - allow for negative arity when calling curried proc
- #2328 - [Truffle] New implementation of non-small hashes
- #2322 - change name of files which pass rspec regression test on master
- #2288 - security model compilation fix
- #2287 - Fix #2137 Socket.getifaddrs returns incorrect interface list...
- #2253 - Fix GH-1960 rspec file
- #2252 - Fix GH-1726 on master
- #2235 - Make AOT work on 9k
- #2129 - Block variable shadowing and local_variables not matching up right
- #1111 - [2.1] Comparable#== needs a recursion guard for missing <=>
JRuby 9.0.0.0.rc2 Released
Thursday, July 09 2015
The JRuby community is pleased to announce the release of JRuby 9.0.0.0.rc2
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9000 is the new version of JRuby, representing years of effort and large-scale reboots of several JRuby subsystems. It is expected to be compatible with Ruby 2.2.x and stay in sync with C Ruby.
Major features of JRuby 9000:
- Ruby 2.2 compatibility
- A new optimizing runtime based on a traditional compiler design
- New POSIX-friendly IO and Process
- Fully ported encoding/transcoding logic from MRI
We are hoping this is our last release candidate before JRuby 9.0.0.0. The severity of problems are getting small enough where we think the next release will be 9.0.0.0.
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.
It is important to point out that when we do put out JRuby 9.0.0.0 that this is only the starting point. Our new internals gives us lots of potential to keep pushing the bar higher on JRuby performance.
Notable updates since rc1
- Fixed cases where AOT classes were not loading
- Various performance fixes
- Reduced memory size
- More parser fixes
- Fixed rc1 eval with binding regression (aka setValueDepthZero AIOOB)
- 39 issues fixed for 9.0.0.0.rc2
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.0.0.rc2
- #3109 - Precompiled .class can't reflect new filename
- #3104 - Strange error in implicit return of match variable
- #3102 - Bundle install fails with jruby-head with a Java::JavaLang::ArrayIndexOutOfBoundsException on travis
- #3098 - Fix for issue 3035 on master : change the hash code calculation method of SymbolTable entry.
- #3092 - require_relative through symlinks behaves differently in jruby than in MRI ruby
- #3090 - Create friendlier API for swapping current thread context classloader
- #3089 - ManyVarsDynamicScope.java:145:in `setValueDepthZero': java.lang.ArrayIndexOutOfBoundsException: 0
- #3086 - JavaLang::NullPointerException in RubySymbol.javaStringHashCode()
- #3085 - proc {} in fcall hash with fcall receiving a do block does not parse
- #3079 - [Truffle] Requiring paths with . for current directory doesn't work
- #3078 - jruby 9.x jar-dependencies thwarts `gem install` prereq. to gemspec
- #3075 - popen3 doesn't work on Windows
- #3074 - rc1 fails on require 'psych' if .gemspec with require_relative in current directory
- #3067 - JRuby 1.7.20.1 Socket.tcp, Addrinfo.tcp, etc. mistake port for protocol
- #3061 - Add incrementor back PopenExecutor to prevent infinite loop.
- #3060 - Empty intern array (%i[]) does not work
- #3056 - java.lang.IncompatibleClassChangeError in 9.0.0.0 rc1
- #3055 - Cannot delete file after requiring it on Windows in 9.0.0.0.rc1
- #3054 - Process.spawn using huge amounts of memory for simple script
- #3049 - Requiring a bare file from current directory works unexpectedly
- #3046 - Shellescaped utf-8 string misbehaving in backticks
- #3044 - Fix getRealMethod for WrapperMethod which wraps a WrapperMethod
- #3042 - JRuby 9.0.0.0.pre2 raises "NameError: uninitialized class variable @@PREFIX_MAP in Object", doesn't occur in Ruby 2.2.x
- #3040 - parameters on non-Ruby method with special arity will NPE
- #3039 - SyntaxError: test.rb:3: syntax error, unexpected kDO_BLOCK
- #3038 - Process.spawn with redirect causes ConcurrencyError
- #3035 - 'あ'.to_sym == :'あ' is false
- #3018 - LoadError with 'compiled' ruby files with JRuby9000
- #3015 - Syntax Error on nested hash that parses with MRI 2.0 but not with JRuby 9000
- #2973 - This is a fix for bug ID 2964. The URL to see the write up is here:
- #2970 - add enforcer plugin to ensure we have only released dependencies on release
- #2943 - "each_with_object({}, &lambda_logic)" raise ArgumentError
- #2813 - jgem jruby-9000 not recognised as ~> 2.0.0
- #2698 - Non-ascii method names getting kicked out
- #2558 - Socket.gethostname ignores encoding settings
- #2496 - NameError: uninitialized constant JSON::Ext::Parser using jruby-complete
- #2487 - Dist has gotten too large due to new maven features
- #2427 - Ripper is still 2.0 grammar and has not been updated for 2.2 changes
- #1887 - parser bug
JRuby 1.7.21 Released
Tuesday, July 07 2015
The JRuby community is pleased to announce the release of JRuby 1.7.21
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.21 is our twenty-fifth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
Highlights:
- 31 issues fixed for 1.7.21
- Java integration performance enhancements
- paths representing files within jars work better with core filesystem APIs
- DateTime compat fixes
- BigDecimal compat fixes
Github Issues resolved for 1.7.21
- #3095 - "gem install" with jruby-complete results in "missing class name (`org.jruby.util.Classpath')"
- #3093 - isOpen()/close() is racy. Simply close and ignore EBADF.
- #3071 - when CWD is uri:classloader:/ regular absolute path do not work
- #3041 - Zlib::GzipReader.readbyte not implemented
- #3030 - Update rubygems to 2.4.8 to mitigate CVE-2015-4020
- #2995 - Hash behaves differently when used with FFI::Pointer
- #2986 - certain require do not load extension Service class
- #2972 - creating a directory via uri-like path 'uri:classloader://new_dir' acts wrongly
- #2969 - packing a runnable jar including rake + rspec can not execute '-S rake spec'
- #2968 - jruby-complete can run -S rake spec:jruby or any other rspec via rake
- #2967 - File.expand_path inside a jar can fail
- #2966 - some File methods do not treat uri like paths consistently
- #2948 - various issues launching script from runnable jar
- #2946 - respond_to_missing? does not convert method to symbol
- #2941 - DateTime.iso8601 fails with an error if a second fraction is present
- #2940 - activesupport 4.2.1 breaks timeout.rb on jruby 1.7.19 and 1.7.20
- #2922 - Dir['{}'] crashes with java.lang.ArrayIndexOutOfBoundsException: 0
- #2907 - Hash#take_while wrong behavior in 1.7.19
- #2883 - DateTime.iso8601 fails with an error (incompatibility)
- #2873 - Class not found exception on ppc64le
- #2856 - Some data can cause String#encode to hang
- #2539 - Incorrect error message when BigDecimal fails to coerce during comparison
- #2538 - BigDecimal does not coerce properly during division
- #2373 - Redirecting $stdout to an object fails with: Errno::EBADF: Bad file descriptor - Bad file descriptor
- #2293 - uintptr_t is wrong size on 64-bit JRuby
- #2039 - jruby 1.7.10 raises unexpected arity error (1 for 0) when creating a java.math.BigDecimal
- #1967 - Error when raising to a BigDecimal
- #1718 - Pointer on Windows JRE 64bit: Fix Memory access offset=0 size=8 is out of bounds
- #1396 - Backticks don't give exception for nonexistant command
- #1218 - Forcing jruby-complete to execute a command.
- #540 - Inconsistency between MRI and JRuby when private methods are called and method_missing is present
JRuby 9.0.0.0.rc1 Released
Wednesday, June 10 2015
The JRuby community is pleased to announce the release of JRuby 9.0.0.0.rc1
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9000 is the new version of JRuby, representing years of effort and large-scale reboots of several JRuby subsystems. It is expected to be compatible with Ruby 2.2.x and stay in sync with C Ruby.
Major features of JRuby 9000:
- Ruby 2.2 compatibility
- A new optimizing runtime based on a traditional compiler design
- New POSIX-friendly IO and Process
- Fully ported encoding/transcoding logic from MRI
This release is approaching a level of compatibility and stability where we have moved into a release candidate stage. We will address concerns reported before going final, so now is the time to find any problems…
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.
It is important to point out that when we do put out JRuby 9.0.0.0 that this is only the starting point. Our new internals gives us lots of potential to keep pushing the bar higher on JRuby performance.
Notable updates since pre2
- Updated to Rubygems 2.4.8 addressing CVE-2015-1855
- Several parser issues (also fixed in ripper)
- Optimized multiple assignment
- Several added smaller missing methods for better 2.2 compatibility
- A couple of bugs involving nested exceptions/ensures and $!
- 46 issues fixed for 9.0.0.0.rc1
Truffle
JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.0.0.rc1
- #3022 - Don't call modify() on RubyStrings so eagerly when freezing them
- #3019 - Small string values backed by HUGE non-shared ByteList leading to large memory usage under 9k
- #3016 - OutOfMemoryError in 9k on code with very large methods
- #3010 - 9k has different scoping behavior than MRI
- #3009 - LocalJumpError: yield called out of block in JRuby 9.0.0.0.pre2
- #3008 - Module#included is private when called with super
- #3007 - splats with non-array like values
- #3006 - add recursion guard in Comparable.
- #3002 - Don't warn on private attribute accessors to match CRuby
- #2993 - Many failures in Sequel tests on [RuntimeError] exception expected, not Class: <NoMethodError> Message: <"undefined method `[]' for nil:NilClass">
- #2986 - certain require do not load extension Service class
- #2984 - Socket.pair is not implemented
- #2983 - Net::HTTP can't ignore http.proxyHost of JVM System Property
- #2976 - Regression: Sequel's literals contain additional quotation marks under JRuby 9k head but not under pre2
- #2975 - Requiring Sequel triggers false warnings `already initialized constant`
- #2974 - NotImplementedError: waitpid unsupported or native support failed to load on OS X 10.9.5 / OpenJDK 8 / rbenv
- #2959 - JRuby 9k-pre2 throws IOError when reading from $stdin
- #2957 - JRuby 9.0.0.0.pre2 starts hanging while reading from a socket
- #2939 - Issue #2924
- #2924 - Issue in org.jruby.util.TypeConverter CheckType
- #2920 - Proc from Method breaks encoded parameter list
- #2919 - Add another layer of try/finally around rescue/ensure to reset $!.
- #2918 - Method#parameters doesn't annotate required parameters correctly
- #2916 - Multiple assignment has too much overhead
- #2910 - $! does not get cleared under certain circumstances
- #2905 - Different Regexp behavior from MRI
- #2904 - require 'ripper' yields const already init warnings
- #2899 - Fix for issue 2896 on master : Symbol#inspect with utf8 encode string
- #2887 - jrubyc failing - TypeError: failed to coerce org.objectweb.asm.ClassWriter to org.jruby.org.objectweb.asm.ClassVisitor
- #2877 - Implementation of initialize_copy for BigDecimal (fix #2868)
- #2871 - Enabling tty for powerpc64
- #2869 - NameError different behavior
- #2868 - BigDecimal can not be copied
- #2850 - Fannkuch-redux is less than half as fast in 9k as in 1.7
- #2772 - Make Dir raise Errno::EACCES
- #2756 - Allow File.open and File.new with 4 arguments
- #2744 - Syntax error with file that has OK syntax with MRI 2.2
- #2724 - Socket.getaddrinfo reverse_lookup
- #2616 - Fix power of 0 and 1 issues in Rational
- #2605 - Fix File.read with UTF-16LE
- #2603 - Add support for named captures in StringScanner (fixes #1067)
- #2563 - RubyArray#flatten! uses `respond_to?` unlike the original [lotus]
- #2475 - Truffle: Understand and reduce impact of Truffle on the distribution size
- #2036 - Demonstrate pedantic option
- #1955 - -X... and -X? options to search for properties.
- #1629 - Another unexpected kDO_BLOCK error in parser
JRuby 1.7.20.1 Released
Wednesday, June 10 2015
The JRuby community is pleased to announce the release of JRuby 1.7.20.1
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.20.1 is our twenty-fourth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
This security release only updated Rubygems to version 2.4.8. Rubygems 2.4.8 addresses CVE-2015-1855 to resolve some problems with wildcard matching of hostnames. See ruby-lang.org’s description for more info. All users are recommended to upgrade.
JRuby 1.7.20 Released
Tuesday, May 05 2015
The JRuby community is pleased to announce the release of JRuby 1.7.20
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.20 is our twenty-third update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
This release was pushed forward quicker than planned to address issues running Rails 4.2 (issue #2438).
Highlights:
- 62 issues fixed for 1.7.20
- Rubygems updated to 2.4.6
- jruby-openssl updated to 0.9.7
- Java integration performance enhancements
- ppc64le & ppc64 native support added
- obligatory M17n fixes :)
Github Issues resolved for 1.7.20
- #2903 - Removing event hooks can AIOOB
- #2902 - Enumerable#find_index gives wrong result in case with types cast
- #2894 - Mimic MRI's openssl when jopenssl require fails.
- #2890 - Enabling tty for powerpc64 (1_7)
- #2881 - java_send will not invoke a method taking a CharSequence
- #2857 - org.jruby.javasupport.JavaMethod invocation does not wrap returned JavaObject
- #2816 - UnboundMethod#parameters for an assignment method wrongly returns blank array
- #2812 - Add PowerPC64 little endian support in FFI on 1_7
- #2810 - looks like org.jruby:jruby artifacts contains jruby-core
- #2793 - FreeBSD TestPTY#test_commandline fails
- #2790 - Jruby to use upcoming jnr-ffi release to have ppc64le TypeAliases
- #2773 - ThreadKill not handled by ThreadFiber
- #2759 - "warning: Unrecognized time zone: x" emitted to stderr
- #2750 - UNIX Sockets raising Errno::ECONNRESET or EOFError ( 9.0.0.0 && 1.7.19 )
- #2749 - some array factories do not work
- #2748 - RubyGems of JRuby1.7.19 is v2.4.5 (should be v2.1.9)
- #2742 - Regression in loading Java classes with upper case package names
- #2733 - Compiling app with embedded JRuby has RELEASE_6 warning
- #2715 - implements strict base64 encoding
- #2658 - Java integration should call toJava or to_int for array index and value
- #2650 - BigDecimal losses precision in JRuby 1.7.19
- #2647 - jruby core build fails on IBM ppc64
- #2632 - Enumerator containing range does not pass a block variable
- #2630 - embed internal fixes
- #2624 - java support cleanup and improvements
- #2617 - `des-ede3` is unusable in JRuby
- #2602 - RegexpError: invalid multibyte character for method gsub
- #2600 - File.stat gives incorrect mode value on PPC platforms
- #2596 - Exception java.lang.Error thrown while initializing thread_safe ConcurrentHashMapV8
- #2595 - Issue with object form constructor by reflection.
- #2582 - JMX MBean name collides when deploying multiple JRuby web apps to a single application server
- #2572 - Fix uninitialized usage of File::Stat on jruby-1_7
- #2554 - Fix for issue 2524 on jruby-1_7: [BigDecimal] Loss of precision with different execution order
- #2551 - Base64.strict_decode64 isn't strict
- #2549 - support for easy (Ruby) String to (Java) char conversion
- #2510 - Explicit require of autoloaded class triggers double load
- #2508 - upgrade to jruby-openssl 0.9.6
- #2428 - Rack tests broken
- #2424 - Error in File.stat
- #2387 - absolute paths without drive letter don't work in windows
- #2375 - JRuby subclass cannot call super with arguments if parent constructor is varargs
- #2373 - Redirecting $stdout to an object fails with: Errno::EBADF: Bad file descriptor - Bad file descriptor
- #2372 - system("...&&...") should work in windows
- #2344 - rubygems 2.4.5
- #2336 - RubyGems 2.4.5 Upgrade Triggers Bug in Java Extension Loading
- #2321 - Fix for issue 2182 on jruby-1_7 : Struct#inspect with utf8 encode string member
- #2314 - Infinite loop when using mutually-referential constants
- #2301 - unable to get value of object's fields in RubyMine debugger
- #2182 - Struct#inspect has ASCII encoding
- #2014 - Enum#valueOf thread safety issue
- #1897 - Add PowerPC64 little endian support in FFI
- #1754 - JRuby 1.7.11 (bundled with LogStash v. 1.4.1) fails on FreeBSD 10.0 with NotImplementedError: stat.st_dev unsupported or native support failed to load
- #1753 - Unsupported platform: unknown-linux (ppc64le)
- #1719 - Cannot require 'openssl' in a signed jruby jar as of jruby 1.7.3
- #1621 - Java class proxy creation deadlock
- #1390 - Literal `\あ` results in invalid multibyte char error
- #1389 - JRuby can Not load JFFI library under IBM Power 64 with PLinux platform
- #1354 - Calling .to_java(Java::byte[]) on a RubyArray doesn't convert to a multi-dimensional byte array, but fails with a TypeError exception
- #1270 - LocalJumpError raised on break from custom Enumerator enumeration
- #769 - java_send on private subclass fails
- #719 - jruby-openssl gem breaks PKCS5
- #638 - java_send should be smart enough to unwrap the Ruby version of a Java class
JRuby 9.0.0.0-pre2 Released
Tuesday, April 28 2015
The JRuby community is pleased to announce the release of JRuby 9.0.0.0-pre2
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9000 is the new version of JRuby, representing years of effort and large-scale reboots of several JRuby subsystems.
Major features of JRuby 9000:
- Ruby 2.2 compatibility, minus features listed below
- A new optimizing runtime based on a traditional compiler design
- New POSIX-friendly IO and Process
- Fully ported encoding/transcoding logic from MRI
This is our second preview release, and we are getting much closer to reaching our first .0 release. We are releasing this update to get user feedback on Ruby 2.2 functionality and overall stability.
We hope all Ruby users will try out this release and report issues on 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.
Ruby 2.2 features yet to be implemented:
- Refinements (partially finished) #1062
- Kernel#spawn close-on-exec support
- ObjectSpace::WeakMap#each and Enumerable inclusion
- Thread#handle_interrupt is not yet fully functional
Notable changes since pre1:
- Startup time has improved but is a tiny bit slower than 1.7.x.
- Memory usage has improved but still a ways to go.
- Straight-line performance has improved since pre1
- Windows support improved, but still needs further work and testing
- Many keyword arguments problems fixed
- 88 issues fixed for 9.0.0.0.pre2
The new runtime gathers more information about Ruby code and performs more analysis and optimization than our old runtime. There’s great potential here to bring Ruby performance to native Java or C, but we are just starting the optimization phase of that work. We will do our best to get startup time, memory use, and performance on par with 1.7.x (or better) before the final release of JRuby 9000.
Truffle
JRuby 9000 includes an in-development version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports all Ruby language features, but so far only some of the core and standard libraries. It has no support for RubyGems or Rails, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for 9.0.0.0.pre2
- #2864 - Prepend breaks module "implementer" search
- #2847 - JRuby not using UTF-8 for source files
- #2846 - Psych dependency is installing non-JRuby version
- #2842 - Hash#each_pair should be a true alias of Hash#each
- #2840 - jrubyc blows with NPE
- #2833 - Bad nonlocal return with re-wrapped define_method block
- #2797 - Support respond_to_missing? in respondsTo() lookups
- #2788 - Autoload broken by path canonicalization
- #2787 - Returns nil instead of regex match group inside conditional
- #2784 - rindex() fails on strings read from binary files
- #2777 - Undefined group option during parse of mri/test_regexp.rb
- #2776 - IR improperly masks errors in defined-guarded conditional
- #2771 - unknown type of %string
- #2767 - Open3.popen3 treats string command differently than MRI
- #2766 - Open3.capture2e fails with "wrong exec option"
- #2764 - Encoding::Converter#primitive_convert has trailing null byte
- #2752 - JRuby doesn't define Process::Tms like MRI does
- #2751 - Make RUBY_ENGINE_VERSION as companion to RUBY_ENGINE
- #2736 - early return in each'd enumerator is jumping out of each and not method
- #2726 - how do I install with Jars? Re: "deprecated. use instead jars/installer" message
- #2716 - rb_cmpint difference from MRI
- #2712 - Micro bench is nearly 2x slower with JIT than interp
- #2692 - Fix for issue 2591 on master : double-quoted UTF8 hash key encoding
- #2654 - Truffle - Compile Error until when break in case statement
- #2652 - Truffle - Regex Parsing Error
- #2637 - Produce a warning on private attribute accessors
- #2636 - Fix Bignum's bitwise operations
- #2635 - Object.const_get behaves differently from other implementations
- #2629 - Mixed-mode execution exposes an unusual bug
- #2627 - $stdin.tty? reports wrong value on JRuby-9.0.0.0-pre1
- #2623 - error with bin/jruby -S gem install asd
- #2615 - Open3 fails with ArrayStoreException after ~50 executions
- #2598 - Unknown error in child-process gem when trying to open phantomjs browser in webdriver when running on jruby
- #2593 - Fix IO#write frozen string issue in textmode
- #2591 - double-quoted UTF8 hash key has the wrong encoding
- #2589 - Fixed the errors with RubySpec
- #2587 - simplecov triggers load error when running coverage on jruby-9.0.0.0.pre1
- #2585 - JavaSupport refactoring API (byte-code) incompatibility with extensions
- #2584 - Fixed arity issue with RubyMethod
- #2583 - Make filepaths with null byte fail
- #2581 - Error handling converting UTF-32 to UTF-8 is broken [9k] [lotus]
- #2580 - Different Encoding behavior from all other Rubies
- #2579 - Fix for issue 2182 on master : Struct#inspect with utf8 encode string member
- #2578 - Binding#receiver is not implemented [9k] [lotus]
- #2576 - Fix the bug with size with each_slice without block
- #2574 - Parallel value assignment broken in IR builder (multi-value literals, calls, attr-assign, etc.)
- #2570 - ClassCastException requiring minitest with JRuby 9000
- #2569 - Fix required arguments for File.chown
- #2568 - Exit iterator when `RubyHash#any?` short-circuits
- #2562 - Skip block-to-proc conversion for explicit block syntax when possible
- #2560 - Fix uninitialized usage of File::Stat
- #2553 - Mismatch on Enumerator#size result between JRuby and MRI
- #2547 - Dir.foreach does not allow encoding
- #2541 - JRuby+Truffle: Keyword Arguments - "illegal recursive call"
- #2540 - Fixed arity require in case of required keyword arguments
- #2537 - Fix for issue 2524 on master: [BigDecimal] Loss of precision with different execution order
- #2525 - undefined method `invoke_with_build_args' for nil:NilClass on Windows 7
- #2524 - [bigdecimal] Loss of precision with different execution order
- #2523 - Modified the make_wstr method so that it appends a null character.
- #2522 - Implement pack & unpacking ipv6 address in sockaddr
- #2521 - Require order appears to impact JRuby extensions [9k]
- #2518 - Keyword arguments incompatibility
- #2514 - Getting "BUG: $! and exception are not matching up" in RSpec in 9K
- #2512 - keyword arguments incompatibilities
- #2511 - Keyword method parameters cannot take a frozen hash
- #2505 - IO.popen cannot run 'date' on Windows 7
- #2500 - gem install failure on Windows
- #2494 - Open3 fails with varying signals on 9.0.0.0.pre1
- #2493 - Performance issue with invokedynamic + Rack + URI
- #2492 - Implemented support for keyword and keywordrest proc /lambda parameters
- #2491 - Minitest rails not working on 9000
- #2489 - Proc.parameters return an empty array
- #2486 - Implemented Enumerator#feed method
- #2474 - truffle artifacts are not on maven central and we have a release repo in jruby-parent.pom
- #2466 - Package Truffle stdlib files into tarball
- #2388 - IO#ready? returns incorrect results
- #2357 - NULL handling inconsistent with Ruby
- #2312 - Encoding.compatible? affected by call order
- #2210 - Fix for issue 1069 and 1390 on master: improve handling of non ascii character after backslash
- #2185 - Bundle fails with Java::JavaLang::StackOverflowError with git-hosted gems
- #2165 - Truffle: Kill all other threads when the main thread exits
- #2163 - StringLiteral consumers may not be CR-aware
- #2137 - Socket.getifaddrs returns incorrect interface list
- #2033 - Problem with super not passing params with IR
- #2015 - Method keyword arguments are destructive
- #1982 - AIOOBE in ThreadContext#postYield
- #1395 - Pre-compiled methods do not have AST available for re-compilation
- #779 - Output unreliable from spawned processes
JRuby 1.7.19 Released
Friday, January 30 2015
The JRuby community is pleased to announce the release of JRuby 1.7.19
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.19 is our twenty-second update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
This release was pushed forward quicker than planned to address issues running Rails 4.2 (issue #2438).
Highlights:
- 17 issues fixed for 1.7.19
- Time.getlocal accepts fixnum as an argument (Rails 4.2 blocker)
- A few encoding fixes
- Socket.read(0) does not block (1.9)
Github Issues resolved for 1.7.19
- #2528 - RegexpError: invalid multibyte character
- #2451 - No need to synchronise a newly created local RubyArray
- #2446 - ConcurrentModificationException from ThreadGroup.list
- #2438 - Time#getlocal should accept Fixnum as an argument
- #2434 - String#start_with? inconsistent with other Ruby implementations
- #2426 - NullPointerException when trying to assign UnboundMethod using define_method & to_proc
- #2419 - Encoding issue after v1.7.6
- #2402 - (MAINT) fix jnr-constants version in pom
- #2401 - (MAINT) Fix pom deps re: asm
- #2386 - JRuby fails to display Java splash at startup on OS X
- #2349 - Fix for issue 1675 on jruby-1_7: String#casecmp on UTF-16LE encoded string
- #2343 - some error with RG with embedded JRuby
- #2338 - String#b improperly updates encoding of source string
- #2333 - ChannelDescriptor leak after close of ScriptingContainer
- #2292 - Remove unnecessary puts for GC::Profiler.total_time
- #1675 - casecmp on UTF-16LE encoded string produces ArrayIndexOutOfBoundsException
- #1637 - Socket.read(0) blocks caller (but not in MRI)
JRuby 9.0.0.0-pre1 Released
Tuesday, January 20 2015
The JRuby community is pleased to announce the release of JRuby 9.0.0.0-pre1
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9000 is the new version of JRuby, representing years of effort and large-scale reboots of several JRuby subsystems.
Major features of JRuby 9000:
- Ruby 2.2 compatibility, minus features listed below
- A new optimizing runtime based on a traditional compiler design
- New POSIX-friendly IO and Process
- Fully ported encoding/transcoding logic from MRI
This is a preview release, and we know there’s work to do. We are releasing now to get user feedback on Ruby 2.2 functionality and overall stability.
We hope all Ruby users will try out this release and report issues on 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.
Ruby 2.2 features yet to be implemented:
- Refinements #1062
- Enumerator#feed
- Kernel#spawn close-on-exec support
- ObjectSpace::WeakMap#each and Enumerable inclusion
- ObjectSpace::count_objects
- Thread#handle_interrupt is not yet fully functional
- POSIX-friendly IO, TTY, and Process logic is not used on Windows
We also have additional work to do on the new runtime:
- Startup time is a bit slower.
- Memory usage is higher.
- Straight-line performance is a little bit slower.
The new runtime gathers more information about Ruby code and performs more analysis and optimization than our old runtime. There’s great potential here to bring Ruby performance to native Java or C, but we are just starting the optimization phase of that work. We will do our best to get startup time, memory use, and performance on par with 1.7.x (or better) before the final release of JRuby 9000.
Truffle
JRuby 9000 includes an in-development version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports all Ruby language features, but so far only some of the core and standard libraries. It has no support for RubyGems or Rails, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.
JRuby 1.7.18 Released
Monday, December 22 2014
The JRuby community is pleased to announce the release of JRuby 1.7.18
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.18 is our twenty-first update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
The goal of this release was to give a quick turnaround for bug reporters of 1.7.17. We wanted to get one more solid release out before the holidays…
Highlights:
- 20 issues fixed for 1.7.18
- non-ASCII Symbols now have their proper encoding
- fixed a couple of regressions from native crypt() landing
- update stdlib to match MRI (C Ruby) patch level 551
Github Issues resolved for 1.7.18
- #2342 - Java::JavaLang::NullPointerException: org.jruby.RubyString.crypt(RubyString.java:2660)
- #2331 - File.realpath treats absolute "classpath:/" paths as relative paths
- #2327 - added String#b method
- #2316 - I/O calls do not invalidate `String#ascii_only?` cache
- #2310 - ArgumentError: "+HH:MM" or "-HH:MM" expected for utc_offset
- #2307 - ConstantCompilationTest.testContainerCompilation regression
- #2304 - Unable to use JRuby with google app engine due to use of sun.misc.Unsafe
- #2302 - Update JRuby 1.7.x to latest PL and default gems
- #2301 - unable to get value of object's fields in RubyMine debugger
- #2298 - Open3.capture3 still broken in JRuby 1.7.17
- #2297 - File.executable? raises an exception if the `file_path` is non-existent and native disabled
- #2296 - NullPointerException with JRuby 1.7.17 running rspec & simplecov in debug mode
- #2295 - Regexp.union [] gives wrong result in ruby 1.8 mode
- #2294 - String#crypt fails on Windows
- #2291 - Dir[] fails if path does not exist instead of returning nil
- #2259 - File.basename can return a string with a different encoding than the input
- #2172 - Symbols need to support UTF-8 names
- #2048 - Stat of an empty resource does not generate proper Exception.
- #1941 - Symlinks in load path should remain unexpanded in LOADED_FEATURES
- #1237 - jffi*.tmp files remain in %TMP% folder
JRuby 1.7.17 Released
Tuesday, December 09 2014
The JRuby community is pleased to announce the release of JRuby 1.7.17
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.17 is our twentieth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
Highlights:
- 56 issues fixed for 1.7.17
- native crypt()
- Fixed bad encoding of string interpolated within backticks
- popen2+ now works properly with env hash
- improvements to align MRI and JRuby FFI
- updated stdlib to 1.9.3p392 (+ rexml security fixes)
Github Issues resolved for 1.7.17
- #2271 - refactor FileResource.inputStream to be easier to use
- #2264 - Illegal hex characters in escape (%) pattern
- #2258 - Encoding issue with backticks
- #2249 - Improve error message when adding file to X509Store fails
- #2231 - Was the --indy cli option removed? (1.7.16.1)
- #2223 - test Kernel.system on windows
- #2219 - JRuby Complete 1.7.16.1 does not move asm to other package
- #2173 - on jboss wildfly when starting a rack application: stat unsupported or native support failed to load
- #2169 - Upgrade jcraft/jzlib dependency
- #2123 - Fix for issue 2050 : BigDecimal and nil multiplication
- #2120 - require 'win32/registry' fails
- #2115 - Limit searches for service libraries to once per baseName, rather than once per suffix.
- #2088 - Allow partial but not actual esoteric interpolation sequences to be regexp values
- #2079 - Error running rspec (LoadError: load error: jopenssl/load -- java.lang.NoClassDefFoundError: org/bouncycastle/asn1/DERBoolean)
- #2078 - Very large retained heap size for org.jruby.RubyRegexp$RegexpCache in JRuby Rails App
- #2077 - jruby can't be used w/ jdk 9
- #2075 - Provide better error message when using :: in java_import (fixes #2074)
- #2074 - java_import does not accept :: for static nested classes
- #2072 - Old tzdata in JRuby
- #2068 - Made Exception#set_backtrace compliant with Ruby documentation
- #2064 - improve handling of non ascii character after backslash
- #2060 - Instance_eval tramples over block's binding's ivars
- #2057 - Rubygems broken due to psych problem for 1.7.16 in 1.8 mode
- #2055 - extensions found on classpath do not load
- #2042 - Gem class missing in jruby-complete 1.7.16 when running from network folder (Windows only)
- #2040 - jruby -S irb broken on solaris in 1.7.16 with JDK 7
- #2032 - JRuby 1.7.16's complete.jar has a path regression from 1.7.15
- #2017 - load path with jars not working anymore with 1.7.16
- #2016 - java.library.path on Fedora
- #2011 - Fix for issue 1695 : BigDecimal and Rational multiplication
- #2008 - Implemented multi args 'system' method on Windows fix #1074
- #2006 - Coding Conventions guide uses wrong link for sun java coding standards
- #2004 - jruby-complete-1.7.16.jar includes /Users directory
- #2003 - fix enums to return nil on unknown symbol
- #2002 - tweak include order
- #1999 - Land master File.readlink fix (084eef9c25860cccdd65b625a877e7e230414175)
- #1983 - java -jar jruby-complete.jar -S irb doesn't work anymore
- #1962 - Array() does not coerce according to MRI 1.9 logic
- #1954 - FFI::Library#enum_value difference between MRI and JRuby
- #1934 - Deprecate overloaded `setProfile`, prefer `setProfilingMode`
- #1919 - Call Exception#set_bactrace when raising exception
- #1875 - __FILE__ is wrong when using PathType.CLASSPATH so require_relative can't work
- #1870 - Module#ancestors now includes singletons themselves
- #1869 - ScriptingContainer.parse(PathType.CLASSPATH, "some.rb").run() fails
- #1791 - scriptingcontainer native memory leak?
- #1768 - OpenSSL cipher list mismatch
- #1758 - Binding bug
- #1752 - warning: Tempfile#unlink or delete called on open file; ignoring
- #1695 - BigDecimal and Rational multiplication rounds the rational number
- #1681 - Optimize SipHash using sun.misc.Unsafe
- #1549 - openssl issue with rails and installed default gems
- #1547 - Passing environment hash to Open3#popen3 causes IOError
- #1290 - JRuby 1.7.8 (1.9) Open3 `capture3` bug
- #1074 - Kernel#system with two parameter on Windows fails
- #1035 - String#crypt behaving differently that in MRI
- #957 - Time marshaling is incorrect
JRuby 1.7.16.2 Released
Monday, December 08 2014
The JRuby community is pleased to announce the release of JRuby 1.7.16.2
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.16.2 is our eighteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
1.7.16.2 is a security fix release for CVE-2014-8090. All users are strongly recommended to upgrade. For more information, check out the excellent write up on www.ruby-lang.org.
For those wondering, JRuby 1.7.17 is going to be out tomorrow (barring any last minute showstoppers). This will include not only this security fix but almost 2 months of bug fixes.
JRuby 1.7.16.1 Released
Tuesday, October 28 2014
The JRuby community is pleased to announce the release of JRuby 1.7.16.1
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.16.1 is our seventeenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3.
1.7.16.1 is a security fix release for CVE-2014-8080. All users are strongly recommended to upgrade. For more information, check out the excellent write up on www.ruby-lang.org.
There is one other small change in this release to strip out extra unused files from jruby-complete.jar. jruby-complete.jar is back down to a normal size again.
JRuby 1.7.16 Released
Thursday, September 25 2014
The JRuby community is pleased to announce the release of JRuby 1.7.16
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.16 is our sixteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- 20 issues fixed for 1.7.16
- Fixed regression which improperly wrote wrong version for OSGi bundles
- Fixed several regressions involving symbolic links and Ruby loading
- Doubled performance of FileTest.directory?
Github Issues resolved for 1.7.16
- #1997 - Tempfile behavior change in 1.7.15
- #1995 - Regexp regression in 1.7.15 from 1.7.13
- #1994 - Snapshot builds of jruby-1_7 jruby-jars.gem have the wrong file name
- #1991 - Allow launch.inproc=true to expand glob patterns
- #1989 - Files in axiom-types and descendants_tracker gems use 400 and 440 modes
- #1986 - String#slice on multibyte chars raise Exception
- #1983 - java -jar jruby-complete.jar -S irb doesn't work anymore
- #1977 - jrubycomplete - OSGi DynamicImport-Package breaks Adobe AEM
- #1975 - nil TypError on bundle install, regression 1.7.14+
- #1973 - Bundle package broken after 1.7.14
- #1971 - jruby-core 1.7.14 isn't a valid OSGI bundle anymore
- #1965 - Gemfiles that use `:path` broken between 1.7.13 and 1.7.15
- #1963 - Array#product does not coerce incoming arguments properly
- #1953 - openssl ignores OpenSSL::X509::DEFAULT_CERT_FILE
- #1950 - All RubyFileTest methods have a race condition
- #1945 - File.exists?("broken_symlink") returns true
- #1942 - Bundle not working with two gemspecs - bug introduced in 1.7.14
- #1715 - IOError with OpenSSL #connect_nonblock: Writing not possible during handshake
- #1700 - NPE in Ripper with $ special variables
- #541 - JRuby 1.7.2 with authlogic 3.x fails to boot (OpenSSL)
JRuby 1.7.15 Released
Wednesday, September 03 2014
The JRuby community is pleased to announce the release of JRuby 1.7.15
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.15 is our fifteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
This release is a quick followup release to JRuby 1.7.14. JRuby 1.7.14 had a mangled jruby-jars release as well as several non-obvious regressions involving our new load service internals. We apologize if these regressions have affected you and recommend all people upgrade to 1.7.15.
Changes of note:
- 8 issues fixed for 1.7.15
- Potential memory leak resolved when reloading JRuby apps in Java App servers
- jruby-jars gem did not have their embedded jars within it
- rvm install of jruby would not properly follow gemset symlinks
- Windows exec works again
- lstat did not honor native.enabled property and always invoked native
Github Issues resolved for 1.7.15
- #1940 - Symlinks in load path get expanded when they should not
- #1939 - Update jnr-ffi dependency version
- #1936 - Pathname object in $LOAD_PATH causes error (1.7.14)
- #1935 - Add ScriptingContainer accessors for ProfileOutput
- #1930 - JRuby 1.7.14 relies on HOME in the environment - change in behaviour from 1.7.13
- #1927 - jruby-complete 1.7.14 appears to be missing some files
- #1926 - jruby-jars 1.7.14 gem seems to be missing jar files.
- #1115 - control-c in cmd while running webrick rails app does not kill jruby.exe
JRuby 1.7.14 Released
Wednesday, August 27 2014
The JRuby community is pleased to announce the release of JRuby 1.7.14
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.14 is our fourteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- 30 issues fixed for 1.7.14
- Fixed potential memory leak with Jar file resources
- Due to slow startup on Rails apps invokedynamic is no longer on by default
- load/require internals refactored and simplified
- Small smattering of compatibility fixes
Github Issues resolved for 1.7.14
- #1923 - String#start_with? returns false when using an empty string
- #1905 - Tempfile and deleteOnExit
- #1899 - Can't call static method on Java 8 interface
- #1898 - Fix the memory leak and actually close the resources.
- #1889 - NPE from org.jruby.java.proxies.ArrayJavaProxy.to_a
- #1888 - native memory leak when reading files from inside a .jar
- #1859 - JMX tries to double-bind a port when using bundle exec
- #1858 - JRuby with Java 8 4 to 10 times slower than Java 7
- #1852 - JRubyClassloader seems to have a problem with file urls pointing to jar ...
- #1850 - embedded jars do not get loaded
- #1846 - Fix $LOAD_FEATURES paths for 1.8
- #1818 - fix ArrayJavaProxy#to_a failure on arrays containing null
- #1813 - can not load resources from jar anymore with jar uri
- #1809 - apply minor enebo's comments
- #1808 - Fix BigDecimal#round behavior with NAN and INFINITY
- #1805 - Zlib crc improvements
- #1803 - Fix minor bug in `setNativeEnabled`, and expose it in ScriptingContainer
- #1802 - Fix Encoding::Converter#inspect output
- #1799 - mvn -Pall fails at the documentation step
- #1790 - Make Time#to_r consistent with MRI
- #1777 - ServerSocket#accept_nonblock returns the server's port, not the client's
- #1772 - avoid sub-classing ThreadLocal since it will leak in envs such as .wars
- #1765 - added a java_field method for use in the jrubyc command.
- #1762 - enhanced the java_class compiler so it can handle multiple constructors
- #1750 - Refactor LoadService to make use of resources
- #1729 - no valid struct layout for Ethon::Curl::Slist
- #1676 - Empty hash optimization
- #1580 - IO.select raises CancelledKeyException on shutdown
- #1520 - Date comparison as java objects
- #1435 - bouncy-castle-java JARs missing when warbling with JRuby 1.7.10
JRuby 1.7.13 Released
Tuesday, June 24 2014
The JRuby community is pleased to announce the release of JRuby 1.7.13
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.13 is our thirteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- 58 issues fixed for 1.7.13
- jruby-openssl 0.9.5 bundled
- Ability to upgrade jruby-openssl as a gem
- New custom profiler API
- Several BigDecimal fixes
Github Issues resolved for 1.7.13
- #1757 - new krypt gem release
- #1749 - ??? jruby-opensll snapshot build not working properly on 1.7 branch
- #1748 - openssl load 1.8 (and possibly 1.9 compatibility) fix
- #1747 - Openssl is broken in 1.8 mode due to IO::WaitReadable
- #1743 - Ruby 1.9+ will use nil not false for type argument of set_trace_func
- #1731 - [GH-1726] - File.read should raise an Errno::ENOENT when the file is an empty String
- #1726 - JRuby 1.7.12: File.read("") throws Java ArrayIndexOutOfBoundsException
- #1725 - Make behavior of Array#eql? more closely match MRI
- #1722 - Strange FloatDomainError
- #1714 - String#rindex should handle matchdata strings
- #1711 - quote variables so works with directories with spaces
- #1708 - add spec for array coercion
- #1707 - * Treat SSL NOT_HANDSHAKING as FINISHED.
- #1705 - jruby-openssl gem version inconsitency
- #1703 - Fix for issue #1695
- #1699 - StringIO.set_encoding may change shared ByteList encoding
- #1698 - jruby-lib build fails in windows
- #1697 - Do not rescue java.lang.Error using StandardError
- #1696 - Rescue StandardError rescues Java errors
- #1688 - String rindex does not work properly with matchdata
- #1684 - Fix for issue #1517
- #1679 - Regression in compiling with default 1.8 mode
- #1677 - Use pwd -P to work on systemlinked locations.
- #1673 - ArrayJavaProxy#to_a now returns nested arrays where applicable
- #1670 - (more) OpenSSL cleanup
- #1667 - Kernel#fail should handle java exceptions
- #1666 - Fix #1664 for Hash#compare_by_identity and Hash#store
- #1664 - when Hash#compare_by_identity is called, it should not copy the keys
- #1663 - BasicSocket#shutdown should accept strings or symbols
- #1661 - minor (infrastructure) openssl cleanup
- #1650 - require 'net/https' fails on 1.7.12 and master if jruby.native.enabled=false
- #1649 - Triplicate BouncyCastle jars in the build
- #1648 - GH-1633 - BigDecimal operations should throws TypeError when the first argument is nil
- #1646 - GH-1551 - Fixing: Fixnum#to_s seems to generate strings immune to #[]=
- #1645 - Fix jar entry path expansion (https://github.com/jruby/jruby/issues/321 issue)
- #1641 - fail and raise behave differently
- #1638 - "Regexp Interrrupted" Typo
- #1636 - Static JavaProxy#getJavaClass needs to clear $!
- #1633 - Erroneous BigDecimal operations
- #1631 - BigDecimal#{round,truncate,floor,ceil} with no args returns to_i
- #1630 - Add support for symbol rounding mode arguments
- #1622 - Refactor channeldescriptor to use FileResource
- #1616 - Actually use Java7ClassValue when using Java 7+.
- #1602 - api for custom profiler
- #1596 - Uninitialized constant OpenSSL::SSL::SSLContext::METHODS in 1.7.x
- #1590 - Hash#hash fails when keys & values are the same
- #1579 - BasicSocket.shutdown() is not compliant for >= 1.9.x
- #1578 - Result of operation between BigDecimal and Rational differs.
- #1566 - loading (default) gems varies between jruby 1.7.x versions
- #1551 - Fixnum#to_s seems to generate strings immune to #[]=
- #1543 - openssl 'BC' (security provider) leak
- #1542 - fix initialize visibility
- #1538 - ArgumentError: comparison of Class with Class failed
- #1517 - Time#to_s with different UTC offset gives local hour with given offset
- #1299 - Enumerator.peek throws NullPointerException after the last item (1.7.8)
- #389 - OpenSSL::ASN1.decode results vary from MRI (and fail)
- #357 - OpenSSL::PKey::RSA.new returns the wrong value
- #210 - File.readlink cannot read dangling symlinks
JRuby 1.7.12 Released
Tuesday, April 15 2014
The JRuby community is pleased to announce the release of JRuby 1.7.12
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.12 is our twelfth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- 39 issues fixed for 1.7.12
- Mostly small 1.9.3 compatibility fixes
- Fixed a small leak if throwing lots of X509Errors
- Improved loading speed of Ruby files from jar files.
Github Issues resolved for 1.7.12
- #1626 - Fix compare_to for to_java'ed Ruby objects
- #1625 - Array#pack(cC) should not raise RangeError when argument is bignum
- #1618 - Enum.java:238:in `valueOf': java.lang.IllegalArgumentException: No enum constant jnr.constants.platform.AddressFamily.AF_AF_INET
- #1612 - jruby affected by libyaml CVE-2014-2525?
- #1608 - Inconsistent parsing of long strings to integers between JRuby and MRI
- #1607 - index.txt for s3 files
- #1606 - Exception when comparing Time with nil using ===
- #1605 - syslog FFI constants not generated for Syslog class on FreeBSD
- #1603 - Remove [@] syntax to add IBM i compatibility
- #1600 - Enums.... round three
- #1599 - Fix dynamic rescue on Java exceptions (issue #1598)
- #1598 - Dynamic rescue blocks don't catch Java exceptions
- #1595 - "gem install bundler" fails using 2.0 or 2.1 mode
- #1592 - Fix definition of JavaUtilities::ModifierShortcuts#static?
- #1589 - Rand fix master
- #1588 - fix Random.rand(1.0) behavior
- #1587 - Refactor channeldescriptor to use FileResource
- #1583 - Random.rand is broken with floating point values vs 1.9.3
- #1575 - mvn build error for [INFO] JRuby Lib Setup ................................... FAILURE
- #1573 - Fix exponential perf degradation in Time.parse and Time.strptime.
- #1564 - String#{to_r,to_c} should not use backref when calling gsub internally
- #1563 - Calling String#to_r causes loss of Regexp.last_match data
- #1557 - Pathname doesn't have to_path in 1.8
- #1556 - Dir.home returns LOGDIR env var instead of HOME or user.home
- #1546 - Implement jar directory snapshot caching.
- #1534 - NPE in RubyIO.fwrite(RubyString buffer)
- #1532 - Potential runtime leak from X509Error$ErrorException
- #1529 - Krypt 0.0.2.rc1 update
- #1526 - Change to use FileResource to get entries for RubyDir
- #1523 - unexpected ArgumentError in curried Proc
- #1508 - fix spinning indefinitely on partial TLS record (issue #1280)
- #1507 - Processdottimesfix
- #1506 - Better messaging with NameErrors
- #1478 - Array#pack difference between jruby 1.7.10 and ruby 1.9.3
- #1460 - org.jruby.ext.pathname.RubyPathname class doesn't properly support instance_variable_set method
- #1280 - jruby-openssl spins endlessly trying to read from a non-blocking SocketChannel while no data is available.
- #1210 - Unbundle bouncy-castle-java
- #1207 - Unbundle krypt libraries
- #1100 - When inside a .JAR, __FILE__ returns a URI-like string that isn't understood by some keywords
JRuby 1.7.11 Released
Tuesday, February 25 2014
The JRuby community is pleased to announce the release of JRuby 1.7.11
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.11 is our eleventh update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- 54 issues fixed for 1.7.11
- Miscellaneous encoding fixes
- Several fiber edge cases fixed
- Fiber thread pool reinstated
- More Ruby-friendly Java backtraces
Github Issues resolved for 1.7.11
- #1519 - Catch/throw and exceptions do not propagate out of fibers
- #1515 - Make JRuby\'s RubyTime argument checking be same as MRI
- #1512 - Fixing encoding problem with string format.
- #1511 - Encoding problem with string format
- #1510 - Resurrect replacing '\' with '/' in JRubyFile for windows.
- #1504 - Unreadable stacktraces when exceptions occur within Java code
- #1501 - Time.utc can't handle hour 24
- #1499 - Warning in Win32api.rb - check fails in Ruby 2.0 mode
- #1498 - do not install jruby-launcher on mvn \-Pbootstrap for windows
- #1494 - Refactor RubyFileStat and RubyFileTest to use FileResources
- #1489 - Error Installing Gems in jruby 1.7.11-SNAPSHOT java.lang.NoClassDefFoundError: org/bouncycastle/asn1/DERBoolean
- #1488 - fiber GH-1463 regressed
- #1485 - NPE not being caught or is printing out for no reason
- #1483 - Fix uniq/uniq\! with block for array slices
- #1481 - jruby-complete.jar broken on master
- #1477 - Bugfix for issue #1248
- #1475 - BUILDING.md: Added info about incremental compiling, cleaning after switching branches
- #1474 - Strange encoding differences with UTF-8 strings
- #1473 - Java NullPointerException raised inside Proc gets printed out even though it was rescued
- #1470 - Building JRuby: some classes are not rebuilt properly by "mvn package"
- #1468 - Fix jar globbing for real now.
- #1463 - Raising an exception on a thread that is in a Fiber causes a NullPointerException
- #1454 - Removed the custom glob code and added "defacto" expectations
- #1453 - Dir.glob is broken for files inside jar
- #1450 - Make warnings show the right line number
- #1448 - Fix Gem.ruby singleton method on Windows
- #1446 - Line number in runtime warnings is one greater than the actual line number
- #1445 - [2.1] Return in a lambda always returns from the block, even when &-ified
- #1443 - Fibers don't seem to reuse threads
- #1442 - Fixed issue 1441. Forced check that value was of an appropriate type.
- #1441 - Subtracting nil from a BigDecimal returns nil
- #1440 - Enumerator#each_with_object should provide the yielder\'s return value to its block
- #1439 - Restore hex and random_bytes to SecureRandom 1.8 \- fixes Travis
- #1436 - Allow Travis on select branches
- #1434 - uniq! returns nil when it is after a shifting operation.
- #1424 - Incorrect line number reported in "already initialized constant" warining
- #1421 - Need ByteList release for 1.7.11.
- #1417 - Ripper error "lex_p < tokp" caused by multi-byte character
- #1416 - mvn -Pbootstrap fails to build JRuby Integration Tests?
- #1414 - Cache DecimalFormatSymbols instances to reduce lock contention
- #1412 - Fix ffi buffer
- #1410 - main.inspect returns wrong value.
- #1406 - Further improvements to SecureRandom
- #1403 - Hash cleaned when used as named parameters (JRUBY_OPTS=--2.0)
- #1402 - Opening a class body doesn't reset the value of __method__
- #1400 - Reduce locking in VariableTableManager#initObjectId
- #1399 - Reduced the number of String allocations for the NONE parameterList case.
- #1392 - NullPointerException loading rouge gem
- #1377 - Implement Addrinfo.getaddrinfo
- #1361 - invalid bytes in ascii string result in ArrayIndexOutOfBoundsException on chars
- #1248 - Problems with paths containing space characters
- #1181 - Thread leak or expected behavior with fibers
- #1098 - Program that works under C Ruby fails under JRuby
- #272 - Bad error message for block pass through with return statement
JRuby 1.7.10 Released
Thursday, January 09 2014
The JRuby community is pleased to announce the release of JRuby 1.7.10
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.10 is our tenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- 22 issues fixed
- Windows require_relative regression fixed.
- Accidental SNAPSHOT dependency fixed
- A couple of Marshalling bugs involving encoding fixed.
Github Issues resolved for 1.7.10
- #1385 - Socket::SOMAXCONN
- #1380 - test-extended failing
- #1375 - Global eventually ignores assignment
- #1374 - require_relative fails when called from classpath:/ path file on Windows in JRuby 1.7.9
- #1363 - Compiling from source at 1.7.9 fails due to unsatisfied maven dependencies
- #1355 - Exception starting new thread after set_trace_func call
- #1349 - bin/{rake,rdoc,ri} broken by default in jruby 1.7.9
- #1345 - UnmarshalStream: Look for encoding information in all instance variables
- #1338 - UnmarshalStream: Fixed two off-by-one errors in unmarshalInt
- #1336 - Fixing Enumerator#peek behaviour
- #1335 - Array#repeated_permutation should have arity 1
- #1334 - #enum_slice and #enum_cons are 1.8-only
- #1323 - Snapshot dependency in released jruby-core 1.7.9
- #1322 - Dir resolves symlinks
- #1317 - 1311 datetime comparision
- #1312 - File.expand_path("NUL") broken
- #1311 - DateTime comparision at sub-millisecond resolution
- #1252 - Range#size missing from JRuby 1.7.8 in 2.0 mode
- #1184 - undefined method `__ruby_object' for interface implementation
- #1156 - jruby-openssl spins endlessly trying to write to a socket which is in state CLOSE_WAIT
- #1129 - IO#read_nonblock blocks sometimes for SSL Sockets
- #480 - JRuby does not Handle UTF-8 Source Files
JRuby 1.7.9 Released
Friday, December 06 2013
The JRuby community is pleased to announce the release of JRuby 1.7.9
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.9 is our ninth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- 36 issues fixed
- Windows File.size fixed
- Windows now will properly display to console windows codepage
- Fixed regression which broke Compass (or anything which depended on FSSM)
- A few more encoding issues fixed
- Lots of Enumerable method improvements
We would like to single out Daniel Marcotte with a special shout-out this release. Daniel recently has been digging into our block dispatch code (especially in regards to Enumerable) which is far from a trivial part of our codebase and we are loving it.
Github Issues resolved for 1.7.9
- #1300 - Fix #1222, StringIO.gets w/ utf8
- #1295 - Don't set java.net.preferIPv4Stack in shell scripts #1286
- #1293 - Adding spec for JRUBY-5946
- #1292 - subList toIndex should be exclusive, not inclusive. (fromIndex is inclusive.)
- #1291 - Sidekiq - Minitest error: NoMethodError: unmocked method :==, expected one of []
- #1282 - Blockless Struct#select should return an enumerator
- #1275 - Quote a JSON key so it's valid JSON.
- #1274 - RubyArray.subList should treat toIndex as exclusive, not inclusive.
- #1272 - File.size (org.jruby.RubyFile.size() ) impacts underlying file handle
- #1271 - Fix arrays with overridden each
- #1267 - Removes Logger customizations in JavaUtilLoggingLogger
- #1265 - StackOverflowError overriding Array.each since 1.7.5
- #1264 - Fix Enumerable#chunk arg handling
- #1263 - Fix Enumerable#take_while arg handling
- #1262 - Fix Enumerable#slice_before arg handling
- #1257 - mvn clean package wipes out installed jruby launcher
- #1255 - StringIO Encoding Issue
- #1254 - String#encode raises different errors on 1.7.8 than on 1.7.4 (and both are different from MRI)
- #1251 - "Stub gems" missing/wrong in JRuby 1.7.8
- #1246 - Fixing String#concat(symbol) should raise TypeError
- #1245 - Undefined method exception when using `compass watch' in jruby 1.7.8.
- #1242 - UTF-8 string interpolation in US-ASCII string sometimes returns wrong US-ASCII string
- #1239 - Compiled method bodies do not scope defn/defs correctly
- #1238 - JRuby 1.7.8 fails to initialize OpenSSL::PKey::RSA.new with encrypted key
- #1236 - Erroneous files in JRuby 1.7.8 "bin/" directory.
- #1234 - Fix any_spec
- #1231 - Fix count_spec (1.7.x)
- #1229 - duplicate class definition when reifying classes
- #1222 - CSV parse fails when string with mutibyte character terminates with CR-LF
- #1221 - openssl: add handling for base 0 to new and to_s
- #1209 - Pathname#dup is broken in 1.7.5.
- #1204 - Regression: Encoding error saving YAML with Norwegian characters
- #1198 - String encoding
- #1032 - Build error using Java 8 on OS X
- #901 - Enumerable arg handling issues for `#chunk`, `#slice_before`, and `#take_while`
- #770 - file size error on windows
JRuby 1.7.8 Released
Thursday, November 14 2013
The JRuby community is pleased to announce the release of JRuby 1.7.8
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.8 is our eigth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
This release was an insanely quick followup release to 1.7.7. We realized a few hours ago after releasing 1.7.7 that we accidentally shipped the MacOS bin/jruby binary launcher. JRuby 1.7.8 is essentially 1.7.7 with the single correction to our bin dist file.
Changes of note:
- 21 issues fixed
- Fixed Windows ‘rails new’ regression (bundle install exits)
- Fixed OpenSSL gem bootstrapping problem
- Fixed Google App Engine bootstrapping problem
- A few missing 1.9+ Pathname features added
Github Issues resolved
- #1214 - Support for ISO-8859-16
- #1213 - Remove README.md notes on junit.jar
- #1201 - Pathname#delete alias missing / not working
- #1199 - Softlink jruby to jruby.bash instead of hard copy.
- #1182 - incorrect RubyHash multithreaded behaviour when marshalling
- #1180 - Move the guard before the use of metaclass.
- #1176 - Array(array) returns a copy instead of array itself
- #1171 - Rails new failed with JRuby on Windows 7
- #1170 - `rindex` performance improvement
- #1167 - "print" called with no arguments prints "nil"
- #1165 - Bug 1092 fix
- #1163 - File.expand_path should fail if ENV['HOME'] isn't an absolute path
- #1157 - Fix compatibility wiht Bouncy Castle 1.49.
- #1154 - Pathname.new(Dir.new('dir_name')) raises a TypeError
- #1153 - Dir[*[]] behaves differently in jruby 1.7.6 the in MRI 1.9.3p448
- #1151 - Too many files in JRuby 1.7.6
- #1150 - rails 3.2.x with jruby-openssl in Gemfile gives uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER
- #1148 - Commit c7c7c7 broke AppEngine
- #1139 - ClassCastException when reading non String value from Java System.properties
- #1136 - JRuby 1.7.5 doesn't compile valid class files
- #1117 - #name method on java classes strips the outer class
JRuby 1.7.7 Released
Thursday, November 14 2013
The JRuby community is pleased to announce the release of JRuby 1.7.7
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.7 is our seventh update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
This release was a quick followup release to 1.7.6. Our main priority is working on our next major version of JRuby, but we want to maintain a partial focus on continuing to fix bugs for JRuby 1.7.x. A faster release cycle for JRuby 1.7.x will help motivate us to keep fixing bugs on our maintenance branch. Expect a new release about every 3 weeks…
Changes of note:
- 21 issues fixed for 1.7.7
- Fixed Windows ‘rails new’ regression (bundle install exits)
- Fixed OpenSSL gem bootstrapping problem
- Fixed Google App Engine bootstrapping problem
- A few missing 1.9+ Pathname features added
Github Issues resolved for 1.7.7
- #1214 - Support for ISO-8859-16
- #1213 - Remove README.md notes on junit.jar
- #1201 - Pathname#delete alias missing / not working
- #1199 - Softlink jruby to jruby.bash instead of hard copy.
- #1182 - incorrect RubyHash multithreaded behaviour when marshalling
- #1180 - Move the guard before the use of metaclass.
- #1176 - Array(array) returns a copy instead of array itself
- #1171 - Rails new failed with JRuby on Windows 7
- #1170 - `rindex` performance improvement
- #1167 - "print" called with no arguments prints "nil"
- #1165 - Bug 1092 fix
- #1163 - File.expand_path should fail if ENV['HOME'] isn't an absolute path
- #1157 - Fix compatibility wiht Bouncy Castle 1.49.
- #1154 - Pathname.new(Dir.new('dir_name')) raises a TypeError
- #1153 - Dir[*[]] behaves differently in jruby 1.7.6 the in MRI 1.9.3p448
- #1151 - Too many files in JRuby 1.7.6
- #1150 - rails 3.2.x with jruby-openssl in Gemfile gives uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER
- #1148 - Commit c7c7c7 broke AppEngine
- #1139 - ClassCastException when reading non String value from Java System.properties
- #1136 - JRuby 1.7.5 doesn't compile valid class files
- #1117 - #name method on java classes strips the outer class
JRuby 1.7.6 Released
Tuesday, October 22 2013
The JRuby community is pleased to announce the release of JRuby 1.7.6
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.6 is our sixth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
This release was a quick followup release to 1.7.5. Our main priority is working on our next major version of JRuby, but we want to maintain a partial focus on continuing to fix bugs for JRuby 1.7.x. A faster release cycle for JRuby 1.7.x will help motivate us to keep fixing bugs on our maintenance branch. Expect a new release about every 3 weeks…
Changes of note:
- 14 issues fixed for 1.7.6
- Restored some missing .bat files for Windows
- Fibers no longer throwing uncatchable errors
- Removal of already initialized warnings from OpenSSL
Issues resolved for 1.7.6
- #1145 - Process.respond_to?(:fork) returns true when profiling is enabled
- #1142 - Threading fixes
- #1141 - Error Messages Seem Different Compared to YARV
- #1138 - Files missing from JRuby 1.7.5
- #1135 - Round method not consistent with jruby 1.7.5 compared to 1.7.3
- #1133 - Tempfile no longer unlinks created files upon garbage collection
- #1128 - strformat corrupt cyrillic symbols
- #1121 - Bigdeciment 1.9+: to_s sometimes has extra trailing zeroes
- #1118 - Arrays duplicated by splats (e.g. a_dup = [*a]) share structure, but shouldn't
- #1116 - Ignore AccessControlException while setting network stack system property
- #1106 - Java exceptions raised in fibers cause the fiber to die without notifying parent
- #1088 - JZlibRubyGzipWriter doesn't handle nil arguments gracefully
- #1071 - Lots of already initialized errors from jruby-openssl
- #1044 - Allow whitespace between -> and () in lambdas in 2.0
JRuby 1.7.5 Released
Monday, October 07 2013
The JRuby community is pleased to announce the release of JRuby 1.7.5
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.5 is our fifth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
This release is a special point release in that it is the last point release before we move JRuby 1.7.x onto a maintenance branch. At this point we will put out more releases of 1.7.x based on bug reports, but a bulk of our effort will change to work on the next major version: JRuby 9000.
We fixed a number of issues with JRuby’s support for invokedynamic, but due to increased memory requirements and some lingering issues we have opted to leave it disabled until Java 8 (due in March). Users willing to bump up memory use (PermGen, specifically) can still enable invokedynamic via -Xcompile.invokedynamic=true. We also encourage users to try their apps on early access builds of Java 8.
This summer, the JRuby team and our community members mentored ten students on a wide range of projects as part of Google’s Summer of Code 2013.. We would like to thank Asakawa Ryu, Benoit Daloze, Chamila Wijayarathna, Devwrat More, Eric West, Faraaz Ismail, Kumar Sukhani, Maximilian Konzack, Matthew Getch, and Tobias Pfeiffer for participating and congratulate them on their excellent work.
From this point forward, all users should report issues on our https://github.com/jruby/jruby project site. You can also just go to https://github.com/jruby/jruby/issues.
Changes of note:
- 243 issues fixed for 1.7.5
- Compatibility
- Many many encoding/M17n issues resolved.
- Improved transcoding support
- Fiber fixes
- Ripper support
- Performance
- Faster pathname implementation
- Faster date/time implementations
- Improved call performance for magic globals ($~ and $_)
- Block/proc creation and dispatch performance improvements
- Moved build to Maven from Ant. See BUILDING.md.
- Updated RubyGems to version 2.1.5
- Moved several standard libraries out as default gems
Jira Issues resolved for 1.7.5
- JRUBY-7101 - BigDecimal / <float between 0 and 1> => Infinity
- JRUBY-6409 - Open3.popen3(...) is broken in 1.9 mode
- JRUBY-6874 - Successive writes to SSLSocket are not read
- JRUBY-7190 - Incorrect encoding on result string read from File introduced in JRuby 1.7.4
- JRUBY-7151 - Array#drop fails for arrays containing floats in 1.8 mode
- JRUBY-6996 - jirb tab completion not working in Windows
- JRUBY-7095 - Time overflowing since 1.7
- JRUBY-7173 - IO#stat from IO.pipe didn't work
- JRUBY-7148 - Division with BigDecimal not working
- JRUBY-7167 - Regexp match not thread safe when called in a lambda
- JRUBY-7176 - "org.jruby.RubyNil cannot be cast to org.jruby.RubyMatchData" in multithreaded program
- JRUBY-6763 - Incorrect handling of arguments by method object
- JRUBY-7149 - Socket information is wrong with IPv6
- JRUBY-7185 - IllegalArgumentException when converting to utf-16
- JRUBY-7007 - Inconsistent String#encode behavior for binary to UTF-8 conversion
- JRUBY-7142 - failed to load valid utf-8 yaml file
- JRUBY-6994 - exec() in chdir block doesn't inherit cwd
- JRUBY-5290 - Thread#priority= resets negative values to 1
- JRUBY-7056 - Thread#backtrace sometimes reports backtrace for wrong thread
- JRUBY-7188 - Nested Fibers in 1.7.4 incorrectly raises error - resuming fiber from different thread
- JRUBY-7054 - NullPointerException in Thread#backtrace for adopted(?) Java threads
- JRUBY-7195 - REXML gives 1 character strings BINARY text encoding
- JRUBY-7172 - Java::JavaLang::NullPointerException when calling super in method in duped module included in subclass
- JRUBY-7166 - invalid multibyte char (UTF-8) caused by '\ââ¬â¢'
- JRUBY-7189 - invalid byte sequence in US-ASCII
- JRUBY-7013 - JDK8 CHM incompatibility
Github Issues resolved for 1.7.5
- #1078 - Delegate does not pass block through when object does not implement method
- #1076 - Enumerator lifecycle needs a test
- #1075 - Fiber finalizer fix
- #1072 - Latest 1.7.5 snapshot breaks DateTime + method
- #1071 - Lots of already initialized errors from jruby-openssl
- #1065 - Valid DateTime treated as invalid
- #1054 - Fixes for keyword argument handling
- #1053 - Remove the special invokedynamic default case for IBM J9
- #1049 - [2.0] Incorrect arity checking for methods with kw arguments
- #1047 - Passing nil as the value of a keyword argument causes JRuby to act as if there were no such keyword argument
- #1046 - profile output in json
- #1041 - JRuby inlining causes bugged behavior (Regexp globals)
- #1038 - jruby-jars missing from http://ci.jruby.org/snapshots/master/
- #1034 - Disable invokedynamic for Java 7
- #1029 - Fix italics syntax in BUILDING.md
- #1022 - Fix string representation of an Edge object
- #1020 - Begin fixing osgi metadata for maven build
- #1019 - some version updates
- #1017 - Capistrano Issue
- #1015 - Deadlock occurs on Thread.kill
- #1014 - memory increase needed when using jruny-head jdk7u40 +indy
- #1012 - com.github.jnr:jnr-posix:jar:3.0.1-SNAPSHOT needs a release
- #1009 - jruby master gem install jasmine-core does not work
- #1008 - StringIO doesn't work with frozen strings in 1.7.5.dev
- #1007 - NPE loading Rails console
- #1006 - Can't require jars with leading underscores
- #1005 - Application failure after updating to Java 7u40 with invokedynamic
- #1004 - ArgumentError: wrong number of arguments calling `eql?` (1 for 0)
- #1002 - Update to RubyGems 2.1.2
- #1001 - dist artifacts must not install jruby-launcher
- #1000 - NullPointerException bug: openssl.Digest
- #998 - 1.7.5.dev: error for rake spec for shoes4 (bundler/setup IllegalAcceError to_path)
- #996 - IR Event Handling
- #995 - YAML file fails to load if JVM character set is MS932 (common on Windows)
- #993 - Can't require in two threads at once in JRuby 1.7.5.dev
- #992 - BigDecimal#* returns Float (should be BigDecimal)
- #990 - Dist archive must use jruby.bash instead of native binary for bin/jruby
- #989 - Pathname#realpath is returning a String instead of a Pathname
- #988 - Fix failing time tests
- #982 - Document the purpose of `localrepo`
- #979 - Always compute Enumerable#count through enumeration for 1.9+
- #977 - rspec refactor for ffi to use expect inspite of should to make it better
- #972 - Package jay/yydebug should only be in jruby-core not jruby-stdlib
- #970 - Ruby 2.0 parser doesn't intern symbol strings in literal symbol array
- #968 - Re factor compiler specs to use 'let','match_array','expect',be_nil'
- #966 - use expect instead of should in rspec
- #961 - Comma in the file name results in JIT compile error
- #960 - remove rspec should also use let for input stream
- #959 - [jruby-jars gem] lib/jruby-jars.rb not same as source, and fails to load "jruby-jars/version"
- #955 - Bug with RubyRegexp when pass it a block.
- #954 - JIT-compile methods named 'none'.
- #953 - .jrubyrc file not supporting `cext.enabled=true`
- #950 - ThreadGroup#enclose does not guard against thread addition
- #949 - jruby --properties generates confusing comments in .jrubyrc
- #948 - Test failures in the MRI 1.9 suite (Time class) when TZ is set
- #945 - In Ruby 2.0, String#lines returns an Array, rather than an Enumerator
- #944 - Add RVM step to build instructions
- #943 - Fix typo in testing documentation
- #941 - Enumerator#inject() is broken
- #939 - Marshal load loses correct encoding for string subclass
- #937 - Strange (JIT?) behaviour causing assignment function to be called twice in Rails
- #936 - sprintf formatting with "%+.2d"
- #935 - incompatible character encodings: ASCII-8BIT and UTF-8
- #934 - rubygems version with jruby does not obey 'no_proxy' ENV
- #928 - More arg-handling improvements for Enumerables
- #927 - super inside def self.new behaves incorrect when called via alias
- #923 - Document --2.0 flag.
- #922 - Enumerator#count returns nil
- #919 - JRuby cannot decrypt a private key using the AES-256-CBC cipher
- #917 - Scheduler for controlling the Execution of IR Passes
- #912 - dist and jar-complete targets
- #907 - add the latest gems version in pom file
- #905 - IR Specs broke because use of Ruby 1.9 Hash syntax. Fixed it by using 1.8 Hash syntax
- #904 - Custom spec helpers for IR specs related to Vertex.java
- #902 - Time zone conversion overflow
- #898 - More arg handling fixes for Enumerable methods
- #897 - Convenient debug flags for IR
- #896 - upgrade gems version in pom file
- #894 - Fix a naming conflict jrubyc can introduce in generated java.
- #893 - Use rspec opts for IR specs
- #892 - Added flag for IR visualizer
- #890 - Date library using Joda-Time (v2)
- #889 - Don't overwrite rspec_opts. Instead of that append to it.
- #888 - Add index/rindex to java lists (java.util.List)
- #887 - Update site with developer, license, CI info. Update some deps and plugins.
- #886 - String#byteslice can raise an inappropriate ArrayIndexOutOfBoundsException
- #884 - More IR Specs related to Vertex.java
- #883 - Upgrade RSpec to latest version
- #882 - Date library using Joda-Time
- #881 - String#encode with undef replace options problem
- #880 - Fix parent hierarchies and plugins for the 'all' profile
- #878 - Fix Unmarshaling of Date objects marshaled with MRI 1.9+
- #877 - Issues generating checkstyle report
- #876 - bin/ast Add of IR Debugging Features
- #875 - Maven site can now be published to github pages
- #874 - Add javafx as predefined package for java 8
- #873 - script with long DATA block hangs
- #872 - NameError is thrown by method_missing when using self
- #869 - Customize checkstyle to make it more lenient.
- #867 - Use <dependencyManagement> for junit. Updated other deps.
- #866 - Separated the two comparison cases by parenthesis and added explanation
- #865 - Use <pluginManagement> in parent pom so that all plugins (and their versions) for the project can be centrally managed.
- #864 - Move Maven site reporting to parent pom. Fixed parent hierarchy.
- #863 - Direct Memory Buffer Leak in File IO
- #862 - Compilation with Maven is slow
- #858 - Interface incompatibility in BiVariableMap on Java 8
- #857 - Hybrid (native/ruby) pathname library
- #856 - JRuby 1.7.x String.encode not using Unicode replacement character
- #854 - Add Maven Site reporting
- #852 - Fixed a bug in checking the type of edges in EdgeTypeIterator
- #850 - Added Maven Site reports
- #849 - Komax refactoring factor methods
- #848 - Komax codestyle override annotations
- #847 - Komax codereview
- #844 - Removed comment about assert[ci skip]
- #839 - alias_method not preserving UnboundMethod#parameters
- #837 - Provide a convenient way to incorporate the latest tzdata
- #835 - method(:require).parameters is [] during Minitest run
- #834 - Strange defined? error with ::BasicObject
- #833 - Added Specs for IR and renamed a method in Vertex.java
- #832 - Restructure openssl artifact to separate out BC jars
- #831 - readline, openssl jar, yecht in place, copy jlin, bouncy-caster jar into stdlib
- #830 - RuntimeError: no local gem found for mocha
- #827 - File::EXCL is not thread safe
- #826 - Support foo.jar that is linked to extensionless jar files
- #824 - fix #823
- #823 - X509Cert.set_serial breaks for Certificate SerialNumbers with MSB=1
- #822 - fix slice_before on empty enumerable
- #817 - Fixed JRubyClassLoader to not require protective domain access check
- #816 - Need to unwrap exception before checking for security exception
- #815 - Fix enum arg handling in Enumerator Nexter
- #814 - JRuby 1.7.4 Regression, defined? fails for ::BasicObject
- #813 - JRuby's Ripper omits the :paren s-expression on method definition
- #808 - jrubyc: cannot find symbol lockAndRequire
- #807 - Fix each_with_index argument handling
- #806 - Chatty output while running RSpec
- #805 - "ArgumentError: wrong number of arguments calling `const_get` (2 for 1)" for java constants
- #802 - Weird JIT behaviour causing Rails to fail serving request
- #801 - Jruby 1.7.4 Timezone is inverted when creating a Time object
- #800 - Tag unreliable specs unstable rather than fails
- #798 - Named based constant cache invalidation
- #797 - Fix for BigDecimal#/
- #796 - Remove qualified const_get test
- #795 - Invalidate constant cache if included module has constants
- #794 - Fix String performance regression
- #793 - Fix the timezone string parser so it won't choke on TZ=JST-9, etc.
- #792 - jruby-1.7.3 Timeout is not working with long string and regexp.
- #788 - jnr-constants update needed for JRuby 1.7.5
- #787 - All command-line options should be configurable via JVM properties
- #786 - Pack roundtrip through BER ( w ) yields incorrect type
- #784 - add typecasting to RTEST macro
- #780 - Tag intermittent spec failures
- #775 - IPv4 stack should be preferred to IPv6
- #773 - Resolv.getaddress fails w/ 'connect: name or service not known' on Windows
- #772 - BigDecimal#hash returns different value for numerically equal numbers
- #771 - Checking for size of outgoing and incoming edges of the vertex after removing a single edge
- #768 - raise ArgumentError when IO.new/IO.open last argument is not a hash or nil
- #766 - IO.sysopen accepts mode & permission that are nil
- #764 - add support for options and not truncating offset for IO.write
- #763 - binwrite should pass write only when options are not empty but don't have a "mode"
- #760 - Remove a bad assert and untag some tests it was affecting
- #759 - Implements #614
- #758 - spec/regression/JRUBY-5811_case_insensitive_loaded_features_spec.rb fails on case-insensitive filesystem
- #757 - Untag a number of passing specs
- #756 - String#concat should preserve encoding
- #754 - Added a missing 'y'.
- #750 - Fix IOInputStream single-byte read
- #749 - Fix dash_s_spec
- #748 - Fix dash_c_spec
- #747 - 1.7.4 Regression: Time::localtime broken
- #746 - rake spec:compiler failing since ba4df82
- #745 - Fix precision issues in Time by avoiding conversions to nanoseconds.
- #744 - TypeError with Prime.each_with_index and mass assignment
- #741 - Update OSGi classloader
- #740 - Make Time#to_date compliant with MRI 1.9-2
- #739 - Improve GzipReader#gets performance.
- #738 - Added rake task for running IR specs
- #736 - Dispatching a string through send to method_missing causes encoding to revert to ASCII
- #735 - Synchronize profile printing.
- #734 - Fix RubyString#byteslice on substring.
- #732 - jline2 bundled jansi needs update after fixing security issue
- #731 - strftime "-" flag affects more than one field at a time (inconsistent with MRI)
- #730 - Fixing write specs
- #727 - Fix string concatenation with a number as per rubyspec behaviour.
- #723 - IO.copy_stream should handle objects that respond to read or write. Fixes #437
- #722 - REFACTORING: supporting flag about receiving an offset or not.
- #702 - Untag passing Marshal.dump specs
- #694 - Regexp #== and #eql? is true if self does not specify /n option and other does and vise versa
- #692 - Use hash rather than full sexp for cache key to significantly reduce mem...
- #690 - Raise a RangeError when codepoint is invalid for the default internal encoding
- #678 - TempFile#unlink - do not work if #close is not called right before, even if nothing has been done over the file.
- #652 - BC Date (with ActiveSupport) regression
- #648 - Division with BigDecimal not correct
- #644 - Error in Division of BigDecimal
- #641 - jruby/thread_dump fails in JRuby 1.7.2
- #640 - Fixing hashing consistency across JVM instances.
- #631 - About 60 RubySpecs fail if the entire suite is run.
- #624 - Field annotations
- #623 - Java classes with signatures should be reified
- #614 - KindOf implementation using Class.isInstance() instead of instanceof
- #603 - #caller returns `__send__' as one of the callers
- #563 - Encoding error when parsing UTF-8 CSV in (1.7.3 - 1.9 mode)
- #561 - Differences between XML string encoding in MRI and JRuby
- #520 - New ng.exe required before release
- #483 - Psych yaml parser can not parse uppercase ÄÖÜ but äöü can parse
- #474 - YAML weirdness
- #461 - String#encode hard errors without replacement for ASCII 8-bit range to multibyte
- #460 - add multiple assignment support to java.util.Collection's Fixes #459
- #456 - Marshal.load encoding error
- #415 - Getting this error: "LocalJumpError: yield called out of block"
- #406 - Gathering global thread backtraces fails often on CentOS with JRuby 1.7
- #375 - String#encode fails with :invalid => :replace option
- #332 - Open3.popen3 doesn't return a thread object in jruby 1.7.0-rc1
- #302 - DRegexp creates too many transient objects
- #264 - JRuby19mode behavior is different with CRuby. When Enumerator has mulltiple values for a block paramter.
- #218 - rspec related out of bounds array access in multi-character string splitting
- #168 - 1.9 mode runs "threaded reverse" bench slower than MRI
JRuby 1.7.4 Released
Thursday, May 16 2013
The JRuby community is pleased to announce the release of JRuby 1.7.4
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.4 is our fourth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- Dozens of 1.9-mode compatibility fixes
- Many IO and encoding issues fixed
- Transcoding support for :xml entity encoding
- Proc and block dispatch perf improvements
- Fiber and Enumerator#next improvements and fixes
- Fixed a regression in windows java native launcher
- Experimental Ruby 2.0 support (most features and stdlib included)
- 90%+ complete Ripper support
- OpenSSL fixes and updated to newer Bouncy Castle library
- Updates and fixes to FFI subsystem (compat with C ext, AIX support, etc)
- Long running regexp can be interrupted by Thread#kill and raise
- 137 issues fixed for 1.7.4
Thanks to all contributors for this release:
Alex Tambellini, Andrew Kiellor, Andy Lindeman, Anoop Sankar, Benoit Daloze, Bohuslav Kabrda, Charles Oliver Nutter, Daniel Noll, Dario Bertini, Gino Lucero, Hiro Asari, Iain Barnett, Isaiah Peng, Jake Goulding, James Pickering, Jeff Simpson, John Shahid, Jonathan Adams, Jose Donizetti, Kevin Menard, Mark McCraw, Martin Ott, Matt Wilson, Patrick Mahoney, Prathamesh Sonpatki, Robin Message, Ryan Blue, Sakumatti Luukkonen, Seth Wright, Subramanya Sastry, Sébastien Le Callonnec, Thomas E. Enebo, Uwe Kubosch, Vipul A M, Wayne Meissner, ryenus
Jira Issues resolved for 1.7.4
- JRUBY-7112 - Fiber exception handling regression in JRuby 1.7.3
- JRUBY-7121 - String#encode(:xml => :attr) encoding differs from MRI
- JRUBY-5742 - Fails to use UTF-8 encoded source with BOM.
- JRUBY-7102 - Time.now == "" should return false and not nil
- JRUBY-7117 - Dir.foreach should list entries in JAR root and in JAR directories ending in slash like "file:myjar!/test/"
- JRUBY-7033 - yielding from fiber fails when running jruby with --debug
- JRUBY-7127 - Ripper bug when parsing "::Object"
- JRUBY-4820 - [windows] File.size is completely broken on Windows
- JRUBY-6136 - Changing jnr-posix to use errno() value unconditionally has created lots of failures in windows
- JRUBY-7122 - File.realpath does not handle classpath:/ path on Windows
- JRUBY-7157 - IO.copy_stream broken for non-seekable source streams
- JRUBY-7143 - FileUtils.cp, FileUtils.copy, FileUtils.copy_stream bug on windows when copying from jar files
- JRUBY-7145 - FileUtils.mkdir_p creates extra directory named after drive letter
- JRUBY-7161 - NPE in socket connection
- JRUBY-7113 - Setting ssl_timeout on a Net::HTTP instance throws an exception
- JRUBY-7130 - Missing support for Time.getlocal(utc_offset) method in JRuby
- JRUBY-7134 - Dir.exists? sets $! when directory does not exist
Github Issues resolved for 1.7.4
- #737 - require_relative fails in jars
- #733 - Inconsistency between MRI and JRuby with begin/rescue/else
- #729 - Fixing IO.binwrite specs, parsing options.
- #728 - Refactored directed graph specs
- #726 - IO.binwrite doesn't truncate the file if an offset is given
- #725 - IO.binwrite doesn't truncate the file if an offset is given
- #724 - When offset passed return RandomAccessFile when not return FileOutputStream
- #717 - Add fails tag to failing Kernel.spawn spec
- #716 - Add fails tags for Process.{get,set}rlimit
- #715 - Bignum#/ should not raise ZeroDivisionError if other is zero and is a Float
- #714 - Some rubyspec additions
- #712 - Complex#/ with a Numeric which responds to #real? with false should coerce the passed argument to Complex and divide the resulting elements
- #711 - Exception#== should return true if the two exceptions inherit from Exception but have different classes
- #709 - NullPointerException on calling java_* methods on java interface impl in Ruby
- #708 - Fix failing rubyspecs for Encoding#compatible?
- #707 - Kernel#singleton_methods should return a unique list of methods
- #706 - Kernel#open should correctly handle objects that responds to to_open
- #704 - Kernel.exec should raise an ArgumentError if the command includes a null byte
- #703 - Kernel.abort should set the exception message to the given message
- #701 - Untag passing Math.cbrt and Math.gamma specs
- #700 - Numeric#div should raise ZeroDivisionError for 0
- #699 - Range#each should raise a TypeError if the first element is a Time object
- #698 - Range#first should raise an ArgumentError when count is negative
- #697 - Supporting IO.ungetbyte
- #696 - Regexp#initialize should raise a SecurityError on a Regexp literal
- #695 - Regexp#options should include FIXEDENCODING and NOENCODING when enabled
- #693 - using bytelist instead of a linkedlist for a better performance
- #691 - Implement String#to_sym special cases.
- #689 - Thread#initialize should raise a ThreadError when already initialized
- #688 - Fixing IO.ungetc tagged specs!
- #687 - Time methods should coerce the day, hour, minute, or second with #to_int
- #686 - jcodings release needed for JRuby 1.7.4
- #685 - REFACTORING: supporting a list of bytes
- #684 - Fix some failing rubyspecs for String#encode
- #683 - Fix unseekable stream implementation of IO.copy_stream in RubyIO.java
- #682 - Verifying if character is corrupted, meaning that one more char is needed.
- #681 - Untag passing float rubyspecs
- #680 - StringIO#puts should print newline when passed nil 1 or more times
- #679 - StringIO#set_encoding should set the encoding to default external when passed nil
- #677 - TempFile path consistency vs the rest of the Ruby implementations
- #676 - Fix eclipse problems
- #675 - Fix failing rubyspecs for String#unpack
- #674 - My stab at fixing JRUBY-7122
- #673 - Remove required argument constraint from StringIO#readpartial
- #672 - Fix Etc rubyspecs
- #671 - Untag passing conditional variable rubyspecs
- #669 - Fix BigDecimal#div rubyspecs
- #668 - Fix float rounding issues.
- #667 - Do not display class name for an anonymous struct.
- #666 - LoadError#path not implemented
- #665 - NameError for version when loading gemspec in 2.0 mode
- #664 - GzipReader#rewind should reset the position of the stream pointer
- #663 - Tempfile#size should return the size of self even if self is closed in 1.9
- #662 - Add license header to anno package classes.
- #661 - Bignum failing specs
- #660 - Fixing IO.foreach rubyspec, set env variable $_ to nil
- #659 - Ruby 2.0 Compatibility - NET:HTTP
- #658 - Math.gamma should return -∞ for -0.0
- #656 - Fix #645 by calling Java Math.cbrt directly.
- #655 - Io foreach
- #654 - [FFI] FFI::AutoPointer#free causes FFI::AutoPointer#autorelease? to cast NullPointerException
- #653 - Ant integration causes exception trace on failed build
- #651 - Kernel#__dir__ missing from 2.0 mode
- #650 - File/IO readlines supporting new params limit, and open mode
- #647 - Using Enumerable#cycle causes a background thread to be created but never destroyed.
- #645 - Behavior of Jruby Math.cbrt(number) does not match MRI
- #643 - FIXES #235 Fix for relative require from within a gem on the classpath.
- #639 - Project files fix
- #637 - Updated shared module dependencies.
- #635 - remove double assignment and addition to 0
- #634 - Implemented OpenSSL::PKCS7::write_smime
- #630 - [FFI] Struct Arrays behave differently on JRuby vs FFI gem
- #628 - OpenSSL::TestPKCS12 failure on OpenJDK 6
- #627 - ant integration breaks with ant 1.9.0
- #626 - jruby dies with fatal error on jdk8-ea-b83 on ubuntu
- #622 - Added new option jruby.timeout.thread.pool.max to control the max number...
- #617 - An object's ID is not copied
- #615 - Restore $! when catching exception.
- #613 - Ruby 2.0 caller API
- #612 - [FFI] FFI::Struct.by_ref mapped type accepts arbitrary structs in it’s #to_native
- #611 - Timeout worker pool size
- #609 - Add support for Floats as the first argument in Time.at.
- #608 - [FFI] FFI::Pointer#slice is not defined
- #607 - [FFI] FFI::Pointer.size is not defined
- #602 - RSpec 2.13 doesn't load in 2.0 mode
- #601 - Ant integration DSL issue
- #600 - Fixing RubyBasicObject#compareTo bug.
- #599 - Recursive annotation visiting
- #595 - Fixing build problem introduced by removing encryption jars
- #591 - Time.new: the UTC offset is always negative
- #590 - Consistent hash code values between JVM instances
- #587 - AIX 6.1: stat.st_gid unsupported or native support failed to load
- #583 - Method#parameters returning empty array for some Object methods
- #580 - [windows][jruby-complete] Resolv.getaddress fails
- #579 - Don't include imports from previously processed ruby files in every generated java file.
- #578 - Update psych to edf05c9f40e0c566e391f7e04b4a30327c31a828
- #575 - Require paths with .. in them are not normalized
- #571 - Fix so require_relative can handle an absolute path.
- #569 - Ruby 2.0: locations and caller APIs can take ranges now
- #568 - [Ruby 2.0] Kernel#caller_locations
- #566 - Ruby 2.0: Range#bsearch
- #565 - Time.at broken in 1.7.3 when passed (Time, 0)
- #556 - RbConfig.expand is missing
- #554 - Fixes issue #549 (OpenSSL sockets spin indefinitely on timeout in handshake)
- #553 - show build status from travis [ci skip]
- #552 - Zlib::GzipWriter.wrap in 1.9 mode accepts only one argument
- #551 - Fi JRUBY-5122_nonblocking_io_spec on Fedora 19 by raising chunk size
- #550 - JRuby 1.7.3 breaks Sidekiq (DeadTaskErrors on startup)
- #549 - OpenSSL sockets spin indefinitely on timeout in handshake
- #546 - Remove unused call to `String#replaceAll()`.
- #544 - replacing a hash with itself returns an empty hash in ruby 1.9 compatibility mode
- #539 - Time::new should treat numeric offsets as the GMT offset in seconds.
- #530 - JRuby is quick to show version number, slow to exit
- #523 - Java integration failures in 1.9 mode
- #522 - Generate new empty RubyString's with US-ASCII encoding.
- #515 - Dir.foreach fails in jar files
- #497 - JRuby behaves different from MRI and Rubinius when it comes to setting Module#name
- #471 - File.directory? should handle IO's
- #405 - jruby-1.7.0 Dir::tmpdir returns current directory if it is not world writable.
- #189 - OpenSSL::SSL::SSLError when talking to github
JRuby in Google Summer of Code 2013
Tuesday, April 16 2013
We’re pleased to announce that JRuby has been accepted as a mentoring organization for Google Summer of Code 2013!
JRuby participated in last year’s Google Summer of Code with eight excellent students. Projects ranged from serialization of our new intermediate representation to improved Android support via the Ruboto project. We’re hoping to have another great batch of projects, students, and mentors this year.
The JRuby GSoC 2013 wiki page has all the practical details, including dates, contact information, and possible ideas. This week (until April 21) we’re looking for mentors interested in helping a student over the summer. From April 22 to May 3, students can submit their proposals, and soon after that we’ll get our slot allocations and select projects.
If you are interested in mentoring a project, now’s the time to get involved! Apply on the JRuby GSoC organization page. If you aren’t interested in mentoring, please pass the word on to others!
If you’d like to work on a project for JRuby as a student, you should start communicating with us on the jruby-gsoc Google Group today. We’ll help you find a project that suits you and make sure you put together a complete proposal after April 22. You’ll also apply on the JRuby GSoC organization page, but not until after April 21. If you’re not a student or won’t be able to participate…tell your friends we’re looking for them!
Google Summer of Code has been a really exciting and rewarding experience for the JRuby project, and we’re looking forward to another excellent year.
JRuby 1.7.3 Released
Thursday, February 21 2013
The JRuby community is pleased to announce the release of JRuby 1.7.3
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
Alert Please note the primary reason for putting out 1.7.3 was to address two security issues. Everyone should upgrade to 1.7.3 (details on security issues below).
Note: This was a condensed release due to wanting to put out security fixes. If the bugs you are waiting for have not been fixed we will be fixing them for 1.7.4.
JRuby 1.7.3 is our third update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.
Changes of note:
- Security fix (no CVE) for DOS using entity expansion in REXML
- Security fix (CVE-2013-0269) for unsafe object creation using JSON
- Relicensed from CPL to EPL
- Fixed one regression in windows java native launcher
- A few encoding issues resolved
- 42 issues fixed for 1.7.3
Note: These next two sections are write-ups by Aaron Patterson on the security issues. JRuby 1.7.3 fixes both of these issues. You only need to be aware of workarounds if it is impossible for you to update JRuby to version 1.7.3.
Rexml DOS Fix
Impact
When reading text nodes from an XML document, the REXML parser can be coerced in to allocating extremely large string objects which can consume all of the memory on a machine, causing a denial of service.
Impacted code will look something like this:
document = REXML::Document.new some_xml_doc
document.root.text
When the text
method is called, entities will be expanded. An attacker can send a relatively small XML document that, when the entities are resolved, will consume extreme amounts of memory on the target system.
Note that this attack is similar to, but different from the Billion Laughs attack. This is also related to CVE-2013-1664.
All users running an affected release should either upgrade or use one of the work arounds immediately.
Workarounds
If you cannot upgrade Ruby, use this monkey patch as a workaround:
class REXML::Document
@@entity_expansion_text_limit = 10_240
def self.entity_expansion_text_limit=( val )
@@entity_expansion_text_limit = val
end
def self.entity_expansion_text_limit
@@entity_expansion_text_limit
end
end
class REXML::Text
def self.unnormalize(string, doctype=nil, filter=nil, illegal=nil)
sum = 0
string.gsub( /\r\n?/, "\n" ).gsub( REFERENCE ) {
s = self.expand($&, doctype, filter)
if sum + s.bytesize > REXML::Document.entity_expansion_text_limit
raise "entity expansion has grown too large"
else
sum += s.bytesize
end
s
}
end
def self.expand(ref, doctype, filter)
if ref[1] == ?#
if ref[2] == ?x
[ref[3...-1].to_i(16)].pack('U*')
else
[ref[2...-1].to_i].pack('U*')
end
elsif ref == '&'
'&'
elsif filter and filter.include?( ref[1...-1] )
ref
elsif doctype
doctype.entity( ref[1...-1] ) or ref
else
entity_value = DocType::DEFAULT_ENTITIES[ ref[1...-1] ]
entity_value ? entity_value.value : ref
end
end
end
This monkey patch will limit the size of the entity substitutions to 10k per node. REXML already defaults to only allow 10000 entity substitutions per document, so the maximum amount of text that can be generated by entity substitution will be around 98 megabytes.
JSON Security Fix CVE-2013-0269
Impact
When parsing certain JSON documents, the JSON gem can be coerced in to creating Ruby symbols in a target system. Since Ruby symbols are not garbage collected, this can result in a denial of service attack.
The same technique can be used to create objects in a target system that act like internal objects. These “act alike” objects can be used to bypass certain security mechanisms and can be used as a spring board for SQL injection attacks in Ruby on Rails.
Impacted code looks like this:
JSON.parse(user_input)
Where the user_input
variable will have a JSON document like this:
{"json_class":"foo"}
The JSON gem will attempt to look up the constant “foo”. Looking up this constant will create a symbol.
In JSON version 1.7.x, objects with arbitrary attributes can be created using JSON documents like this:
{"json_class":"JSON::GenericObject","foo":"bar"}
This document will result in an instance of JSON::GenericObject, with the attribute “foo” that has the value “bar”. Instantiating these objects will result in arbitrary symbol creation and in some cases can be used to bypass security measures.
PLEASE NOTE: this behavior does not change when using JSON.load
. JSON.load
should never be given input from unknown sources. If you are processing JSON from an unknown source, always use JSON.parse
.
All users running an affected release should either upgrade or use one of the work arounds immediately.
Workarounds
For users that cannot upgrade, please use the attached patches. If you cannot use the attached patches, change your code from this:
JSON.parse(json)
To this:
JSON.parse(json, :create_additions => false)
If you cannot change the usage of JSON.parse
(for example you’re using a gem which depends on JSON.parse
like multi_json), then apply this monkey patch:
module JSON
class << self
alias :old_parse :parse
def parse(json, args = {})
args[:create_additions] = false
old_parse(json, args)
end
end
end
Jira Issues resolved for 1.7.3
- JRUBY-7058 - NPE in BiVariableMap.getLocalVarNames() after clear()
- JRUBY-6887 - Thread.current.object_id inside an Enumerator is different from outside it
- JRUBY-7048 - Kernel#gsub is not available when -p/-n command line option specified.
- JRUBY-7068 - StringIO.open should accept any number of arguments
- JRUBY-7069 - Dir.home(nil) should be my home
- JRUBY-7079 - Uninitialized constant NameError should store a symbol and not a string
- JRUBY-6793 - Update bouncycastle jars to the latest version. (1.47)
- JRUBY-7081 - Thread.current does not remain consistent between Fibers
- JRUBY-7091 - Infinity should not be roundable :)
- JRUBY-7035 - Rails 4 master doesn't start on JRuby 1.7.1 (OpenSSL::PKCS5)
- JRUBY-7001 - maven jruby-rake-plugin classpath goal fails on windows
- JRUBY-7084 - Interaction between oh-my-zsh configuration and jruby shell script
Github Issues resolved for 1.7.3
- #537 - Add the complete text of the Eclipse Public License
- #536 - Fix occasionally failing spec.
- #534 - Fix Enumerable#find_each block arity
- #533 - Default indy off for early IBM Java 7 releases #477
- #532 - Current head switches on +indy before 1.7update14
- #529 - Combination of Enumerable#each_slice and Array#transpose raises TypeError
- #528 - fix samples/mvm.rb
- #526 - Move to EPL from CPL
- #525 - Unexpected behaviour of `Enumerator#find_index` with block (1.9 mode and HEAD)
- #519 - nailgun missing in src package
- #518 - Fix typos in "1.9/io/console.rb"
- #517 - Rational/Float/Fixnum/Bignum `.to_s.encoding` is US-ASCII
- #516 - krypt is not 1.8-compatible
- #512 - Update json to 1.7.6
- #511 - tty issue with drip
- #508 - added Junit test to help fixing bug #7058
- #506 - throw stringifies the name
- #504 - Infinite loop (or performance issue) writing using MultiByteEncoding
- #494 - FFI::MemoryPointer#free may cause JVM crashes
- #492 - Add missing throw to default_internal=.
- #485 - Resolve #482 Array#zip with infinite enum results in OOM
- #482 - Combination of Array#zip and Array#cycle result in OOM
- #479 - Fix write loss on concurrent ivar table growth
- #477 - IBM J9 VM should also have INVOKEDYNAMIC_DEFAULT = false
- #470 - Bignum#div raise ZeroDivisionError if the argument is Float zero
- #466 - Bunch of fixes for IO.copy_stream
- #465 - Add const_get to java package Fixes #435
- #464 - [rfc] Support unmarshaling hashes created in MRI 1.9.1 with US-ASCII strings
- #457 - Accept Encoding object for Encoding.compatible?
- #435 - support for const_get() in java_package_module_template
JRuby 1.7.2 Released
Friday, January 04 2013
The JRuby community is pleased to announce the release of JRuby 1.7.2
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.2 is our second update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The feedback we have gotten (along with patches) has ended up being a subtantial release.
Changes of note:
- Reworked openssl ext to allow updating from gem
- Improved performance of constants and global variables
- Improved performance of Java arrays accessed from Ruby
- Many miscellaneous 1.9 compatibility fixes
- 32 issues fixed for 1.7.2
Jira Issues resolved for 1.7.2
- JRUBY-6973 - Release jruby-openssl-0.8.0 gem
- JRUBY-7039 - net/protocol in Ruby 1.8 mode loads Ruby 1.9 version of socket
- JRUBY-6951 - Unable to encrypt data and then decrypt it in MRI Ruby
- JRUBY-7017 - OpenSSL::HMAC transcodes data to iso-8895-1 before signing
- JRUBY-7018 - sha1 library file, SHA1 top level class, and sha1 class method missing in Ruby 1.8 mode
- JRUBY-7032 - Time#strftime %3N doesn't limit sub-seconds to 3 digits
- JRUBY-7029 - add_parameter_annotation broken
- JRUBY-7037 - Files containing literal '[' or ']' will not be required from LOAD_PATH
- JRUBY-6953 - --ng-server fails if you have JRUBY_OPTS set
- JRUBY-7046 - unable to copy files > 2GB
- JRUBY-7043 - Test failures, again.
- JRUBY-7016 - There's a "t" missing in the output from --profile.json
Github Issues resolved for 1.7.2
- #473 - File.truncate should not move write pointer
- #467 - glib2 doesn't compile under jruby 1.9.7
- #452 - Implement loaded feature caching to reduce load path searching.
- #447 - Javadocs mangles some HTML in org.jruby.util.Pack
- #445 - Requiring an empty string causes AIOOB with RubyGems active
- #441 - jruby-7029: fix add_parameter_annotation, it was untested and broken.
- #440 - Constant lookup falls off top scope in new compiler scoping logic
- #439 - String#upcase and downcase fail for multibyte characters
- #436 - Fix Readline.get_screen_size before Readline.readline
- #434 - Update psych to tenderlove/psych@d5757ea
- #433 - strftime does not implement %-flag in 1.8 mode.
- #431 - Include runtime version in site dir
- #429 - Setup .gitattributes for eol normalization
- #428 - Directed graph library specs
- #427 - Don't override default_exec_format method for rubygems
- #426 - Trie impl is slower on JRuby than other Rubies
- #425 - Fixed implicitly creating a vertex if it is absent while removing a edge or vertex
- #360 - Non-ASCII character escape sequence in string_content results in SyntaxError
- #215 - 10 argument variant of `Time.local` mishandles timezone.
- #174 - [JRUBY-6668] StringScanner#scan_until spins forever on UTF-8 data
JRuby 1.7.1. Released
Monday, December 03 2012
The JRuby community is pleased to announce the release of JRuby 1.7.1
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.7.1 is our first update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The feedback we have gotten (along with patches) has ended up being a subtantial release.
We also addressed security vulnerability CVE-2012-5370 and stopped using MurmurHash2 as our hashing algorithm (now using same Hashing algorithm as Perl). All users are recommended to upgrade to JRuby 1.7.1.
Changes of note:
- New hashing algorithm to address CVE-2012-5370
- Update standard lib to match MRI patchlevel 1.9.3p327
- Several fixes to new io/console.rb implementation
- system/spawn/popen fixes and additional options hash fixes
- Several SSL fixes (jruby-openssl release coming soon for 1.6.8 users)
- IO.select not erroneously reporting data to be read
- Psych YAML engine updated to latest
- 43 issues fixed since 1.7.0
Jira Issues resolved since 1.7.0
- [JRUBY-5529] - [1.9] undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
- [JRUBY-5986] - $! is not set to nil in an ensure block where no exception is raised
- [JRUBY-6339] - JRuby can't load from JAR files on a path with a '#' symbol (breaks Tomcat 7 Parallel Deployment)
- [JRUBY-6346] - Error establishing SSL connections: OpenSSL::SSL::SSLError: Socket closed
- [JRUBY-6391] - undefined method `write_nonblock' for OpenSSL::SSL::SSLSocket
- [JRUBY-6581] - "yield called out of block" for Enumerators created with enum_for
- [JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors don't accept File objects
- [JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
- [JRUBY-6777] - RubyFixnum.java - two methods fail to detect some long integer overflows
- [JRUBY-6870] - IO.select says there is data but read_nonblock raises 'read would raise' using SSLSocket
- [JRUBY-6949] - system() silently fails when options are passed
- [JRUBY-6954] - Time.new does not respect UTC offset in the 7-argument form
- [JRUBY-6960] - Failure to start ant from JRuby 1.7.0*
- [JRUBY-6961] - Loading jruby-openssl gem on jruby-1.7.0 can cause "private method `verify_mode' called for #<OpenSSL::SSL::SSLContext..." error
- [JRUBY-6962] - Unimplemented methods OpenSSL::PKCS7#type=, OpenSSL::PKCS7#add_data
- [JRUBY-6963] - PKCS7 structures that have their content encapsulated in a sequence are not imported correctly
- [JRUBY-6964] - DateTime#to_time creates wrong Time objects sometimes
- [JRUBY-6978] - try/rescue should treat native Exceptions like rubys StandardError
- [JRUBY-6983] - UNIXServer.open ignores the block arg
- [JRUBY-6984] - OpenSSL::X509::Name.parse raises NullPointerException
- [JRUBY-6987] - Ruboto build failures with recent master
- [JRUBY-6994] - exec() in chdir block doesn't inherit cwd
- [JRUBY-6995] - Raising an Exception from #each wrapped in Enumerator.new results in StopIteration
- [JRUBY-6997] - Newline in UTF-16 (BE and LE) incorrect under windows
- [JRUBY-6998] - IO::NULL undefined (should be === File::NULL)
- [JRUBY-6999] - Encoding from Windows-1252 to UTF-8 results in transcoding error
- [JRUBY-7000] - to_path should be unconditional
- [JRUBY-7002] - File.join does not handle '\' on Unix systems properly
- [JRUBY-7004] - Implement Etc.sysconfdir and Etc.systmpdir
- [JRUBY-7008] - Undefined method `search_convpath' for Encoding::Converter:Class
- [JRUBY-6935] - Update 1.9 stdlib to p286
- [JRUBY-6976] - byte[] should have a to_s method
Github Issues closed since 1.7.0:
- #404 Use canonical_name instead of full_name
- #400 Update 'json' library.
- #398 JRuby 1.7.0 unix sockets - 100% CPU - worked in preview2
- #390 New FFI::IO.for_fd fails on Linux (and possibly other platforms)
- #207 JRuby 1.7 Bundles Invalid Bouncy Castle Security Provider openssl
- #198 Inheriting from BigDecimal returns incorrect class
- #349 Improved support for Server Name Indication (SNI)
- #178 JRUBY-2724: I've added some tests and I tried to fix unc pathing
- #326 JSON format profile printer (additions)
- #313 Math.atan 0.0/0.0 core
JRuby 1.7.0. Released
Monday, October 22 2012
The JRuby community is pleased to announce the release of JRuby 1.7.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
After a long journey (1.5 years..oh my) we have released JRuby 1.7.0. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And JRuby now defaults to 1.9 mode, with compatibility level targeting Ruby 1.9.3.
We know that there are still pieces of 1.9 support we don’t have yet, like Ripper, but we are at a stable point where people can use JRuby in 1.9 mode to host production applications. At this point, we plan on putting out point releases of 1.7.x every 2-3 weeks for the foreseeable future. These point releases will be made to address any reported problems users run into; and also to fill out the few missing 1.9 libraries not yet finished.
JRuby 1.7 is the first JRuby to support the new “invokedynamic” feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. https://github.com/jruby/jruby/wiki/PerformanceTuning
- 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
- Ruby standard library updated to 1.9.3p286
- Many 1.9.x compatibility fixes
- Support for invokedynamic
- Performance and concurrency improvements throughout
- Java 5 support dropped (Java 6+ required)
- All known 1.9 encoding issues resolved
- Kernel#exec now does a true native exec on all platforms
- Improvements and fixes to Java integration and embedding
- Native features now better supported on Solaris, ARM Linux, and others
- Update to Rubygems 1.8.24
- Update to Rake 0.9.2.2
Issues resolved since RC2:
- [JRUBY-3294] - Ruby code can make JRuby fail with java.lang.ArrayIndexOutOfBoundsException, Stack trace of SystemStackError is errorneous
- [JRUBY-6732] - FFI+InvokeDynamic and wrong number of arguments produces java backtrace
- [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
- [JRUBY-6811] - Time.at rounding errors below milliseconds
- [JRUBY-6845] - FFI: IndexError in AbstractMemory#write_string
- [JRUBY-6857] - Upgrade to newer Joda-time version
- [JRUBY-6904] - IO.popen '' throws wrong exception
- [JRUBY-6907] - Regression: ruby,java(thread),ruby exception path results in nilClass exception
- [JRUBY-6917] - "already initialized constant ClassReader" when embedding JRuby
- [JRUBY-6923] - UTF-8 string is not matching //i properly
- [JRUBY-6926] - zlib corruption in 1.9 mode
- [JRUBY-6930] - yaml escaping of non-printable characters
- [JRUBY-6932] - ruby block without arguments for itemStateChanged in 1.9 can fail
- [JRUBY-6933] - String#split fails after doing a regex on UTF-8 chars.
- [JRUBY-6936] - JRuby doesn't seem to run on ARMv5-platform
- [JRUBY-6937] - unable to use JAVA_HOME pointed to a jre in windows 7
- [JRUBY-6946] - Object.id still exists in 1.7.0.RC2
- [JRUBY-6947] - Call to "free" wrapped up via FFI causes JVM to exit with a malloc error.
- [JRUBY-6952] - Time#+ gives off-by-one error with fractional microseconds
- [JRUBY-6906] - error message for Process.kill 'EXIT' is wrong
Jira Issues resolved for RC2:
- [JRUBY-5732] - Error with selector: java.nio.channels.ClosedChannelException
- [JRUBY-6140] - Net::POP3 (and possibly other things) cannot verify certificate using JRE's trust anchors
- [JRUBY-6510] - String#encode! not correctly implemented.
- [JRUBY-6804] - Jruby cannot work with sendmail in a rails environment (or IO.popen does not function in jruby)
- [JRUBY-6838] - Kernel#rand(Range) not supported
- [JRUBY-6912] - __FILE__ has an extra preceding slash in windows
- [JRUBY-6913] - with jdk 7, system commands run in windows use wrong line endings
- [JRUBY-6914] - Rake Tasks no longer work with Bundler under JRuby 1.7.0.RC1
- [JRUBY-6918] - Ant: "instance vars on non-persistent Java type Java::OrgApacheToolsAnt::UnknownElement"
- [JRUBY-6922] - Regexp#match interpets pos parameter in term of bytes instead of chars
- [JRUBY-6942] - gets returns nil very early in the process lifetime.
- [JRUBY-5451] - Unessesary late error message when subclassing a packaged class with no public constructors.
- [JRUBY-6915] - Improve performance of the Equals operator in the RubyComparable class for objects of different types.
Jira Issues resolved for RC1:
- [JRUBY-3765] - DummyDynamicScope should never be used for backref storage
- [JRUBY-5226] - ri error while installing Rails -- Cannot create a file named '<'
- [JRUBY-5318] - syntax error in jruby unix startup
- [JRUBY-5583] - Profiling should not bomb out trying to find method name
- [JRUBY-5615] - __FILE__ corrupts cyrillic characters
- [JRUBY-5623] - Enumerable doesn't wrap objects properly
- [JRUBY-5675] - Difference in include behaviour in --1.9 mode
- [JRUBY-5697] - Kernel#rand implementation does not match mri and rbx
- [JRUBY-5700] - Segmentation fault - IBM JDK
- [JRUBY-5804] - First call of Time.now is slow and confuses benchmark result
- [JRUBY-5848] - jruby-core maven artifact has broken dependencies
- [JRUBY-5908] - exec regression in windows since 1.6.0 (?)
- [JRUBY-6026] - OS X install postfligh script does not work with (t)csh
- [JRUBY-6074] - Re-release jruby-win32ole with Java 5
- [JRUBY-6106] - JRuby 1.9 coverage library reports different results than ruby 1.9
- [JRUBY-6360] - invokedynamic performance degradation on a certain workload
- [JRUBY-6550] - [1.9] yield yields incorrect args when splatted args passed as 2nd arg to yield
- [JRUBY-6568] - A Proc on a symbol like (&:first) works in 1.8, but not in 1.9 mode
- [JRUBY-6578] - File.readlink with chdir
- [JRUBY-6595] - segfault with win32/registry
- [JRUBY-6632] - BigDecimal.new fails when passed anything but string (Float, BigDecimal, Fixnum)
- [JRUBY-6640] - stat.st_gid unsupported or native support failed to load org/jruby/RubyFileStat.java:432
- [JRUBY-6773] - ERB parsing in JRuby 1.6.6
- [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
- [JRUBY-6810] - YAML.load(YAML.dump(lambda{})) should raise TypeError
- [JRUBY-6824] - Missing files/dirs in source tarball/zip
- [JRUBY-6825] - ClassReader ClassNotFoundException in verbose mode on jruby-1.7.0-preview2
- [JRUBY-6827] - ClassCastException with DummyDynamicScope in String#rpartition? with -X+C
- [JRUBY-6828] - TypeError when returning non-nil from a proc called from Java by interface
- [JRUBY-6831] - Enumerator combined with reduce using symbols fails
- [JRUBY-6832] - self is wrong in set_trace_func when raising NoMethodErrors
- [JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL byte
- [JRUBY-6836] - Strange interactions between a break statement and ensure blocks
- [JRUBY-6837] - Encoding Problems in Rails 3.2
- [JRUBY-6839] - issuing 'jruby -v' causes Java exception "Ruby: org.objectweb.asm.ClassReader java.lang.ClassNotFoundException: org.objectweb.asm.ClassReader"
- [JRUBY-6840] - Java package class calls no longer working in 1.7.0-pre2
- [JRUBY-6843] - Encoding::UndefinedConversionError when reading from IO stream given by open-uri's Kernel#open()
- [JRUBY-6849] - pp Object.new shows 0x0000000 instead of a unique number for each object.
- [JRUBY-6851] - IO#set_encoding doesn't work with Encoding object
- [JRUBY-6852] - Setting compile mode when using ScriptingContainer
- [JRUBY-6854] - EXCEPTION_ACCESS_VIOLATION
- [JRUBY-6855] - Signal.list missing 'KILL' on Windows
- [JRUBY-6858] - OpenSSL::HMAC missing reset method
- [JRUBY-6859] - java.lang.ArrayIndexOutOfBoundsException when using --profile.api . MAX_PROFILE_METHODS too low?
- [JRUBY-6860] - String#slice on strings with multibyte chars fails
- [JRUBY-6863] - multibyte strings after String#slice get wrong result on String#index(rindex)
- [JRUBY-6865] - JRuby allows invalid attr_accessor (MRI raises exception)
- [JRUBY-6867] - Parsing issues with long lines
- [JRUBY-6868] - Exceptions thrown when running with Coverage enabled
- [JRUBY-6871] - Encoding::UndefinedConversionError when dropping a mongo database with Mongoid 3
- [JRUBY-6872] - Behavior of Math.sqrt(Float::NAN) does not match MRI
- [JRUBY-6875] - JRuby should load "some_path/some_file.jar.rb" if "some_path/some_file.jar" is required and "some_path/some_file.jar" does not exist.
- [JRUBY-6884] - Unexpected stack trace using ARM based linux
- [JRUBY-6885] - method_missing and private methods behave differently
- [JRUBY-6888] - Loading a newer joda-time seems to not work
- [JRUBY-6892] - Calling #drop on an Enumerator doesn't work properly
- [JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent generator_internal
- [JRUBY-6896] - nil treated as 0 in call to Thread#join
- [JRUBY-4516] - Load a properties file for distribution-presets
- [JRUBY-4517] - Allow property to override the binary directory
- [JRUBY-5380] - Use Hotspot-specific features for calculating CPU time when available
- [JRUBY-6275] - double locking a mutex could use a better error message, line number
- [JRUBY-6890] - Rework paths to be similar to MRI + redefinable + defined in one place only
- [JRUBY-6835] - A way to send a block of code across processes.
- [JRUBY-6883] - Enable subclassing of Java classes on Dalvik
Jira Issues resolved for preview2:
- [JRUBY-4107] - Java method selection is subject to reflection ordering
- [JRUBY-5053] - memory leak in rubygems
- [JRUBY-5082] - exec() would be more useful if it really exec()ed
- [JRUBY-5529] - [1.9] undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
- [JRUBY-5691] - gem update --system wipes out RubyGems Maven support
- [JRUBY-5753] - Library `fcntl' can not be loaded on Solaris/Weblogic (JRuby 1.6.1) -> NullPointerException
- [JRUBY-5785] - BUG: invoking UndefinedMethod.call
- [JRUBY-5899] - NotImplementedError: Process::Status#exited? not implemented
- [JRUBY-5902] - STDIN.gets under cygwin doesn't work
- [JRUBY-5939] - [:space:] does not match unicode 0x3000: fullwidth whitespace
- [JRUBY-6024] - Platform.getPackageName() NPE when embedded.
- [JRUBY-6056] - High CPU Loop with parallel Etc.group iterrations
- [JRUBY-6121] - Local variables cross eval scopes
- [JRUBY-6124] - Yielding no values to a block gives ArrayIndexOutOfBoundsException
- [JRUBY-6125] - Yielding a single object to a block with |a, b| arguments does not call #to_ary
- [JRUBY-6148] - UnsatisfiedLinkError on Solaris
- [JRUBY-6181] - SSH Agent forwarding does not work with jRuby (which lets capistrano ssh-deployments fail)
- [JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN: Resource temporarily unavailable
- [JRUBY-6253] - IBM JVM rejects class/method names with #, as in our JIT recently.
- [JRUBY-6286] - jnr-posix WindowsHelpers.isBatch Always Returns False
- [JRUBY-6299] - Slow perf in String#split or #join on 1.9 mode
- [JRUBY-6317] - YAML can't parse some valid unicode characters
- [JRUBY-6330] - Performance degradation in Time.strptime with invokedynamic
- [JRUBY-6376] - File.stat.size on Solaris: ridiculously large results
- [JRUBY-6395] - Coerce Fixnum to Number
- [JRUBY-6428] - Regression: Float#to_d doesn't work on 1.7 (did in 1.6)
- [JRUBY-6459] - JRuby head causes rack response to change behaviour
- [JRUBY-6465] - out of memory building c extensions
- [JRUBY-6481] - AccessControl exceptions attempting to create JRuby instances in applet
- [JRUBY-6493] - Calling dynamically defined method throws Java::JavaLang::NullPointerException or returns nil without executing method body
- [JRUBY-6494] - File#directory? always returns false on Solaris
- [JRUBY-6495] - java.nio.ByteBuffer.wrap throws java.lang.IndexOutOfBoundsException
- [JRUBY-6514] - java.lang.NullPointerException when using ScriptingCotainer from an Appletjava.lang.NullPointerException
- [JRUBY-6521] - With Java 7, nailgun client cannot list local gems more than once
- [JRUBY-6525] - FFI bug with Solaris JRuby >=1.6.6
- [JRUBY-6532] - ftp.nlst, ftp.ls doesn't work on JDK 7u3
- [JRUBY-6548] - REXML error when reading files containing ISO-8859-1 encoded data
- [JRUBY-6552] - File.directory? does not work under 1.9 mode on Solaris
- [JRUBY-6553] - Application continues running after throwing out of memory exception in Thread.
- [JRUBY-6613] - special characters like umlauts make Kramdown hang (works with MRI Rubies)
- [JRUBY-6615] - File.open ignores specified external encoding
- [JRUBY-6620] - On windows if JAVA_HOME ends in a '\' then native launcher bombs
- [JRUBY-6638] - Multicast UDPSocket send does not work with host and port
- [JRUBY-6639] - Marshal.load takes forever when deserializing Rails unicode db in WEBrick
- [JRUBY-6658] - Problem when setting up an autoload entry, defining a class via require, then redefining the autoload entry
- [JRUBY-6663] - `jruby -S bundle exec rails c` fails with "Bundler: command not found"
- [JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
- [JRUBY-6666] - Open3.popen3 failing due to missing handling for [path, argv[0]] array
- [JRUBY-6674] - Inconsistent java method/signature choosing depending on java version/platform
- [JRUBY-6677] - open("|something", "w") does not open in write mode
- [JRUBY-6678] - compilation fails for CC="ccache gcc"
- [JRUBY-6679] - Encoding.default_external discrepancy between JRuby and MRI
- [JRUBY-6682] - ' jgem search -r ak ' causes exceptions.
- [JRUBY-6685] - Encoding problem when using JRuby 1.7.0.preview1 + Nokogiri under Windows
- [JRUBY-6686] - JRuby/RSolr - BLOCKED on org.jruby.internal.runtime.methods.InvocationMethodFactory.getCompiledMethod
- [JRUBY-6693] - Get the terminal width with JRuby
- [JRUBY-6694] - Invalid byte sequence in utf-8
- [JRUBY-6701] - Net::HTTP ignore JSE defined HTTP Proxy options
- [JRUBY-6702] - File.utime does not check file permissions
- [JRUBY-6703] - Remove Enumerable#join from 1.9 mode
- [JRUBY-6705] - Error during gem loading in Rails: ActiveRecord is not missing constant Base
- [JRUBY-6706] - Collections.shuffle works incorreclty on Ruby arrays
- [JRUBY-6707] - JRuby master (1.7) is LOT slower than jRuby 1.6.7 & MRI in generating tictactoe game tree
- [JRUBY-6708] - NullPointerException instead of proper exceptions output
- [JRUBY-6709] - ffi problems on 1.7.0.preview1?
- [JRUBY-6711] - JRuby 1.7 needs a formal release of jline
- [JRUBY-6713] - win32/registry.rb warning
- [JRUBY-6715] - jruby-openssl cert validation fails on windows
- [JRUBY-6717] - jruby1.7.0preview1 doesn't work on Windows with jdk7
- [JRUBY-6718] - crash with java.lang.invoke.WrongMethodTypeException
- [JRUBY-6721] - probably extraneous warning message generated
- [JRUBY-6722] - Can't instantiate ThreadGroup subclass with arguments
- [JRUBY-6724] - NO_FILE_CLASS Profile does disables File but not FileStats that depends on File
- [JRUBY-6725] - NameError: uninitialized constant RubyVM
- [JRUBY-6729] - [1.9] block argument to yield method is not correctly pass to a block. -- pp's seplist method
- [JRUBY-6731] - Can't load class files in WARs compiled by warbler using jruby 1.7.0.preview1
- [JRUBY-6734] - Socket.new seems broken -- throws exceptions on valid params
- [JRUBY-6735] - FileUtils.chmod broken for symlinks
- [JRUBY-6737] - Cannot use rspec with JRuby 1.7
- [JRUBY-6739] - Does not read UTF-16 properly
- [JRUBY-6740] - BasicObject.respond_to? raises a "undefined method `respond_to_missing?'"
- [JRUBY-6741] - Inconsistent == on java.lang.Integer between Mac and RedHat Enterprise Linux
- [JRUBY-6742] - ant dist aborts on non-Mac hosts
- [JRUBY-6745] - ClassCastException calling Fixnum#== with a Java Integer
- [JRUBY-6746] - OpenSSL 'connect_nonblock' missing/broken in 1.6.7 and 1.7.0.preview1
- [JRUBY-6748] - Race condition still in thread list
- [JRUBY-6753] - class_eval should inherit __name__ from the caller
- [JRUBY-6755] - Test suite failure: Unable to resolve dependencies: rdoc requires json (~> 1.4)
- [JRUBY-6760] - ArgumentError output
- [JRUBY-6761] - NoMethodError: undefined method `recvfrom' for #<Socket:fd>
- [JRUBY-6764] - Ascii or UTF-8 Encoding ascii substrings that originated from binary string causes an exception to be thrown.
- [JRUBY-6766] - --profile slows down Array#join , which distorts profiling results
- [JRUBY-6768] - Instance variable value is lost under certain circumstances
- [JRUBY-6769] - Curried lambda/proc does not work correctly with Array.map
- [JRUBY-6774] - wrong exception class thrown when opening file after Dir.chdir
- [JRUBY-6775] - RubyRandom is not thread-safe
- [JRUBY-6776] - Array#join(nil) should use $, as a separator for compatibility
- [JRUBY-6778] - Possible long integer overflow bug in Integer#succ in RubyInteger.java
- [JRUBY-6779] - Strange behaviour of some Integer Ranges with Range#each - maybe an integer overflow problem?
- [JRUBY-6780] - File.open creates file without permissions
- [JRUBY-6782] - load path doesn't respect rubygems when invoked from command line
- [JRUBY-6784] - Wrong arg passed with lambda with splat
- [JRUBY-6785] - NoMethodError calling callMethod on instance of reopened Java class
- [JRUBY-6786] - opening the singleton class of an exception breaks equal and inspect
- [JRUBY-6788] - Missing prompt in rails console
- [JRUBY-6791] - RuntimExceptions with a Ruby Exception as cause will not print out complete stacktrace
- [JRUBY-6792] - Occasional java.lang.ArrayIndexOutOfBoundsException calling ScriptingContainer#runScriptlet
- [JRUBY-6801] - bundle exec no longer works
- [JRUBY-6802] - JSON generation for largish data structures v. slow under 1.7 (JDK 1.6)
- [JRUBY-6803] - Reading thousands of files significantly slower with JRuby 1.7
- [JRUBY-6808] - org.jruby.ext.ffi.Platform does not determineCPU or determineOS properly on Turkish
- [JRUBY-6809] - Time::utc sub-millisecond inaccuracy, causes incorrect date in Rails
- [JRUBY-6812] - 1.7 regression handling Java exceptions
- [JRUBY-6815] - IO.read doesn't work with pipes
- [JRUBY-6819] - java.lang.ArrayIndexOutOfBoundsException in String#each_line
- [JRUBY-6820] - Unexpected behavior of IO.popen when giving arguments as an array containing strings
- [JRUBY-6821] - FFI::Pointer#write_string is missing
- [JRUBY-6822] - Net::HTTP SSL connections fail with EAGAIN
- [JRUBY-6853] - Range with float min max discrepancy
- [JRUBY-6866] - YAML.parse in 1.8 and 1.9 mode cannot parse trailing tabs
- [JRUBY-6424] - Allow java_signature to generate throws clause for methods/constructors
- [JRUBY-6688] - Tempfile#{unlink,delete} should warn or actualy do something
- [JRUBY-6697] - JRuby 1.7 should report 1.9 as default
- [JRUBY-6714] - require 'java' in verbose mode causes circular dependency warning
- [JRUBY-6813] - Implement Time#round
- [JRUBY-6862] - JRuby.runtime doesn't exist in 1.7 preview2
- [JRUBY-6816] - jffi 1.2 jar files for FreeBSD
- [JRUBY-6789] - Test for embedded JRuby are not run by CI
- [JRUBY-6762] - How to detect if a Ruby method has been defined using ScriptingContainer
Jira Issues resolved for preview1:
- [JRUBY-928] - Java arrays don't inherit from java.lang.Object in Rubified Java class hierarchy
- [JRUBY-2317] - File writing is slower in JRuby than MRI
- [JRUBY-3293] - Cannot reopen a class from an included module
- [JRUBY-3519] - Wrong work replacement char with russian charset
- [JRUBY-3812] - Socket::gethostbyname does reverse DNS lookup for IP address and is slow if no DNS reverse lookup reply is received
- [JRUBY-3957] - Not possible to 'rescue' exception caused by illegal argument involving a static field
- [JRUBY-3986] - File inconsistency handles file:/// URLs pointing to things inside a JAR
- [JRUBY-4105] - Rubyspec: SimpleDelegator send spec fails due to bug in 1.8.7 stdlib
- [JRUBY-4115] - cipher.rb:24: superclass must be a Class (Module given) (TypeError)
- [JRUBY-4220] - File.dirname(__FILE__) doesn't return correct value when a script is loaded from classpath
- [JRUBY-4291] - UNIXServer#accept can't be interrupted by kill/raise
- [JRUBY-4339] - Kernel.load with wrap=true does not protect the global namespace of calling program
- [JRUBY-4484] - jruby -rtracer doesn't trace
- [JRUBY-4605] - RubyIO#select puts connectable sockets in the read set instead of write set
- [JRUBY-4626] - Gaps in STDIN pipe stream if backtick is used
- [JRUBY-4717] - [1.9.2] New digest methods are missing (base64digest and base64digest!)
- [JRUBY-4771] - InvokeDynamic's CallSite now takes only MethodHandle in constructor
- [JRUBY-4843] - COPYING file is (partially) incorrect and outdated
- [JRUBY-4887] - Problem with ja_JP.eucJP locale
- [JRUBY-4995] - On Windows, Socket constants do not agree with MRI's, and BasicSocket#setsockopt fails when MRI does not.
- [JRUBY-5090] - java class objectId() overrides .object_id
- [JRUBY-5178] - Incorrect SSLSocket implementation loaded despire require 'jruby/openssl/gem_only' statement.
- [JRUBY-5189] - [1.9] invalid byte sequence in UTF-8
- [JRUBY-5201] - [1.9] uncaught timeout seems to cause silent failure
- [JRUBY-5222] - Reopening a file descriptor on a socket doesn't work (gives "could not reopen: null (IOError)")
- [JRUBY-5279] - assert_raise fails on native exceptions
- [JRUBY-5317] - Objects loaded via Marshal don't get Java class applied corrected unless passed through fn taking exact type
- [JRUBY-5320] - require needs to treat case-insensitive file paths in LOADED_FEATURES as case-insensitive for searching purposes
- [JRUBY-5348] - Process.spawn should fail if wrong args passed
- [JRUBY-5375] - [1.9] Add "Mark" features to Psych
- [JRUBY-5428] - redblack benchmark slower than it should be
- [JRUBY-5435] - mkdir_p wrongfully encodes directory names when ran from a Jar
- [JRUBY-5446] - jcodings no longer in sync with current data 1.9.2 is using
- [JRUBY-5459] - JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
- [JRUBY-5512] - regular expressions + regexp = incorrect results.
- [JRUBY-5547] - add String#byteslice() method
- [JRUBY-5560] - JRuby does not detect unix socket
- [JRUBY-5622] - Regex string interpolation breaks unicode properties
- [JRUBY-5630] - Java calls have lost the Java part of the trace
- [JRUBY-5643] - [1.9] Array#map and Array#collect produce the same enumerator; should be specific to the method called
- [JRUBY-5647] - Missing method Socket::ip_address_list
- [JRUBY-5650] - running "ruby" inside a rake task ignores JRUBY_OPTS
- [JRUBY-5665] - RubySpec: String#scan failures
- [JRUBY-5678] - tmpdir cannot be delete when jruby has sudo/root rights
- [JRUBY-5681] - jruby doesn't fork the backtick command when the command is jruby
- [JRUBY-5708] - IO.select does not block on unix sockets
- [JRUBY-5726] - FileUtils#cp (ultimately FileStat.identical? implementations) breaky on Windows
- [JRUBY-5742] - Fails to use UTF-8 encoded source with BOM.
- [JRUBY-5745] - MethodFactory impls do not set NativeCall
- [JRUBY-5762] - Proc#=== is not same as Proc#call in 1.9 mode.
- [JRUBY-5774] - [ruboto] unsupported Java version: 0.9
- [JRUBY-5775] - [ruboto] Dir[] gives empty array when listing files below the root of the apk
- [JRUBY-5779] - $LOADED_FEATURES is updated before loading finished
- [JRUBY-5792] - Eval error for hashes containing symbols ending with an equals sign
- [JRUBY-5811] - jruby 1.9 fails to load irb
- [JRUBY-5813] - FFI::AutoPointer occasionally calls releaser proc when GC'd, even if autorelease is set to false
- [JRUBY-5823] - jruby -x bug
- [JRUBY-5835] - [ruboto] File#read fails with jruby-jars-1.6.2
- [JRUBY-5842] - NullPointerException when calling any method on Fiber.current if not explicitly in a created Fiber
- [JRUBY-5852] - Can't serialize RubyModule, subclass of RubyBasicObject, which extends Serializable
- [JRUBY-5863] - Named captures cause crash when there is no match
- [JRUBY-5866] - JRuby can't access nested Java class if the class is called 'id'
- [JRUBY-5874] - Kernel#` and Kernel#system didn't correctly glob when using ruby
- [JRUBY-5876] - Socket#syswrite (the non-buffered one) raises SystemCallError on broken pipe
- [JRUBY-5878] - Enumerator.map is not yielding all values
- [JRUBY-5881] - Update to jnr-constants 0.8
- [JRUBY-5943] - Platform.IS_OPENVMS is unknown in jorg.jruby.ext.posix.util.Platform
- [JRUBY-5953] - rvm jruby 1.6.3 freezes after issued `irb` or
- [JRUBY-5955] - maven build of JRuby 1.6.3 fails on Linux Fedora 15
- [JRUBY-5964] - Digest::Base#file does not handle Pathname as parameter when ran in 1.9
- [JRUBY-5968] - Mac OSX ant dist failure w/ patch
- [JRUBY-5973] - Failure to connect to Nailgun server produces confusing error
- [JRUBY-5977] - test_rubyopts_rubygems_cleared_in_child test failure w/ patch
- [JRUBY-5981] - Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
- [JRUBY-5987] - Regression: IncludedModuleWrapper does not delegate to new Module autoload map
- [JRUBY-5988] - Hash.inspect in --1.9 results in ASCII-8BIT encoding
- [JRUBY-5989] - MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
- [JRUBY-5995] - `Readline::HISTORY << str` and push should return HISTORY
- [JRUBY-5996] - gem update --system crashes with NPE
- [JRUBY-6031] - ActiveRecord::JDBCError in JRuby 1.6.4
- [JRUBY-6035] - Randomly changed hash key in overriden []= method in Hash inherited class
- [JRUBY-6037] - org.objectweb.asm.ClassReader is not found under some circumstances.
- [JRUBY-6043] - Fix for JRUBY-5965 breaks Mirah macro compilation
- [JRUBY-6048] - Array#repeated_permutation(n) enumerates nothing when n is greater than the length
- [JRUBY-6058] - JRuby 1.6.4 incompatible with Google App Engine
- [JRUBY-6062] - [ruboto][regression] Increased stack usage
- [JRUBY-6068] - Trunk Build Failure for install_dist_gems task
- [JRUBY-6070] - TCPSocket#new issues with local_addr and local_port
- [JRUBY-6071] - IO.select returning arrays with nil elements
- [JRUBY-6075] - ant dist fails on both master and jruby-1_6 branches
- [JRUBY-6076] - Mixed-case Java package name not resolved
- [JRUBY-6100] - NameError Exception if I try to use syck as YAML engine
- [JRUBY-6101] - JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
- [JRUBY-6103] - allocator undefined for NativeException
- [JRUBY-6108] - bin/jruby script has incompatible bourne shell syntax
- [JRUBY-6110] - Security issue with org.jruby.embed.class.path in unsigned JavaFX applet.
- [JRUBY-6119] - Loading a Ruby source file from a subdirectory of a JAR without a directory entry fails
- [JRUBY-6127] - Magic comment should start in column 1
- [JRUBY-6129] - Multiple assignment with splatted LHS fails to call #to_ary on corresponding object
- [JRUBY-6130] - hash#update calls to_hash method on frozen object (in 1.9 mode)
- [JRUBY-6131] - Integer#round can effectively hang jruby for large negative arguments in --1.9 mode
- [JRUBY-6137] - Small Leak in Fileno Bookkeeping For STDIO RubyIOs
- [JRUBY-6141] - All MatchData objects resulting from an invocation of String#scan are updated with the current match
- [JRUBY-6143] - [1.9] [RubySpec] Regexp Spec failures with /n
- [JRUBY-6149] - Some native exceptions are wrapped too agressively
- [JRUBY-6165] - IO.popen forcibly kills process when io is closed
- [JRUBY-6172] - Requiring a file from a JAR that has a path inside the JAR that coincides with a path on the file system that includes a symlink fails
- [JRUBY-6180] - "SystemCallError: Unknown error - Connection reset by peer" should be mapped to Errno::ECONNRESET
- [JRUBY-6199] - JRuby is hardcoded to use '-mmacos-version-min=10.4' which is not compatible with '-rpath' being used
- [JRUBY-6202] - JIT-ed class names only use method names, causing collisions
- [JRUBY-6204] - UTF-8 char in XML hangs in Joni
- [JRUBY-6221] - json gem encoding/decoding is 2x slower than under MRI
- [JRUBY-6227] - [1.9] Struct#members and Struct::members should return an Array of Symbols in 1.9
- [JRUBY-6234] - Kernel.system doesn't work with environement parameters
- [JRUBY-6237] - Allow the syntax `a = b = f 1`
- [JRUBY-6239] - unable to silence warnings
- [JRUBY-6245] - `ant test` errors on Windows with test_dir_with_jar_without_dir_entry.rb
- [JRUBY-6248] - thread leak
- [JRUBY-6250] - When executing an Ant build.xml file, the Ant executable should not be required to live on the environment's $PATH
- [JRUBY-6251] - NailGun and 1.9 seem not to be usable at the same time ( --1.9 and --ng)
- [JRUBY-6259] - ant test - fails in WinXP: (LoadError) no such file to load -- jruby
- [JRUBY-6265] - Setting load path on ScriptingContainer with LocalContextScope.SINGLETON does not work
- [JRUBY-6266] - Unicode encoding problem in CSV.foreach
- [JRUBY-6269] - JRuby --1.9 cannot load YAML output from JRuby --1.8
- [JRUBY-6277] - Dependency to compiler package from org.jruby.Ruby breaks Ruboto
- [JRUBY-6278] - [dev only] Double require bug in the handling of concurrent requires
- [JRUBY-6279] - Invokedynamic support is missing 'float_op_equal'
- [JRUBY-6280] - Fails to open fifo for writing.
- [JRUBY-6281] - [1.9] Applet does not work in the 1.9 mode
- [JRUBY-6282] - Colon is not allowed in a file name on Windows
- [JRUBY-6283] - Master crashes when calling an FFI-attached C library function
- [JRUBY-6284] - Calls to Kernel#exit result in an exception printed on stderr
- [JRUBY-6285] - JRuby 1.7 master on Java7u2 is *slower* running a benchmark than master on Java6
- [JRUBY-6291] - Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
- [JRUBY-6292] - Massive perf degradation in pack after ByteList update
- [JRUBY-6293] - jruby-dist-master does not build C extensions
- [JRUBY-6295] - Dir.chdir, $HOME and $LOGDIR behavior
- [JRUBY-6300] - TestMethodmissing testcase fails with Java 7
- [JRUBY-6301] - scripting_lang.jruby:undefined method in test_loop_1_9.rb
- [JRUBY-6305] - C Extension fails to build
- [JRUBY-6307] - Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
- [JRUBY-6313] - jruby-launcher rspecs fail on ubunutu
- [JRUBY-6318] - Tempfile#open does not return the value of the block given to it
- [JRUBY-6320] - "bom|utf-8" File encoding not supported in 1.9 mode
- [JRUBY-6325] - Java::OrgYamlSnakeyamlReader::ReaderException: special characters are not allowed
- [JRUBY-6327] - java.lang.StringIndexOutOfBoundsException: String index out of range: 1
- [JRUBY-6328] - [Ruboto][regression] LoadError with master
- [JRUBY-6341] - Regression: Enumerable#first on a Java list returns an array, not an element
- [JRUBY-6343] - Running Webrick in 1.9 mode is causing IllegalMonitorStateException
- [JRUBY-6344] - Embedded \r should not be treated as end of comment line
- [JRUBY-6349] - Running 'ant clean-all' in git-free environments fails
- [JRUBY-6371] - Mac OS X installer missing from snapshots directory
- [JRUBY-6378] - cext fails to compile on 64-bit Ubuntu Oneirc
- [JRUBY-6386] - time.localtime not taking any arguments
- [JRUBY-6389] - TypeError: can't convert Pathname into String - JRuby in 1.9 mode not handling Pathname in $LOAD_PATH consistently with MRI
- [JRUBY-6394] - Socket.new takes symbolic protocol, etc
- [JRUBY-6401] - Psych::SyntaxError while installing some gems in 1.9 mode
- [JRUBY-6413] - jruby gem install chops off first character from files it extracts
- [JRUBY-6417] - exception in rake assets:precompile in jruby-1.6.6
- [JRUBY-6419] - GzipReader encodings still not right; breaks "gem install"
- [JRUBY-6421] - installing jruby-launcher fails with wrong filenames (zlib error apparently)
- [JRUBY-6438] - "TypeError: can't convert Array into String" from ffi code in 1.9 mode
- [JRUBY-6439] - cext: Memory leak in String and Array handling
- [JRUBY-6449] - connect_nonblock + select needs to eventually finishConnect
- [JRUBY-6450] - jruby-win32ole fails under java7 and jruby master; can't find org.jruby.runtime.builtin.IRubyObject.toJava(Class)int
- [JRUBY-6451] - memory leak in rb_struct_new
- [JRUBY-6452] - rb_class_of() calls static object method instead of static long method
- [JRUBY-6475] - md5 digest causes thread lock
- [JRUBY-6476] - org.jruby.util.Sprintf.rubySprintfToBuffer causing thread locks
- [JRUBY-6477] - Tempfile#stat raises java.lang.NullPointerException when unlinked
- [JRUBY-6483] - Ruby array to_java does not appear to work
- [JRUBY-6485] - :__recursive_key__ left in threadlocals
- [JRUBY-6489] - FileLock.release() throwing Java::JavaLang::NullPointerException
- [JRUBY-6492] - "InvalidTransformException" on startup of large application
- [JRUBY-6498] - Net::Http does not close socket when open_timeout is exceeded
- [JRUBY-6501] - warning: variable $KCODE is no longer effective on github master JRuby (1.9 mode)
- [JRUBY-6502] - "Config" should be deprecated in JRuby 1.7 (1.9 mode)
- [JRUBY-6504] - Block parameter syntax issue where the closing | comes at the beginning of the line
- [JRUBY-6511] - Timeout doesn't work when https server not responding
- [JRUBY-6512] - Time.now shows wrong timezone for Moscow region
- [JRUBY-6517] - StringIO#ungetc issue on JRuby 1.6.6 and 1.6.7 in 1.8.7 mode
- [JRUBY-6523] - Static ThreadLocals must be weak or soft or not static
- [JRUBY-6526] - Socket#accept no such method?
- [JRUBY-6527] - Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable
- [JRUBY-6528] - Socket#connect_nonblock and IO::select appear to be misbehaving?
- [JRUBY-6533] - JavaNullPointer Exception instead method_missing
- [JRUBY-6534] - Broken block-local vars in 1.9 mode
- [JRUBY-6538] - 'obj !~ thing' is not the same as obj.send(:!~, thing)
- [JRUBY-6541] - DRb::DRbIdConv difference between 1.8 and 1.9
- [JRUBY-6545] - unable to load win32/registry in 1.9 mode
- [JRUBY-6549] - JRuby 1.7 HEAD does not properly detect platform under OpenJDK 1.7.0-u4-b228
- [JRUBY-6551] - Incorrect Ruby compatibility description displayed
- [JRUBY-6554] - \r at the end of String can cause SyntaxError
- [JRUBY-6556] - BigDecimal divided by Rational gives nil in --1.9 mode
- [JRUBY-6559] - ZLib buggy handling in 1.6.7
- [JRUBY-6560] - File.expand_path for path starting with "jar:file:" fails
- [JRUBY-6562] - Join fails on fixnum sub-array
- [JRUBY-6567] - characters to the console aren't echoed after a background then foreground of jruby irb session
- [JRUBY-6570] - autoload :Time, 'time' doesn't work
- [JRUBY-6571] - StackOverflow when calling java.util.regex.Matcher#end
- [JRUBY-6572] - File.open with 'b' options should always 'gets' string with 'ASCII-8BIT' encoding, regardless the value of 'Encoding.default_internal'
- [JRUBY-6574] - Socket#bind does not convert nil to 0
- [JRUBY-6582] - Encoding when using '%' inconsistent with MRI 1.9
- [JRUBY-6583] - Simple jar built with warbler works in 1.6.7, breaks in 1.7 with require 'haml'
- [JRUBY-6588] - String#encode should not convert binary to mangled UTF-8
- [JRUBY-6589] - java.lang.ClassCastException on exit from irb
- [JRUBY-6590] - DelegateClass subclasses can't include Java interfaces
- [JRUBY-6598] - to_yaml has garbled text if object contains Chinese or Japanese characters
- [JRUBY-6599] - test/test_socket.rb spuriously fails
- [JRUBY-6603] - Concurrency bug in org.jruby.util.ShellLauncher.getCurrentEnv
- [JRUBY-6604] - Cannot programmatically create regular expression /[\\x80]/n
- [JRUBY-6605] - java.lang.ClassCastException: jline.console.history.MemoryHistory$EntryImpl cannot be cast to java.lang.String
- [JRUBY-6606] - Dir::entries does not support none ascii character
- [JRUBY-6607] - TCPSocket connect failure inside Timeout leaves orphaned sockets
- [JRUBY-6611] - LoadServiceResource Opens But Never Closes InputStreams When Constructed With a URL
- [JRUBY-6612] - some problems with JRuby seeming to not detect Java Long arithmetic overflows
- [JRUBY-6618] - NPEs on CI spec run on master
- [JRUBY-6619] - NoMethodError 'upcase' on Java string
- [JRUBY-6621] - New ThreadLocal recursiveKey breaks usage of runtimes across multiple Java threads
- [JRUBY-6623] - In IRB, backslashes are gobbled in the eval loop
- [JRUBY-6624] - File#exists? cannot find file in JAR
- [JRUBY-6626] - [Ruboto] ThreadContext throws NPE in finalizer
- [JRUBY-6627] - File#open fails for file in a JAR with a "jar:" prefix in the path
- [JRUBY-6628] - #to_date fails on Rails request param with ArrayIndexOutOfBoundsException
- [JRUBY-6630] - Tempfile doesn't take a hash in the constructor
- [JRUBY-6631] - Time#nsec always returns 0
- [JRUBY-6634] - String.new(string) does not seem to clone the input
- [JRUBY-6637] - String encoding difference between jruby --1.9 and MRI 1.9 (force_encoding a no-op in this case?)
- [JRUBY-6641] - Java Exceptions Can Only Be Rescued if First in Exception List When Running in Interpreted Mode
- [JRUBY-6642] - RubyException.printBacktrace omits the first line
- [JRUBY-6644] - Time#strftime doesn't respect %:z
- [JRUBY-6647] - Comparison of a self referential struct causes a stack overflow
- [JRUBY-6648] - Opening a file with integer flags mixed with hash options raises an exception
- [JRUBY-6649] - Opening a file with a hash as options will raise an `ArgumentError: invalid access mode 4610` exception
- [JRUBY-6650] - when running the build I get a java.lang.AssertionError during jruby -S maybe_install_gems hoe rdoc
- [JRUBY-6652] - JVM crash while running rails app on Torquebox from com.kenai.jffi.Foreign.getZeroTerminatedByteArray
- [JRUBY-6654] - Using ruby's standard gserver library causes jruby to run out of memory
- [JRUBY-6660] - An invalid Makefile is genereated when a 'depend' file exists.
- [JRUBY-6661] - strftime should behave the same for datetime and time
- [JRUBY-6668] - StringScanner#scan_until spins forever on UTF-8 data
- [JRUBY-6669] - failure at test/test_kernel.rb:588 if jruby is in a directory with mixed-case
- [JRUBY-6670] - XMLRPC::XMLWriter::Simple has a Problem in 1.9 Mode
- [JRUBY-6671] - jruby-launcher fails to compile with GCC 4.6.3 on OSX
- [JRUBY-6675] - shadowing outer local variable warning in ffi
- [JRUBY-6710] - locking probleming when autoloading constant in haml
- [JRUBY-6728] - Rails Mailer fails on
- [JRUBY-6756] - Test suite fails, jruby-launcher can't be installed
- [JRUBY-6387] - Should JRuby 1.7 set 1.9 compatibility as default?
- [JRUBY-3797] - include_class should be deprecated in favor of java_import (and/or import)
- [JRUBY-4743] - Get a working test-indy target for testing against invokdynamic
- [JRUBY-5035] - Merge JRuby-OSSL
- [JRUBY-5135] - jruby.launch.inproc property should default to false
- [JRUBY-5499] - Update to rubygems 1.5.2 since 1.5.0 has severe bugs
- [JRUBY-5767] - add .metadata to .gitignore file
- [JRUBY-5849] - make JAVA_VM to be set from environment
- [JRUBY-5921] - Switch all (or most) println logging to slf4j logging.
- [JRUBY-5969] - Implemented a new commandline parser in NKF
- [JRUBY-5993] - $CLASSPATH allows array additions
- [JRUBY-6096] - Unable to build completely from source (rdoc missing)
- [JRUBY-6169] - Update 1.9 Standard Library to 1.9.3p0
- [JRUBY-6218] - Class and module names may need to be cached
- [JRUBY-6222] - Remove rdoc data from dist in favor of rdoc-data gem
- [JRUBY-6229] - Allow a way to activate the profiling API when embedding JRuby
- [JRUBY-6230] - Cache jar content list to speed up file? operation
- [JRUBY-6241] - Define a read-only global variable $-W
- [JRUBY-6337] - poor error message on importing java class
- [JRUBY-6464] - Use 'mvn versions:set -DnewVersion=<whatever>' instead of our Ruby rake code for updating poms
- [JRUBY-6496] - Kernel#Hash
- [JRUBY-6506] - Deprecate ObjectProxyCache
- [JRUBY-6561] - Update to latest rubygems
- [JRUBY-6584] - File.mtime() is slower than it should be
- [JRUBY-5845] - Add slf4j logging to JRuby
- [JRUBY-5934] - Writing ENV[]= changes through to the real ENV (via POSIX) should be configurable per runtime
- [JRUBY-6077] - Allow loading a Ruby source file from the class path using the fully qualified name
- [JRUBY-6243] - Add support for graph profile with HTML output
- [JRUBY-6334] - Import multiple classes via java_import
- [JRUBY-6393] - Implement Addrinfo class
- [JRUBY-4236] - Please reopen JRUBY-3894
- [JRUBY-5335] - [1.9] Random instance marshal data incompatible with CRuby 1.9
- [JRUBY-5568] - Remove MethodFactory "can't load bytecode" logging before 1.6 final
- [JRUBY-6017] - Undocumented windowBits feature of Zlib::Infrate/Deflate
- [JRUBY-6078] - Introduce jzlib-based zlib implementation
- [JRUBY-6145] - Cleanup Maven POMs So 'mvn install' Works Again
- [JRUBY-6249] - Creating binary for jffi
- [JRUBY-6379] - rdoc, ri, rdoc-data and 'generate-ri-cache' ant task
- [JRUBY-2708] - JRuby should load relative path reference to AOT classes
Github Issues resolved since RC2:
- #316 String#gsub not matching when string read from file in 1.9 mode core
- #317 regex fails for foreign characters when offset is last character core
Github Issues resolved for RC2:
- #337 Fix indentation in: e2c3728.
- #330 mprove performance of the Equals operator in the RubyComparable class for objects of different types
- #329 only new up kernel32 instance once per jvm
- #324 Fix #276. For good.
- #320 Windows Process.kill 'KILL'
- #319 Windows signal
- #312 Nested timeout supercedes enclosing timeout
- #311 Fix edge case where rescued Exceptions may be nil
- #295 Fix: Added support for the Java cacerts trust anchors
- #292 Apply '-' behaviour to blank padded format directives.
- #291 Add encoding annotation to test_unicode_path
- #278 fix some error message in Struct#\[\]
- #270 JSON format profile printer
- #255 JRUBY-6510 fix String.encode!
Github Issues resolved for RC1:
- #307 Specs for DirectedGraph Library
- #306 removed snapshot in versions
- #304 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
- #303 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
- #301 Dynamic String/Symbol/Regexp create too much garbage
- #300 Symbol table can't look up from ByteList directly
- #294 no need to report memory/stack as properties
- #293 Fix for issue #276
- #282 call Kernel.require ruby method from autoload callback instead of calling internal require
- #281 call Kernel.require ruby method from autoload callback instead of callin...
- #280 Kernel require
- #275 Remove left-over Javadoc params from Java class generator
- #274 Implicit blocks from Symbol#to_proc does surprising and wrong things (with --1.9)
- #273 1.6 backport: JRUBY-6810
- #267 Various fixes for psych
- #266 When call Kernel#singleton_class. And instance variables disappeared from Kernel#inspect.
- #265 JRuby19mode behavior is different with CRuby. Fixnum#to_sym
- #261 Fixnum#to_sym is not defined in Ruby 1.9
- #259 native threads disabled with C extensions
- #258 YAML.load_file to empty file gives false
Github Issues resolved for preview2
- #222 MatchData.begin(n) always returns 0 in jruby-1.6.7.2
- #176 Fixes JRUBY-6658
- #174 JRUBY-6668: StringScanner#scan_until spins forever on UTF-8 data
- #162 Recursive checking threadlocals in Ruby keep runtimes alive
- #155 invokedynamic: Instance var sites do not age, do not handle dup'ed classes well
- #145 exception in eval gets written to stderr
- #141 ConcurrencyError in safe code
JRuby 1.7.0.RC2 Released
Tuesday, October 09 2012
The JRuby community is pleased to announce the release of JRuby 1.7.0.RC2.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This is the second (and likely last) release candidate of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.
We know that there are still pieces of 1.9 support we don’t have yet, like Ripper, but we think we are at a stable point where people can use JRuby in 1.9 mode to host production applications. Barring any significantly serious issues, RC2 will become 1.7.0. Our plan after the release of 1.7.0 is a set of smaller point releases to address bugs and to add the few missing pieces of Ruby 1.9.
JRuby 1.7 is the first JRuby to support the new “invokedynamic” feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. https://github.com/jruby/jruby/wiki/PerformanceTuning
Please, please, please test your applications against 1.7.0.RC2. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful.
Issues resolved:
Bug
- [JRUBY-5732] - Error with selector: java.nio.channels.ClosedChannelException
- [JRUBY-6140] - Net::POP3 (and possibly other things) cannot verify certificate using JRE's trust anchors
- [JRUBY-6510] - String#encode! not correctly implemented.
- [JRUBY-6838] - Kernel#rand(Range) not supported
- [JRUBY-6912] - __FILE__ has an extra preceding slash in windows
- [JRUBY-6913] - with jdk 7, system commands run in windows use wrong line endings
- [JRUBY-6914] - Rake Tasks no longer work with Bundler under JRuby 1.7.0.RC1
- [JRUBY-6918] - Ant: "instance vars on non-persistent Java type Java::OrgApacheToolsAnt::UnknownElement"
- [JRUBY-6922] - Regexp#match interpets pos parameter in term of bytes instead of chars
Improvement
- [JRUBY-5451] - Unessesary late error message when subclassing a packaged class with no public constructors.
- [JRUBY-6915] - Improve performance of the Equals operator in the RubyComparable class for objects of different types.
Github Issues resolved:
- #337: Fix indentation in: e2c3728.
- #330: mprove performance of the Equals operator in the RubyComparable class for objects of different types
- #329: only new up kernel32 instance once per jvm
- #324: Fix #276. For good.
- #320: Windows Process.kill ‘KILL’
- #319: Windows signal
- #312: Nested timeout supercedes enclosing timeout
- #311: Fix edge case where rescued Exceptions may be nil
- #295: Fix: Added support for the Java cacerts trust anchors
- #292: Apply ‘-‘ behaviour to blank padded format directives.
- #291: Add encoding annotation to test_unicode_path
- #278: fix some error message in Struct#[]
- #270: JSON format profile printer
- #255: JRUBY-6510 fix String.encode!
JRuby 1.7.0.RC1 Released
Tuesday, September 25 2012
The JRuby community is pleased to announce the release of JRuby 1.7.0.RC1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This is the first (and hopefully only) release candidate of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.
We know that there are still pieces of 1.9 support we don’t have yet, like Ripper, but we think we are at a stable point where people can use JRuby in 1.9 mode to host production applications. Barring any significantly serious issues, RC1 will become 1.7.0. Our plan after the release of 1.7.0 is a set of smaller point releases to address bugs and to add the few missing pieces of Ruby 1.9.
JRuby 1.7 is the first JRuby to support the new “invokedynamic” feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. https://github.com/jruby/jruby/wiki/PerformanceTuning
Please, please, please test your applications against 1.7.0.RC1. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful.
Notable Changes:
- 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
- Many 1.9.x compatibility fixes
- Several IO transcoding issues
- Improvements and fixes to Java integration
- 113 issues resolved
Issues resolved:
Bug
- [JRUBY-3622] - newInstance and getDeclaredConstructor fail to respect class overridden in JRuby
- [JRUBY-3765] - DummyDynamicScope should never be used for backref storage
- [JRUBY-3786] - RubyGems tests are not green; fix remaining failures/errors
- [JRUBY-4732] - Clean up anything that calls dataGetStruct on a wrapped Java object to get the object
- [JRUBY-4756] - Interface that has abstract methods final in Ruby hierarchy break "real class" implementation
- [JRUBY-5226] - ri error while installing Rails -- Cannot create a file named '<'
- [JRUBY-5284] - Create full Exception hierarchy in Java types
- [JRUBY-5303] - [1.9] Wrong parameters parse for method signatures with default values
- [JRUBY-5314] - Classloader-sourced "load" will attempt to read a dir as a Ruby file
- [JRUBY-5323] - control-c in cmd while running webrick rails app does not kill jruby.exe
- [JRUBY-5583] - Profiling should not bomb out trying to find method name
- [JRUBY-5675] - Difference in include behaviour in --1.9 mode
- [JRUBY-5697] - Kernel#rand implementation does not match mri and rbx
- [JRUBY-5700] - Segmentation fault - IBM JDK
- [JRUBY-5848] - jruby-core maven artifact has broken dependencies
- [JRUBY-5902] - STDIN.gets under cygwin doesn't work
- [JRUBY-5908] - exec regression in windows since 1.6.0 (?)
- [JRUBY-6026] - OS X install postfligh script does not work with (t)csh
- [JRUBY-6074] - Re-release jruby-win32ole with Java 5
- [JRUBY-6105] - become_java! returns nil for Ruby classes that inherit from Java classes
- [JRUBY-6106] - JRuby 1.9 coverage library reports different results than ruby 1.9
- [JRUBY-6126] - [1.9] [RubySpec] In 1.9 mode, for should yield only as many values as there are arguments
- [JRUBY-6195] - [1.9] Process.spawn (and related methods) ignore option hash
- [JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN: Resource temporarily unavailable
- [JRUBY-6346] - Error establishing SSL connections: OpenSSL::SSL::SSLError: Socket closed
- [JRUBY-6447] - 1.9 patched oniguruma issues a number of warnings (e.g. for character classes, unknown coderanges) we omit silently
- [JRUBY-6516] - IO.select times out with ssl connection
- [JRUBY-6550] - [1.9] yield yields incorrect args when splatted args passed as 2nd arg to yield
- [JRUBY-6568] - A Proc on a symbol like (&:first) works in 1.8, but not in 1.9 mode
- [JRUBY-6578] - File.readlink with chdir
- [JRUBY-6581] - "yield called out of block" for Enumerators created with enum_for
- [JRUBY-6595] - segfault with win32/registry
- [JRUBY-6620] - On windows if JAVA_HOME ends in a '\' then native launcher bombs
- [JRUBY-6622] - Unable to Load encrypted Private Key pem file
- [JRUBY-6632] - BigDecimal.new fails when passed anything but string (Float, BigDecimal, Fixnum)
- [JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors don't accept File objects
- [JRUBY-6640] - stat.st_gid unsupported or native support failed to load org/jruby/RubyFileStat.java:432
- [JRUBY-6656] - JRuby subclass cannot call super with arguments if parent constructor is varargs
- [JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
- [JRUBY-6696] - 32 bit jruby cannot run with 64 bit JVM installed
- [JRUBY-6699] - OpenSSL::PKey::RSA.new fails on Windows
- [JRUBY-6704] - JRuby should provide couterparts of MRI Ruby bundled Gems
- [JRUBY-6738] - Kernel.load(..., true) --> scope problem
- [JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
- [JRUBY-6773] - ERB parsing in JRuby 1.6.6
- [JRUBY-6777] - RubyFixnum.java - two methods fail to detect some long integer overflows
- [JRUBY-6790] - Possible long integer overflow in fixnumStep in RubyNumeric.java
- [JRUBY-6799] - Reopening Java class fails if set with ScriptingContainer#put and Java class
- [JRUBY-6810] - YAML.load(YAML.dump(lambda{})) should raise TypeError
- [JRUBY-6824] - Missing files/dirs in source tarball/zip
- [JRUBY-6825] - ClassReader ClassNotFoundException in verbose mode on jruby-1.7.0-preview2
- [JRUBY-6827] - ClassCastException with DummyDynamicScope in String#rpartition? with -X+C
- [JRUBY-6828] - TypeError when returning non-nil from a proc called from Java by interface
- [JRUBY-6832] - self is wrong in set_trace_func when raising NoMethodErrors
- [JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL byte
- [JRUBY-6836] - Strange interactions between a break statement and ensure blocks
- [JRUBY-6837] - Encoding Problems in Rails 3.2
- [JRUBY-6839] - issuing 'jruby -v' causes Java exception "Ruby: org.objectweb.asm.ClassReader java.lang.ClassNotFoundException: org.objectweb.asm.ClassReader"
- [JRUBY-6840] - Java package class calls no longer working in 1.7.0-pre2
- [JRUBY-6841] - State file use in UUID gem causes severe performance degradation
- [JRUBY-6843] - Encoding::UndefinedConversionError when reading from IO stream given by open-uri's Kernel#open()
- [JRUBY-6849] - pp Object.new shows 0x0000000 instead of a unique number for each object.
- [JRUBY-6851] - IO#set_encoding doesn't work with Encoding object
- [JRUBY-6852] - Setting compile mode when using ScriptingContainer
- [JRUBY-6854] - EXCEPTION_ACCESS_VIOLATION
- [JRUBY-6855] - Signal.list missing 'KILL' on Windows
- [JRUBY-6858] - OpenSSL::HMAC missing reset method
- [JRUBY-6859] - java.lang.ArrayIndexOutOfBoundsException when using --profile.api . MAX_PROFILE_METHODS too low?
- [JRUBY-6860] - String#slice on strings with multibyte chars fails
- [JRUBY-6863] - multibyte strings after String#slice get wrong result on String#index(rindex)
- [JRUBY-6865] - JRuby allows invalid attr_accessor (MRI raises exception)
- [JRUBY-6867] - Parsing issues with long lines
- [JRUBY-6868] - Exceptions thrown when running with Coverage enabled
- [JRUBY-6871] - Encoding::UndefinedConversionError when dropping a mongo database with Mongoid 3
- [JRUBY-6872] - Behavior of Math.sqrt(Float::NAN) does not match MRI
- [JRUBY-6875] - JRuby should load "some_path/some_file.jar.rb" if "some_path/some_file.jar" is required and "some_path/some_file.jar" does not exist.
- [JRUBY-6884] - Unexpected stack trace using ARM based linux
- [JRUBY-6885] - method_missing and private methods behave differently
- [JRUBY-6888] - Loading a newer joda-time seems to not work
- [JRUBY-6891] - SSLSocket.accept forces reverse DNS lookup, not required for most SSL and sometimes causes very poor performance
- [JRUBY-6892] - Calling #drop on an Enumerator doesn't work properly
- [JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent generator_internal
- [JRUBY-6896] - nil treated as 0 in call to Thread#join
Improvement
- [JRUBY-5380] - Use Hotspot-specific features for calculating CPU time when available
- [JRUBY-6275] - double locking a mutex could use a better error message, line number
- [JRUBY-6445] - Allow a way to resolve interface methods from with Ruby proxy modules
- [JRUBY-6500] - Compiler improvements
- [JRUBY-6643] - jrubyc AOT Java compilation doesn't identify failure cause
- [JRUBY-6890] - Rework paths to be similar to MRI + redefinable + defined in one place only
New Feature
- [JRUBY-4670] - Plug ruby2java java2ruby marshalling
- [JRUBY-6835] - A way to send a block of code across processes.
- [JRUBY-6883] - Enable subclassing of Java classes on Dalvik
Task
- [JRUBY-6466] - externalize build_lib dependencies
Test
- [JRUBY-6873] - jruby-1.7.0.preview2 much slower jruby-1.6.3 (192s vs.60s)
Github Issues
- #307 Specs for DirectedGraph Library
- #306 removed snapshot in versions
- #304 DirectedGraph Specs : Removing a vertex doesn’t remove edges from the graph
- #303 DirectedGraph Specs : Removing a vertex doesn’t remove edges from the graph
- #301 Dynamic String/Symbol/Regexp create too much garbage
- #300 Symbol table can’t look up from ByteList directly
- #294 no need to report memory/stack as properties
- #293 Fix for issue #276
- #282 call Kernel.require ruby method from autoload callback instead of calling internal require
- #281 call Kernel.require ruby method from autoload callback instead of callin…
- #280 Kernel require
- #275 Remove left-over Javadoc params from Java class generator
- #274 Implicit blocks from Symbol#to_proc does surprising and wrong things (with –1.9)
- #273 1.6 backport: JRUBY-6810
- #267 Various fixes for psych
- #266 When call Kernel#singleton_class. And instance variables disappeared from Kernel#inspect.
- #265 JRuby19mode behavior is different with CRuby. Fixnum#to_sym
- #261 Fixnum#to_sym is not defined in Ruby 1.9
- #259 native threads disabled with C extensions
- #258 YAML.load_file to empty file gives false
JRuby 1.6.8 Released
Tuesday, September 18 2012
The JRuby community is pleased to announce the release of JRuby 1.6.8.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.7.2 (and lower) are encouraged to upgrade to 1.6.8.
This release is a somewhat special release in that JRuby community members were primarily responsible for performing the backporting of fixes. These fixes represented what current users of JRuby 1.6.x wanted in a JRuby 1.6.8. Special thanks to merge-master David Kellum for putting so much effort into make JRuby 1.6.8 a reality.
Notable Changes:
- Updated to RubyGems 1.8.24
- Fixed a resource leak in LoadService
- No more accidental GC of runtime state in unusual situations
- Various 1.9 compability fixes
1.6.8 Commits:
- d991aba Fix JRUBY-6892: Calling #drop on an Enumerator doesn’t work properly
- f125aeb Up the dose on windows JRE
- 496bf09 Bump for new version of jffi
- 996fc86 Bump for upcoming release
- 18d8bb1 Update to working i386 Windows jffi.
- 34b46fe Revert non-proc allocator fix because it breaks tb. Work with them for different soln for 1.7.0
- 8b966d6 Make maven know about yesterdays jartravaganza
- c4f70e2 Fix JRUBY-6452 - CallStaticLongMethod instead of CallStaticObjectMethod
- cc93dab Update this test to match master to remove the printStacktrace (and presumably make this pass on windows)
- 45af2c6 Remove spec due to asm4 upgrade (it will be alright)
- 709f3a5 Fix IntelliJ setup for jruby-1_6 branch.
- 6dbe84f Update Makefile so cexts can compile again on MacOS
- 964717c Does this look safe to you?
- 1d1ec53 Fix #162
- d96b69e Partial solution for #162.
- 1bf66f8 Fix recursiveKey usage across multiple threads (JRUBY-6621)
- 2f73450 Use thread-local state for all recursive checks.
- 102f85a Merge pull request #283 from dekellum/1-6-backport-6865
- eec9bbe Merge pull request #284 from dekellum/1-6-backport-6860,6863
- e443d7e Merge pull request #285 from dekellum/1-6-backport-6872
- 149b646 Actually fix JRUBY-6872.
- 2bcf438 Fix JRUBY-6872 and remaining math excludes.
- ea52040 Fix JRUBY-6860
- ae3ee49 Fix JRUBY-6863
- 254d8e5 Fix JRUBY-6865
- 57b4637 Work around some old jffi bugs with struct-by-value params to fix JRUBY-6876
- 22c66fd Update to jnr-netdb 1.0.7 (fixes multi-threaded getservbyname() crashes on linux)
- 41098eb Merge pull request #254 from dekellum/1-6-backport-gh224
- 151d0a6 Merge pull request #253 from dekellum/1-6-backport-gh245
- f9a2c6b Merge pull request #252 from dekellum/1-6-backport-6820
- 5ae7300 Merge pull request #273 from dekellum/1-6-backport-6810
- ab0fd82 Fix JRUBY-6810
- 9ded4e9 Fix JRUBY-6845 - syslog(3) should be attached as a variadic function
- b493eb4 Backport FFI::DataConverter#reference_required? fixes from master
- c886e01 Fix Issue #262 (ffi/ffi/#221)
- 5ff7afd JRUBY-6820: Unexpected behavior of IO.popen when giving arguments as an array containing strings
- 80fcc90 Implement some unimplemented Process::Status methods and change the way signals are parsed from friendly name to integer.
- 1abdc0c Flip the isShared flag only after the array’s values have been copied over.
- ecb5c6b Merge pull request #251 from dekellum/1-6-backport-6815
- 0d8fa5c Merge pull request #250 from dekellum/1-6-backport-6819
- 03291b2 Merge pull request #249 from dekellum/1-6-backport-6658
- 944e4ba Merge pull request #248 from dekellum/1-6-backport-6792
- 581aee7 Merge pull request #247 from dekellum/1-6-backport-6813
- 0a15994 JRUBY-6815: IO.read doesn’t work with pipes
- 4478f83 Fix JRUBY-6819
- db3fd5e Fixes JRUBY-6658
- d25edcc Fix for JRUBY-6792: Keep a hard reference to the current ThreadContext to avoid it being collected
- 2969acd Fix for JRUBY-6792: Keep a hard reference to the current ThreadContext to avoid it being collected
- f78b088 Implement Time#round. This fixes JRUBY-6813.
- c6a559a Tag some long-failing specs on jruby-1_6 branch.
- 8115b8c Fix JRUBY-6514
- b8d0ca6 Fix JRUBY-6395: Coerce Fixnum to Number
- 86ef07e Fix JRUBY-6731
- 7c8dba1 JRUBY-6785 Make the receiver for callMethod more consistent. Allow nil as a receiver. Allow Java objects as receivers. These will be wrapped before use.
- a90bb11 JRUBY-6785 Allow ScriptingContainer#callMethod to be called on a Java object. Allow ScriptingContainer#callMethod to be called using nil as a receiver
- 684ce37 Fix JRUBY-6775: RubyRandom is not thread-safe
- 413edcb Fix JRUBY-6753
- 98724c3 Fix JRUBY-6722
- 400c73a Fix JRUBY-6724
- f9b745f Fix for JRUBY-6725. See jruby/ruby repo for description.
- 44b8f31 Fix JRUBY-6745
- 0324c3d Fix for JRUBY-6728. This fixes Nokogiri’s 1.9 test error of PrettyPrint as well as https://github.com/sparklemotion/nokogiri/issues/657.
- a62f4af Errant printf removed
- ddc48ae Fix JRUBY-6706
- df5b336 Fixes JRUBY-6677
- 566ae5d Remove Enumerable#join. This resolves JRUBY-6703.
- c82a360 JRUBY-6708: NullPointerException instead of proper exceptions output
- 5f65879 Fix JRUBY-6248
- 280e435 Fix JRUBY-6517
- 9a122ed Fix JRUBY-6642.
- 82a2f2d JRUBY-6464: Use “mvn versions:set -DnewVersion=<whatever>” instead of our Ruby rake code for updating poms
- 7153b89 Remove -mimpure-text from CFLAGS. Fixes JRUBY-6633.
- 8623090 Check if all throwables are Java exceptions in interpreted mode (JRUBY-6641)
- 0fe664a JRUBY-6611: Fix resource leak in LoadServiceResource
- 2ce65e1 Regression spec for JRUBY-6634.
- b8e182d JRUBY-6626 Ensure thread is set on finalize
- defb411 JRUBY-6624 Strip jar: prefix when searching for files in a JAR
- 2e6d4c8 Add copyright notice for Yecht. This resolves JRUBY-4843.
- 4b462fd Add spec for JRUBY-6571
- cbbbf38 Mitigation for JRUBY-6576
- 22a52eb Regression test for JRUBY-5863.
- fc17ab4 Fix JRUBY-6570: autoload :Time, ‘time’ doesn’t work
- c591134 Fix JRUBY-5863: Named captures cause crash when there is no match
- fd9ca2e Fix JRUBY-6571: StackOverflow when calling java.util.regex.Matcher#end
- 7b370c2 JRUBY-6559: GzipReader#rewind crashes when the input stream is serially-multiplexed like RubyGems
- 61f2cf0 Implement Kernel#Hash. Fixes JRUBY-6496.
- 358883f JRUBY-6560 Fix File.expand_path for jar:file:/ paths
- 1ef14f1 Fix JRUBY-6538: ‘obj !~ thing’ is not the same as obj.send(:!~, thing)
- 202a45c Fix JRUBY-6489
- 40e87d7 Add rdoc to gems we install for dist, since hoe appears to depend on it now.
- 5837b58 Correctly check the already-loaded file cache
- 6f398e8 Tweaks to match master fix for JRUBY-6607, JRUBY-6498.
- ef59f99 Fix JRUBY-6619: NoMethodError ‘upcase’ on Java string
- 734662f Add spec for JRUBY-6661, which is already fixed by the previous commit.
- 6bc0674 Fix JRUBY-6661: strftime should behave the same for datetime and time
- 13bccdd Fix JRUBY-6633: gcc 4.7 compilation fails
- aab80da Allow primitive boxes to pass for primitive toJava targets.
- 26e08ba Don’t forget Evan
- dedcfc2 Hmmm…my cherry-pick missed a lot
- 3d756d1 Bump for 1.6.7.2
- 0804bcb Hmmm, perhaps I should have reversed this…full steam ahead
- 9a44218 Update Eclipse classpath setting
- 57cf31a Update to RubyGems 1.8.24.
- 94f07cf Add missing SSL cert.
- 7762e4c Update to RubyGems 1.8.23
- d078fee Update for security release 1.6.7.1
- 904fd37 Update to RubyGems 1.8.21.
- 985cae8 Spec for JRUBY-6612
- b8364a6 Fix JRUBY-6612. Detect special case where Long.MIN_VALUE == -1*Long.MIN_VALUE in Java, and guard accordingly. It is a bit hack-ish, but it will do for now. Spec to be added later.
- 4a8ed93 Update to RubyGems 1.8.21.
- 465bc21 JRUBY-6580: Fix performance drop with threadsafe autoload
- 03c14ba Prevents “cygpath: can’t convert empty path” on cygwin when no other jars besides jruby.jar are present in $JRUBY_HOME/lib (as is the case with a fresh install).
- 95cc9cc No plans for 1.6.8.dev, but we definitely hsould not keep it as 1.6.7
- 08cf4a4 JRUBY-4502: Wrong gzip data crashes JRuby (collab w/ nahi…thanks nahi!)
- 515bc51 Fix JRUBY-6544: CR at the end of String can cause SyntaxError
- 65e3fb4 Spec for JRUBY-6344
- 9002961 Allow cexts to build under OpenJDK on OS X, where os.arch == ‘amd64’
- 045bb05 No email notifications from travis.
- a9958df Make rake+ant specs more robust when no JAVA_HOME env is set.
- ff1c6ba Remove formatting, external class from time-to-date JI test.
- 26ea1a5 Add travis build for 1.6 branch.
- 9f4ebdb Fix JRUBY-6541
- f3b846a Fix JRUBY-6522
- c3df4da JRUBY-6518: Array#combination returns unexpected value when argument number too big
- 86cb0ba Fix JRUBY-6497
JRuby 1.7.0.preview2 Released
Tuesday, August 07 2012
The JRuby community is pleased to announce the release of JRuby 1.7.0.preview2.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This is the second preview release of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.
We have opted for another preview cycle due to the amount of reports about improperly working transcoding support. We have greatly improved transcoding of IO and users should be much happier with 1.7.0.preview2.
Due to some issues with Java 7’s invokedynamic support we decided to disable the support by default. It will be turned back on when Java 7 fixes those issues. See https://github.com/jruby/jruby/wiki/PerformanceTuning
Please, please, please test your applications against 1.7.0.preview2. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful.
Notable Changes:
- 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
- Many 1.9.x compatibility fixes
- invokedynamic has been disabled for now on Java 7 (still on by default on Java 8)
- Performance and concurrency improvements
- Java 5 support dropped (Java 6+ required)
- Several IO transcoding issues
- YAML now encodes scalars properly instead of using Java locale
- Kernel#exec now does a true native exec on all platforms
- Improvements and fixes to Java integration and embedding
- Fix several native support issues on Solaris
- 122 issues resolved
Issues resolved:
- JRUBY-5053 memory leak in rubygems
- JRUBY-5785 BUG: invoking UndefinedMethod.call
- JRUBY-5899 NotImplementedError: Process::Status#exited? not implemented
- JRUBY-5939 [:space:] does not match unicode 0x3000: fullwidth whitespace
- JRUBY-6056 High CPU Loop with parallel Etc.group iterrations
- JRUBY-6121 Local variables cross eval scopes
- JRUBY-6124 Yielding no values to a block gives ArrayIndexOutOfBoundsException
- JRUBY-6125 Yielding a single object to a block with |a, b| arguments does not call #to_ary
- JRUBY-6181 SSH Agent forwarding does not work with jRuby (which lets capistrano ssh-deployments fail)
- JRUBY-6253 IBM JVM rejects class/method names with #, as in our JIT recently.
- JRUBY-6286 jnr-posix WindowsHelpers.isBatch Always Returns False
- JRUBY-6299 Slow perf in String#split or #join on 1.9 mode
- JRUBY-6317 YAML can’t parse some valid unicode characters
- JRUBY-6330 Performance degradation in Time.strptime with invokedynamic
- JRUBY-6376 File.stat.size on Solaris: ridiculously large results
- JRUBY-6395 Coerce Fixnum to Number
- JRUBY-6424 Allow java_signature to generate throws clause for methods/constructors
- JRUBY-6428 Regression: Float#to_d doesn’t work on 1.7 (did in 1.6)
- JRUBY-6459 JRuby head causes rack response to change behaviour
- JRUBY-6465 out of memory building c extensions
- JRUBY-6481 AccessControl exceptions attempting to create JRuby instances in applet
- JRUBY-6493 Calling dynamically defined method throws Java::JavaLang::NullPointerException or returns nil without executing method body
- JRUBY-6494 File#directory? always returns false on Solaris
- JRUBY-6495 java.nio.ByteBuffer.wrap throws java.lang.IndexOutOfBoundsException
- JRUBY-6514 java.lang.NullPointerException when using ScriptingCotainer from an Appletjava.lang.NullPointerException
- JRUBY-6521 With Java 7, nailgun client cannot list local gems more than once
- JRUBY-6525 FFI bug with Solaris JRuby >=1.6.6
- JRUBY-6532 ftp.nlst, ftp.ls doesn’t work on JDK 7u3
- JRUBY-6548 REXML error when reading files containing ISO-8859-1 encoded data
- JRUBY-6552 File.directory? does not work under 1.9 mode on Solaris
- JRUBY-6553 Application continues running after throwing out of memory exception in Thread.
- JRUBY-6613 special characters like umlauts make Kramdown hang (works with MRI Rubies)
- JRUBY-6615 File.open ignores specified external encoding
- JRUBY-6638 Multicast UDPSocket send does not work with host and port
- JRUBY-6639 Marshal.load takes forever when deserializing Rails unicode db in WEBrick
- JRUBY-6658 Problem when setting up an autoload entry, defining a class via require, then redefining the autoload entry
- JRUBY-6663 `jruby -S bundle exec rails c` fails with “Bundler: command not found”
- JRUBY-6666 Open3.popen3 failing due to missing handling for [path, argv[0]] array
- JRUBY-6674 Inconsistent java method/signature choosing depending on java version/platform
- JRUBY-6677 open(”|something”, “w”) does not open in write mode
- JRUBY-6678 compilation fails for CC=”ccache gcc”
- JRUBY-6679 Encoding.default_external discrepancy between JRuby and MRI
- JRUBY-6682 ‘ jgem search -r ak ‘ causes exceptions.
- JRUBY-6685 Encoding problem when using JRuby 1.7.0.preview1 + Nokogiri under Windows
- JRUBY-6686 JRuby/RSolr - BLOCKED on org.jruby.internal.runtime.methods.InvocationMethodFactory.getCompiledMethod
- JRUBY-6688 Tempfile#{unlink,delete} should warn or actualy do something
- JRUBY-6693 Get the terminal width with JRuby
- JRUBY-6694 Invalid byte sequence in utf-8
- JRUBY-6697 JRuby 1.7 should report 1.9 as default
- JRUBY-6701 Net::HTTP ignore JSE defined HTTP Proxy options
- JRUBY-6702 File.utime does not check file permissions
- JRUBY-6703 Remove Enumerable#join from 1.9 mode
- JRUBY-6705 Error during gem loading in Rails: ActiveRecord is not missing constant Base
- JRUBY-6706 Collections.shuffle works incorreclty on Ruby arrays
- JRUBY-6707 JRuby master (1.7) is LOT slower than jRuby 1.6.7 & MRI in generating tictactoe game tree
- JRUBY-6708 NullPointerException instead of proper exceptions output
- JRUBY-6709 ffi problems on 1.7.0.preview1?
- JRUBY-6711 JRuby 1.7 needs a formal release of jline
- JRUBY-6713 win32/registry.rb warning
- JRUBY-6714 require ‘java’ in verbose mode causes circular dependency warning
- JRUBY-6715 jruby-openssl cert validation fails on windows
- JRUBY-6717 jruby1.7.0preview1 doesn’t work on Windows with jdk7
- JRUBY-6718 crash with java.lang.invoke.WrongMethodTypeException
- JRUBY-6721 probably extraneous warning message generated
- JRUBY-6722 Can’t instantiate ThreadGroup subclass with arguments
- JRUBY-6724 NO_FILE_CLASS Profile does disables File but not FileStats that depends on File
- JRUBY-6725 NameError: uninitialized constant RubyVM
- JRUBY-6729 1.9: block argument to yield method is not correctly pass to a block. -- pp’s seplist method
- JRUBY-6731 Can’t load class files in WARs compiled by warbler using jruby 1.7.0.preview1
- JRUBY-6734 Socket.new seems broken -- throws exceptions on valid params
- JRUBY-6735 FileUtils.chmod broken for symlinks
- JRUBY-6737 Cannot use rspec with JRuby 1.7
- JRUBY-6739 Does not read UTF-16 properly
- JRUBY-6740 BasicObject.respond_to? raises a “undefined method `respond_to_missing?'”
- JRUBY-6741 Inconsistent == on java.lang.Integer between Mac and RedHat Enterprise Linux
- JRUBY-6742 ant dist aborts on non-Mac hosts
- JRUBY-6745 ClassCastException calling Fixnum#== with a Java Integer
- JRUBY-6746 OpenSSL ‘connect_nonblock’ missing/broken in 1.6.7 and 1.7.0.preview1
- JRUBY-6748 Race condition still in thread list
- JRUBY-6753 class_eval should inherit __name__ from the caller
- JRUBY-6755 Test suite failure: Unable to resolve dependencies: rdoc requires json (~> 1.4)
- JRUBY-6760 ArgumentError output
- JRUBY-6761 NoMethodError: undefined method `recvfrom' for #<Socket:fd>
- JRUBY-6762 How to detect if a Ruby method has been defined using ScriptingContainer
- JRUBY-6764 Ascii or UTF-8 Encoding ascii substrings that originated from binary string causes an exception to be thrown.
- JRUBY-6766 --profile slows down Array#join , which distorts profiling results
- JRUBY-6768 Instance variable value is lost under certain circumstances
- JRUBY-6769 Curried lambda/proc does not work correctly with Array.map
- JRUBY-6773 ERB parsing in JRuby 1.6.6
- JRUBY-6774 wrong exception class thrown when opening file after Dir.chdir
- JRUBY-6775 RubyRandom is not thread-safe
- JRUBY-6776 Array#join(nil) should use $, as a separator for compatibility
- JRUBY-6778 Possible long integer overflow bug in Integer#succ in RubyInteger.java
- JRUBY-6779 Strange behaviour of some Integer Ranges with Range#each - maybe an integer overflow problem?
- JRUBY-6780 File.open creates file without permissions
- JRUBY-6782 load path doesn’t respect rubygems when invoked from command line
- JRUBY-6784 Wrong arg passed with lambda with splat
- JRUBY-6785 NoMethodError calling callMethod on instance of reopened Java class
- JRUBY-6786 opening the singleton class of an exception breaks equal and inspect
- JRUBY-6788 Missing prompt in rails console
- JRUBY-6789 Test for embedded JRuby are not run by CI
- JRUBY-6791 RuntimExceptions with a Ruby Exception as cause will not print out complete stacktrace
- JRUBY-6792 Occasional java.lang.ArrayIndexOutOfBoundsException calling ScriptingContainer#runScriptlet
- JRUBY-6801 bundle exec no longer works
- JRUBY-6802 JSON generation for largish data structures v. slow under 1.7 (JDK 1.6)
- JRUBY-6803 Reading thousands of files significantly slower with JRuby 1.7
- JRUBY-6808 org.jruby.ext.ffi.Platform does not determineCPU or determineOS properly on Turkish
- JRUBY-6809 Time::utc sub-millisecond inaccuracy, causes incorrect date in Rails
- JRUBY-6813 Implement Time#round
- JRUBY-6815 IO.read doesn’t work with pipes
- JRUBY-6816 jffi 1.2 jar files for FreeBSD
- JRUBY-6819 java.lang.ArrayIndexOutOfBoundsException in String#each_line
- JRUBY-6820 Unexpected behavior of IO.popen when giving arguments as an array containing strings
- JRUBY-6821 FFI::Pointer#write_string is missing
-
JRUBY-6822 Net::HTTP SSL connections fail with EAGAIN
- GH-222 MatchData.begin(n) always returns 0 in jruby-1.6.7.2
- GH-176 Fixes JRUBY-6658
- GH-174 JRUBY-6668: StringScanner#scan_until spins forever on UTF-8 data
- GH-162 Recursive checking threadlocals in Ruby keep runtimes alive
- GH-155 invokedynamic: Instance var sites do not age, do not handle dup’ed classes well
- GH-145 exception in eval gets written to stderr
- GH-141 ConcurrencyError in safe code
JRuby 1.7.0.preview1 Released
Monday, May 21 2012
The JRuby community is pleased to announce the release of JRuby 1.7.0.preview1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This is the first preview release of JRuby 1.7. This release represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users on Java 7 should start to see gains from invokedynamic, the JVM’s new support for dynamic languages. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.
We have opted for a preview cycle this time due to the significance of changes in this release and our desire to give users more time to test JRuby before releasing 1.7 final. When in doubt, file a bug…we’ll sort it out. We want to know issues users have with JRuby 1.7 sooner rather than later.
Notable Changes:
- 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
- Many 1.9.x compatibility fixes
- Support for Java 7’s invokedynamic*
- Performance and concurrency improvements
- Java 5 support dropped (Java 6+ required)
- Update to Rubygems 1.8.24
- Update to Rake 0.9.2.2
- 259 issues resolved
*Note on invokedynamic performance:
Invokedynamic is still a new feature for the JVM, so we recommend running as recent a build of Java 7 as possible. Builds of OpenJDK/Oracle JDK prior to “update 2” will show poor performance.
Invokedynamic support can be disabled with -Xcompile.invokedynamic=false (passed to JRuby) for investigating perf issues or bugs.
Issues resolved:
- JRUBY-928 Java arrays don’t inherit from java.lang.Object in Rubified Java class hierarchy
- JRUBY-2317 File writing is slower in JRuby than MRI
- JRUBY-2708 JRuby should load relative path reference to AOT classes
- JRUBY-3293 Cannot reopen a class from an included module
- JRUBY-3519 Wrong work replacement char with russian charset
- JRUBY-3797 include_class should be deprecated in favor of java_import (and/or import)
- JRUBY-3812 Socket::gethostbyname does reverse DNS lookup for IP address and is slow if no DNS reverse lookup reply is received
- JRUBY-3986 File inconsistency handles file:/// URLs pointing to things inside a JAR
- JRUBY-4105 Rubyspec: SimpleDelegator send spec fails due to bug in 1.8.7 stdlib
- JRUBY-4115 cipher.rb:24: superclass must be a Class (Module given) (TypeError)
- JRUBY-4220 File.dirname(__FILE__) doesn’t return correct value when a script is loaded from classpath
- JRUBY-4236 Please reopen JRUBY-3894
- JRUBY-4291 UNIXServer#accept can’t be interrupted by kill/raise
- JRUBY-4339 Kernel.load with wrap=true does not protect the global namespace of calling program
- JRUBY-4484 jruby -rtracer doesn’t trace
- JRUBY-4605 RubyIO#select puts connectable sockets in the read set instead of write set
- JRUBY-4717 1.9: New digest methods are missing (base64digest and base64digest!)
- JRUBY-4743 Get a working test-indy target for testing against invokdynamic
- JRUBY-4843 COPYING file is (partially) incorrect and outdated
- JRUBY-4887 Problem with ja_JP.eucJP locale
- JRUBY-5035 Merge JRuby-OSSL
- JRUBY-5090 java class objectId() overrides .object_id
- JRUBY-5201 1.9: uncaught timeout seems to cause silent failure
- JRUBY-5222 Reopening a file descriptor on a socket doesn’t work (gives “could not reopen: null (IOError)”)
- JRUBY-5317 Objects loaded via Marshal don’t get Java class applied corrected unless passed through fn taking exact type
- JRUBY-5320 require needs to treat case-insensitive file paths in LOADED_FEATURES as case-insensitive for searching purposes
- JRUBY-5335 1.9: Random instance marshal data incompatible with CRuby 1.9
- JRUBY-5348 Process.spawn should fail if wrong args passed
- JRUBY-5375 1.9: Add “Mark” features to Psych
- JRUBY-5446 jcodings no longer in sync with current data 1.9.2 is using
- JRUBY-5459 JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
- JRUBY-5499 Update to rubygems 1.5.2 since 1.5.0 has severe bugs
- JRUBY-5512 regular expressions + regexp = incorrect results.
- JRUBY-5547 add String#byteslice() method
- JRUBY-5560 JRuby does not detect unix socket
- JRUBY-5568 Remove MethodFactory “can’t load bytecode” logging before 1.6 final
- JRUBY-5622 Regex string interpolation breaks unicode properties
- JRUBY-5630 Java calls have lost the Java part of the trace
- JRUBY-5643 1.9: Array#map and Array#collect produce the same enumerator; should be specific to the method called
- JRUBY-5647 Missing method Socket::ip_address_list
- JRUBY-5665 RubySpec: String#scan failures
- JRUBY-5678 tmpdir cannot be delete when jruby has sudo/root rights
- JRUBY-5708 IO.select does not block on unix sockets
- JRUBY-5726 FileUtils#cp (ultimately FileStat.identical? implementations) breaky on Windows
- JRUBY-5762 Proc#=== is not same as Proc#call in 1.9 mode.
- JRUBY-5767 add .metadata to .gitignore file
- JRUBY-5774 ruboto: unsupported Java version: 0.9
- JRUBY-5775 ruboto: Dir[] gives empty array when listing files below the root of the apk
- JRUBY-5779 $LOADED_FEATURES is updated before loading finished
- JRUBY-5792 Eval error for hashes containing symbols ending with an equals sign
- JRUBY-5811 jruby 1.9 fails to load irb
- JRUBY-5813 FFI::AutoPointer occasionally calls releaser proc when GC’d, even if autorelease is set to false
- JRUBY-5823 jruby -x bug
- JRUBY-5835 ruboto: File#read fails with jruby-jars-1.6.2
- JRUBY-5842 NullPointerException when calling any method on Fiber.current if not explicitly in a created Fiber
- JRUBY-5845 Add slf4j logging to JRuby
- JRUBY-5849 make JAVA_VM to be set from environment
- JRUBY-5852 Can’t serialize RubyModule, subclass of RubyBasicObject, which extends Serializable
- JRUBY-5863 Named captures cause crash when there is no match
- JRUBY-5866 JRuby can’t access nested Java class if the class is called ‘id’
- JRUBY-5874 Kernel#` and Kernel#system didn’t correctly glob when using ruby
- JRUBY-5876 Socket#syswrite (the non-buffered one) raises SystemCallError on broken pipe
- JRUBY-5878 Enumerator.map is not yielding all values
- JRUBY-5881 Update to jnr-constants 0.8
- JRUBY-5921 Switch all (or most) println logging to slf4j logging.
- JRUBY-5934 Writing ENV[]= changes through to the real ENV (via POSIX) should be configurable per runtime
- JRUBY-5943 Platform.IS_OPENVMS is unknown in jorg.jruby.ext.posix.util.Platform
- JRUBY-5953 rvm jruby 1.6.3 freezes after issued `irb` or
- JRUBY-5955 maven build of JRuby 1.6.3 fails on Linux Fedora 15
- JRUBY-5964 Digest::Base#file does not handle Pathname as parameter when ran in 1.9
- JRUBY-5968 Mac OSX ant dist failure w/ patch
- JRUBY-5969 Implemented a new commandline parser in NKF
- JRUBY-5973 Failure to connect to Nailgun server produces confusing error
- JRUBY-5977 test_rubyopts_rubygems_cleared_in_child test failure w/ patch
- JRUBY-5981 Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
- JRUBY-5987 Regression: IncludedModuleWrapper does not delegate to new Module autoload map
- JRUBY-5988 Hash.inspect in –1.9 results in ASCII-8BIT encoding
- JRUBY-5989 MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
- JRUBY-5993 $CLASSPATH allows array additions
- JRUBY-5995 `Readline::HISTORY << str` and push should return HISTORY
- JRUBY-5996 gem update –system crashes with NPE
- JRUBY-6017 Undocumented windowBits feature of Zlib::Infrate/Deflate
- JRUBY-6031 ActiveRecord::JDBCError in JRuby 1.6.4
- JRUBY-6035 Randomly changed hash key in overriden []= method in Hash inherited class
- JRUBY-6037 org.objectweb.asm.ClassReader is not found under some circumstances.
- JRUBY-6043 Fix for JRUBY-5965 breaks Mirah macro compilation
- JRUBY-6048 Array#repeated_permutation(n) enumerates nothing when n is greater than the length
- JRUBY-6058 JRuby 1.6.4 incompatible with Google App Engine
- JRUBY-6062 ruboto: regression: Increased stack usage
- JRUBY-6068 Trunk Build Failure for install_dist_gems task
- JRUBY-6070 TCPSocket#new issues with local_addr and local_port
- JRUBY-6075 ant dist fails on both master and jruby-1_6 branches
- JRUBY-6076 Mixed-case Java package name not resolved
- JRUBY-6077 Allow loading a Ruby source file from the class path using the fully qualified name
- JRUBY-6078 Introduce jzlib-based zlib implementation
- JRUBY-6096 Unable to build completely from source (rdoc missing)
- JRUBY-6100 NameError Exception if I try to use syck as YAML engine
- JRUBY-6101 JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
- JRUBY-6103 allocator undefined for NativeException
- JRUBY-6108 bin/jruby script has incompatible bourne shell syntax
- JRUBY-6119 Loading a Ruby source file from a subdirectory of a JAR without a directory entry fails
- JRUBY-6127 Magic comment should start in column 1
- JRUBY-6129 Multiple assignment with splatted LHS fails to call #to_ary on corresponding objec
- JRUBY-6130 hash#update calls to_hash method on frozen object (in 1.9 mode)
- JRUBY-6131 Integer#round can effectively hang jruby for large negative arguments in –1.9 mode
- JRUBY-6137 Small Leak in Fileno Bookkeeping For STDIO RubyIOs
- JRUBY-6141 All MatchData objects resulting from an invocation of String#scan are updated with the current match
- JRUBY-6143 1.9: RubySpec: Regexp Spec failures with /n
- JRUBY-6145 Cleanup Maven POMs So ‘mvn install’ Works Again
- JRUBY-6149 Some native exceptions are wrapped too agressively
- JRUBY-6165 IO.popen forcibly kills process when io is closed
- JRUBY-6169 Update 1.9 Standard Library to 1.9.3p0
- JRUBY-6172 Requiring a file from a JAR that has a path inside the JAR that coincides with a path on the file system that includes a symlink fails
- JRUBY-6180 “SystemCallError: Unknown error - Connection reset by peer” should be mapped to Errno::ECONNRESET
- JRUBY-6199 JRuby is hardcoded to use ‘-mmacos-version-min=10.4’ which is not compatible with ‘-rpath’ being used
- JRUBY-6202 JIT-ed class names only use method names, causing collisions
- JRUBY-6204 UTF-8 char in XML hangs in Joni
- JRUBY-6221 json gem encoding/decoding is 2x slower than under MRI
- JRUBY-6222 Remove rdoc data from dist in favor of rdoc-data gem
- JRUBY-6227 1.9: Struct#members and Struct::members should return an Array of Symbols in 1.9
- JRUBY-6229 Allow a way to activate the profiling API when embedding JRuby
- JRUBY-6230 Cache jar content list to speed up file? operation
- JRUBY-6234 Kernel.system doesn’t work with environement parameters
- JRUBY-6237 Allow the syntax `a = b = f 1`
- JRUBY-6239 unable to silence warnings
- JRUBY-6241 Define a read-only global variable $-W
- JRUBY-6243 Add support for graph profile with HTML output
- JRUBY-6245 `ant test` errors on Windows with test_dir_with_jar_without_dir_entry.rb
- JRUBY-6248 thread leak
- JRUBY-6249 Creating binary for jffi
- JRUBY-6250 When executing an Ant build.xml file, the Ant executable should not be required to live on the environment’s $PATH
- JRUBY-6251 NailGun and 1.9 seem not to be usable at the same time ( –1.9 and –ng)
- JRUBY-6259 ant test - fails in WinXP: (LoadError) no such file to load – jruby
- JRUBY-6265 Setting load path on ScriptingContainer with LocalContextScope.SINGLETON does not work
- JRUBY-6266 Unicode encoding problem in CSV.foreach
- JRUBY-6269 JRuby –1.9 cannot load YAML output from JRuby –1.8
- JRUBY-6277 Dependency to compiler package from org.jruby.Ruby breaks Ruboto
- JRUBY-6278 Double require bug in the handling of concurrent requires
- JRUBY-6279 Invokedynamic support is missing ‘float_op_equal’
- JRUBY-6280 Fails to open fifo for writing.
- JRUBY-6281 Applet does not work in the 1.9 mode
- JRUBY-6282 Colon is not allowed in a file name on Windows
- JRUBY-6283 Master crashes when calling an FFI-attached C library function
- JRUBY-6284 Calls to Kernel#exit result in an exception printed on stderr
- JRUBY-6285 JRuby 1.7 master on Java7u2 is slower running a benchmark than master on Java6
- JRUBY-6291 Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
- JRUBY-6292 Massive perf degradation in pack after ByteList update
- JRUBY-6293 jruby-dist-master does not build C extensions
- JRUBY-6295 Dir.chdir, $HOME and $LOGDIR behavior
- JRUBY-6300 TestMethodmissing testcase fails with Java 7
- JRUBY-6301 scripting_lang.jruby:undefined method in test_loop_1_9.rb
- JRUBY-6305 C Extension fails to build
- JRUBY-6307 Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
- JRUBY-6313 jruby-launcher rspecs fail on ubunutu
- JRUBY-6318 Tempfile#open does not return the value of the block given to it
- JRUBY-6325 Java::OrgYamlSnakeyamlReader::ReaderException: special characters are not allowed
- JRUBY-6327 java.lang.StringIndexOutOfBoundsException: String index out of range: 1
- JRUBY-6328 Ruboto: regression: LoadError with master
- JRUBY-6334 Import multiple classes via java_import
- JRUBY-6337 poor error message on importing java class
- JRUBY-6341 Regression: Enumerable#first on a Java list returns an array, not an element
- JRUBY-6343 Running Webrick in 1.9 mode is causing IllegalMonitorStateException
- JRUBY-6344 Embedded \r should not be treated as end of comment line
- JRUBY-6349 Running ‘ant clean-all’ in git-free environments fails
- JRUBY-6371 Mac OS X installer missing from snapshots directory
- JRUBY-6378 cext fails to compile on 64-bit Ubuntu Oneirc
- JRUBY-6379 rdoc, ri, rdoc-data and ‘generate-ri-cache’ ant task
- JRUBY-6386 time.localtime not taking any arguments
- JRUBY-6387 Should JRuby 1.7 set 1.9 compatibility as default?
- JRUBY-6389 TypeError: can’t convert Pathname into String - JRuby in 1.9 mode not handling Pathname in $LOAD_PATH consistently with MRI
- JRUBY-6393 Implement Addrinfo class
- JRUBY-6394 Socket.new takes symbolic protocol, etc
- JRUBY-6401 Psych::SyntaxError while installing some gems in 1.9 mode
- JRUBY-6413 jruby gem install chops off first character from files it extracts
- JRUBY-6417 exception in rake assets:precompile in jruby-1.6.6
- JRUBY-6419 GzipReader encodings still not right; breaks “gem install”
- JRUBY-6421 installing jruby-launcher fails with wrong filenames (zlib error apparently)
- JRUBY-6438 “TypeError: can’t convert Array into String” from ffi code in 1.9 mode
- JRUBY-6439 cext: Memory leak in String and Array handling
- JRUBY-6449 connect_nonblock + select needs to eventually finishConnect
- JRUBY-6450 jruby-win32ole fails under java7 and jruby master; can’t find org.jruby.runtime.builtin.IRubyObject.toJava(Class)int
- JRUBY-6464 Use ‘mvn versions:set -DnewVersion=<whatever>’ instead of our Ruby rake code for updating poms
- JRUBY-6475 md5 digest causes thread lock
- JRUBY-6476 org.jruby.util.Sprintf.rubySprintfToBuffer causing thread locks
- JRUBY-6477 Tempfile#stat raises java.lang.NullPointerException when unlinked
- JRUBY-6483 Ruby array to_java does not appear to work
- JRUBY-6485 :__recursive_key__ left in threadlocals
- JRUBY-6492 “InvalidTransformException” on startup of large application
- JRUBY-6496 Kernel#Hash
- JRUBY-6498 Net::Http does not close socket when open_timeout is exceeded
- JRUBY-6501 warning: variable $KCODE is no longer effective on github master JRuby (1.9 mode)
- JRUBY-6502 “Config” should be deprecated in JRuby 1.7 (1.9 mode)
-
JRUBY-6504 Block parameter syntax issue where the closing comes at the beginning of the line - JRUBY-6511 Timeout doesn’t work when https server not responding
- JRUBY-6512 Time.now shows wrong timezone for Moscow region
- JRUBY-6517 StringIO#ungetc issue on JRuby 1.6.6 and 1.6.7 in 1.8.7 mode
- JRUBY-6523 Static ThreadLocals must be weak or soft or not static
- JRUBY-6526 Socket#accept no such method?
- JRUBY-6527 Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable
- JRUBY-6528 Socket#connect_nonblock and IO::select appear to be misbehaving?
- JRUBY-6533 JavaNullPointer Exception instead method_missing
- JRUBY-6534 Broken block-local vars in 1.9 mode
- JRUBY-6538 ‘obj !~ thing’ is not the same as obj.send(:!~, thing)
- JRUBY-6541 DRb::DRbIdConv difference between 1.8 and 1.9
- JRUBY-6545 unable to load win32/registry in 1.9 mode
- JRUBY-6549 JRuby 1.7 HEAD does not properly detect platform under OpenJDK 1.7.0-u4-b228
- JRUBY-6551 Incorrect Ruby compatibility description displayed
- JRUBY-6554 \r at the end of String can cause SyntaxError
- JRUBY-6556 BigDecimal divided by Rational gives nil in –1.9 mode
- JRUBY-6559 ZLib buggy handling in 1.6.7
- JRUBY-6560 File.expand_path for path starting with “jar:file:” fails
- JRUBY-6561 Update to latest rubygems
- JRUBY-6567 characters to the console aren’t echoed after a background then foreground of jruby irb session
- JRUBY-6570 autoload :Time, ‘time’ doesn’t work
- JRUBY-6571 StackOverflow when calling java.util.regex.Matcher#end
- JRUBY-6572 File.open with ‘b’ options should always ‘gets’ string with ‘ASCII-8BIT’ encoding, regardless the value of ‘Encoding.default_internal’
- JRUBY-6574 Socket#bind does not convert nil to 0
- JRUBY-6582 Encoding when using ‘%’ inconsistent with MRI 1.9
- JRUBY-6583 Simple jar built with warbler works in 1.6.7, breaks in 1.7 with require ‘haml’
- JRUBY-6584 File.mtime() is slower than it should be
- JRUBY-6588 String#encode should not convert binary to mangled UTF-8
- JRUBY-6589 java.lang.ClassCastException on exit from irb
- JRUBY-6590 DelegateClass subclasses can’t include Java interfaces
- JRUBY-6598 to_yaml has garbled text if object contains Chinese or Japanese characters
- JRUBY-6599 test/test_socket.rb spuriously fails
- JRUBY-6603 Concurrency bug in org.jruby.util.ShellLauncher.getCurrentEnv
- JRUBY-6604 Cannot programmatically create regular expression /[\x80]/n
- JRUBY-6605 java.lang.ClassCastException: jline.console.history.MemoryHistory$EntryImpl cannot be cast to java.lang.String
- JRUBY-6606 Dir::entries does not support none ascii character
- JRUBY-6607 TCPSocket connect failure inside Timeout leaves orphaned sockets
- JRUBY-6611 LoadServiceResource Opens But Never Closes InputStreams When Constructed With a URL
- JRUBY-6612 some problems with JRuby seeming to not detect Java Long arithmetic overflows
- JRUBY-6618 NPEs on CI spec run on master
- JRUBY-6619 NoMethodError ‘upcase’ on Java string
- JRUBY-6621 New ThreadLocal recursiveKey breaks usage of runtimes across multiple Java threads
- JRUBY-6623 In IRB, backslashes are gobbled in the eval loop
- JRUBY-6624 File#exists? cannot find file in JAR
- JRUBY-6626 Ruboto: ThreadContext throws NPE in finalizer
- JRUBY-6627 File#open fails for file in a JAR with a “jar:” prefix in the path
- JRUBY-6628 #to_date fails on Rails request param with ArrayIndexOutOfBoundsException
- JRUBY-6630 Tempfile doesn’t take a hash in the constructor
- JRUBY-6631 Time#nsec always returns 0
- JRUBY-6634 String.new(string) does not seem to clone the input
- JRUBY-6637 String encoding difference between jruby –1.9 and MRI 1.9 (force_encoding a no-op in this case?)
- JRUBY-6641 Java Exceptions Can Only Be Rescued if First in Exception List When Running in Interpreted Mode
- JRUBY-6642 RubyException.printBacktrace omits the first line
- JRUBY-6644 Time#strftime doesn’t respect %:z
- JRUBY-6647 Comparison of a self referential struct causes a stack overflow
- JRUBY-6648 Opening a file with integer flags mixed with hash options raises an exception
- JRUBY-6649 Opening a file with a hash as options will raise an `ArgumentError: invalid access mode 4610` exception JRUBY-6652 JVM crash while running rails app on Torquebox from com.kenai.jffi.Foreign.getZeroTerminatedByteArray
- JRUBY-6654 Using ruby’s standard gserver library causes jruby to run out of memory
- JRUBY-6660 An invalid Makefile is genereated when a ‘depend’ file exists.
- JRUBY-6661 strftime should behave the same for datetime and time
- JRUBY-6668 StringScanner#scan_until spins forever on UTF-8 data
- JRUBY-6669 failure at test/test_kernel.rb:588 if jruby is in a directory with mixed-case
- JRUBY-6670 XMLRPC::XMLWriter::Simple has a Problem in 1.9 Mode
- JRUBY-6671 jruby-launcher fails to compile with GCC 4.6.3 on OSX
- JRUBY-6675 shadowing outer local variable warning in ffi
JRuby 1.6.7.2 Released
Tuesday, May 01 2012
The JRuby community is pleased to announce the release of JRuby 1.6.7.2.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This is a special release of JRuby which only updates our shipped copy of RubyGems to version 1.8.24. This version of RubyGems is the first version to verify that a RubyGems server certficate is valid. This helps to prevent a “man in the middle” style of attack when someone controls a portion of the network between you and the RubyGems server (See the release notes for RubyGems 1.8.23 and 1.8.24 for more details). All users are encouraged to upgrade to JRuby 1.6.7.2.
Note: You may also use the normal RubyGems upgrade mechanisms, but this will overwrite the Maven support we ship as part of JRuby.
Notable Change:
- Update to Rubygems 1.8.24
JRuby 1.6.7 Released
Wednesday, February 22 2012
The JRuby community is pleased to announce the release of JRuby 1.6.7.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.6 (and lower) are encouraged to upgrade to 1.6.7.
Some astute readers of our release announcements will remember this snippet:
“Because master keeps getting further and further away from our 1.6 branch we have decided to make this our last 1.6 release. We largely fulfilled our goal of having reasonable 1.9 support.”
After releasing 1.6.6, we got a smallish flood of simple to fix 1.9 compatibility issues. We realized our charter of reasonable 1.9 support had not quite been reached. So we decided to put out 1.6.7. As of JRuby 1.6.7, we think we are leaving the 1.6 series at a nice stopping point. Plus, 1.7.0 is less than two months away.
Notable Changes:
- Fix circular require issue in Rubygems introduced by our Maven gem support
- Fix regression in popen* where streams get prematurely closed
- Many 1.9-mode encoding bugs fixed in String, Regexp, StringIO, and YAML
- Win32OLE now works in 1.9-mode
- ffi on Win x64 now knows about basic types :size_t
- Use jzlib to fix a set of issues with out zlib library
- Reduced internal locking based on user reports
- C extensions work on OS X again
- Gems with gemspecs which contain UTF-8 multi-byte chars install in 1.9 mode
1.6.7 Issues Resolved:
- JRUBY-3958 Caller mismatch within include/extend
- JRUBY-4956 1.9: ConditionVariable#wait should return self
- JRUBY-5165 non-blocking IO does not function correctly: connect_nonblock followed by an IO.select
- JRUBY-5189 1.9: invalid byte sequence in UTF-8
- JRUBY-5216 WIN32OLE gem cannot be loaded in 1.9 mode
- JRUBY-5437 Encoding of result string for String#gsub is not consistent
- JRUBY-5761 /\z/ raises ArrayIndexOutOfBoundsException in –1.9 mode
- JRUBY-5764 RegexpError when running any rake command
- JRUBY-5836 soap library doesn’t handle the situation where the backtrace is nil
- JRUBY-5846 JRuby Internal Java NegativeArraySizeExcetpion when normalising a string
- JRUBY-5903 citrus parser produces ArrayIndexOutOfBoundsException in RubyString.java
- JRUBY-6104 JRuby hangs on testing string for equality with ‘test/unit’ testing framework
- JRUBY-6110 Security issue with org.jruby.embed.class.path in unsigned JavaFX applet.
- JRUBY-6193 asprintf is added to Solaris > 10 & Illumos, local asprintf.h breaks the build
- JRUBY-6208 bad gem file creation using mode –1.9
- JRUBY-6238 Issues with eval - wrong arguments
- JRUBY-6396 strip! fails on File.read
- JRUBY-6398 java.lang.NullPointerException when executing jruby.exe under Windows 7 (v1.6.6)
- JRUBY-6399 wrong number of arguments (4 for 3) when calling enum_for in 1.9 mode
- JRUBY-6400 StackOverflowError in loading bundler when starting cucumber
- JRUBY-6404 multiple assignment fails to deconstruct object
- JRUBY-6407 StackOverflowError regarding RubyGems, require(), rubygems/defaults/jruby.rb, and jruby/util.rb
- JRUBY-6414 YAML.load cause errors in particular string
- JRUBY-6415 1.9: Psych::SyntaxError when trying to install will_paginate 3.0.3
- JRUBY-6416 JRuby 1.6.6(1.9-mode) freezing in Rails application without any error, when manipulating a String with special characters
- JRUBY-6418 CLONE - Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
- JRUBY-6420 LoadError: load error: bundler/definition – java.lang.NoClassDefFoundError: Could not initialize class org.jruby.javasupport.JavaClass
- JRUBY-6422 Regression: Variety pack of failures with bundler install via rubygems
- JRUBY-6425 StringIO.readline of UTF-8 string will return a ASCII-8BIT
- JRUBY-6433 DRegexp with specific encodings were getting non-strict versions in 1.9 mode
- JRUBY-6434 sprintf does not support name references, like sprintf(‘%%<xyz>s’, :xyz => ‘abc’)
- JRUBY-6441 malloc: error for object 0x7f94d1a24650: pointer being freed was not allocated
- JRUBY-6442 TCPSocket#write_nonblock blocks
- JRUBY-6454 Unable to launch browsers with watir or capybara in 1.9 mode
- JRUBY-6456 ThreadLocal Leak in 1.9 Mode w/ Internal Recursive Map
- JRUBY-6457 class_variable_get (et al) should be public in 1.9 mode
- JRUBY-6458 jruby-launcher fails to install from rvm with default 1.9 mode
- JRUBY-6462 Gems build incorrectly in 1.9 mode
- JRUBY-6463 File.read(‘foo’).strip Leaves Trailing Newline Under 1.9
- JRUBY-6471 JRuby doesn’t seem to forward java methods to java arrays properly
- JRUBY-6474 __LINE__ is not reset to 1 when passing a filename to binding.eval
- JRUBY-6480 Missing type intptr_t from ffi
JRuby 1.6.6 Released
Monday, January 30 2012
The JRuby community is pleased to announce the release of JRuby 1.6.6.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.5.1 (and lower) are encouraged to upgrade to 1.6.6.
Because master keeps getting further and further away from our 1.6 branch we have decided to make this our last 1.6 release. We largely fulfilled our goal of having reasonable 1.9 support. Follow up fixes for 1.9 support will only be fixed on master from this point forward. JRuby 1.7.0 will be the next release of JRuby.
Notable Changes:
- Updated stdlib to match Ruby 1.8.7p357 and 1.9.2p312
- Updated RubyGems to 1.8.15
- Multiple 1.9-mode yield/splat bugs fixed (pp, rspec 2.8 working again)
- Multiple 1.9-mode encoding bugs fixed
- Critical fixes in Random and Fiber
- Map Scala operator methods to symbolic names ($plus, etc)
1.6.6 Issues Resolved:
- JRUBY-6386 time.localtime not taking any arguments
- JRUBY-6384 yaml broken for last 1.6.6 build?
- JRUBY-6383 Scala integration breaks with 1.6.6
- JRUBY-6382 1.9: Padrino can’t generate an app
- JRUBY-6381 java.util.Collection#each dose not respect to_ary defined by objects that are iteratered
- JRUBY-6380 Original array is overwritten when select! is called on a copy
- JRUBY-6377 rspec .should include() fails in –1.9 mode
- JRUBY-6375 Uninformative YAML parser error
- JRUBY-6373 ThreadError: Mutex is not owned by calling thread, when interrupting thread using a Ruby Mutex
- JRUBY-6370 Regression in 1.6.6 in –1.9 mode
- JRUBY-6367 –pre command line switch not working in 1.9 runtime
- JRUBY-6366 More array splatting bugs in 1.9 mode
- JRUBY-6361 RbConfig reports wrong OS type on Solaris
- JRUBY-6359 Can’t convert nil to String building ActiveSupport RDoc in 1.9 mode
- JRUBY-6354 SyntaxError: (RegexpError) invalid multibyte escape in 1.9 mode in the 50th iteration
- JRUBY-6338 JRuby does not look for .jrubyrc in home directory on Windows
- JRUBY-6324 random seed for srand is not initialized properly
- JRUBY-6323 JRuby does not pay attention to either -U or LANG in determining encoding for ARGV (it is always ASCII-8BIT)
- JRUBY-6319 ‘binding’ returns wrong binding
- JRUBY-6318 Tempfile#open does not return the value of the block given to it
- JRUBY-6307 Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
- JRUBY-6303 Cannot gem install from a remote repository in 1.9 mode
- JRUBY-6295 Dir.chdir, $HOME and $LOGDIR behavior
- JRUBY-6284 Calls to Kernel#exit result in an exception printed on stderr
- JRUBY-6282 Colon is not allowed in a file name on Windows
- JRUBY-6281 1.9: Applet does not work in the 1.9 mode
- JRUBY-6272 Encoding exception running JRuby 1.6.5 (1.8 mode)
- JRUBY-6233 jruby-complete-1.6.5.jar!/META-INF/jruby.home/bin/rake missing
- JRUBY-6227 1.9: Struct#members and Struct::members should return an Array of Symbols in 1.9
- JRUBY-6224 In MRI 1.9 the flag for Module#const_get also controls lookup of toplevel constants but not in JRuby
- JRUBY-6217 Coverage module not working with Rails ActiveRecord associations
- JRUBY-6214 Dir#rmdir raises improper exception if directory is not empty.
- JRUBY-6212 IO#inspect in 1.9 could be prettier
- JRUBY-6209 Hash#rehash does not work under some condition
- JRUBY-6208 bad gem file creation using mode –1.9
- JRUBY-6206 Incorrect SHA1 on two required packages in Maven Central
- JRUBY-6205 ‘Bad file descriptor’ when using IO.popen4 with OpenJDK 7
- JRUBY-6204 UTF-8 char in XML hangs in Joni
- JRUBY-6202 JIT-ed class names only use method names, causing collisions
- JRUBY-6201 File reading performance regression
- JRUBY-6200 1.9: Loading some Unicode characters results in non-printable characters on Windows
- JRUBY-6199 JRuby is hardcoded to use ‘-mmacos-version-min=10.4’ which is not compatible with ‘-rpath’ being used
- JRUBY-6198 When calling dup on file open in binmode the new object does not respect binmode
- JRUBY-6192 jruby::Handle declarations use ‘extern “C”’, causing linker symbol mismatches
- JRUBY-6182 Marshal.dump yields different value after adding/removing instance variables (and disagrees with MRI)
- JRUBY-6176 SecureRandom.uuid is not implemented
- JRUBY-6173 pp is broken in –1.9 mode
- JRUBY-6172 Requiring a file from a JAR that has a path inside the JAR that coincides with a path on the file system that includes a symlink fails
- JRUBY-6171 Enumerable does not splat
- JRUBY-6170 Fibers are broken in JRuby 1.6.5
JRuby 1.6.5.1 Released
Tuesday, December 27 2011
The JRuby community is pleased to announce the release of JRuby 1.6.5.1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.6.5.1 is a special release with a single patch applied to our JRuby 1.6.5 source to correct CERT vulnerability CERT-2011-003. All users are recommended to upgrade to JRuby 1.6.5.1 to get this security fix.
A fuller JRuby 1.6.6 with bug fixes from the last two months will be released mid-January…
Background for the CERT advisory:
(for the impatient: predictable hashing algorithm and open access to a hash from a server can possibly allow Denial of Service (DOS) attacks)
Hashing 101
Hash tables apply a math function (hashing function) to the key of a key-value pair. The result of the hashing function is a location to a hash bucket which stores the key/value pair internally:
a[:heh] = 1
hashing_function(:heh) -> store :heh/1 in hash bucket #3
a[:foo] = 2
hashing_function(:foo) -> store :foo/2 in hash bucket #13
a[:bar] = 3
hashing_function(:bar) -> store :bar/3 in hash bucket #1
Hashes have many buckets and in theory all key/value pairs added to a hash will get spread out evenly across the hashes buckets. In practice, some number of keys will end up hashing into the same hash bucket (known as a hashing collision). As you get more key/value pairs stored to the same hash bucket the time to access those particular key/value pairs will slow down. This is because you need to walk some portion of the entries in the bucket to find the specific one you are looking for (hash structures will often make entries in an individual bucket a simple list structure).
a[:gar] = 4
hashing_function(:gar) -> store gar/4 in hash bucket #3 (same bucket as :heh)
In this example, accessing a[:gar] and a[:heh] may take longer than the other keys because they are sharing a hash bucket.
The Attack
The general application of the attack is for “the bad guys” to figure out a large set of values which will hash to the same hash bucket. Once they create this list they will send all those values to a server. The server will store them in a hash (think parameter list in Rack, for example). The act of storing or accessing any of those values takes longer and longer as the number of entries in a single hash bucket grows. The result will be a Denial Of Service (DOS) attack if enough values get stored.
hashing_function(:hostname) -> hash bucket #3
hashing_function(:aZ1) -> hash bucket #3
hashing_function(:cvg) -> hash bucket #3
hashing_function(:azr) -> hash bucket #3
... # many elided
hashing_function(:1fr) -> hash bucket #3
hashing_function(:yu3) -> hash bucket #3
hashing_function(:hyX) -> hash bucket #3
host = params[:hostname] # Uh oh! need to find this amongst many bucket buddies
The Fix
Adding a little bit of randomization to the hashing algorithm ends up making it much, much more difficult to figure out how to generate this type of attack. JRuby 1.6.5.1 (and all later JRuby releases) all have this additional randomization built into the hashing algorithm. The result should be decent hash bucket distribution that is difficult for attackers to predict. More information
This vulnerability is not exclusively an issue of JRuby. Other Ruby implementations also have a similar issue (also patched today). In fact, Java and PHP also appear to be susceptible to this style of attack. For more information, please see the CERT announcement.
Also, consider that language implementations are really only susceptible to this attack via frameworks which allow an external hacker to store arbitrary and/or unbounded key/values into a hash. Ruby Rack had this vulnerability, but they have fixed things so that the amount of parameters stored is bounded by a size to remove the possibility of a DOS attack. Rack users should upgrade to the latest version.
JRuby 1.6.5 Released
Tuesday, October 25 2011
The JRuby community is pleased to announce the release of JRuby 1.6.5.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.4 (and lower) are encouraged to upgrade to 1.6.5.
Notable Changes:
- Many –1.9 encoding issues resolved
- .jrubyrc support for storing convenient execution options
- New cext.enabled property to turn off only C extentions but not native support
- C extension support now uses less memory
- Updated to Rubygems 1.8.9
- -rjruby/thread_dump adds a USR2 Ruby thread dumper
- Improved peformance interacting directly with Java Maps
- Improved fiber performance and support for JVM coroutines
- Improved zlib support
- 36 Issues resolved
1.6.5 Issues Resolved:
- JRUBY-5324 StringScanner should be 1.9 aware
- JRUBY-5499 Update to rubygems 1.5.2 since 1.5.0 has severe bugs
- JRUBY-5735 I18n handling of Rails 3.0 differs between 1.9 and 1.8 compatibility mode
- JRUBY-5758 bundler not working in jruby 1.6.1 (ruby-1.9.2-p136) — works in 1.8 mode
- JRUBY-5763 Encoding::CompatibilityError with UTF-8 encoded ERB template
- JRUBY-5778 net http and gzip decompression in 1.9
- JRUBY-5793 java.lang.ArrayIndexOutOfBoundsException installing chicken_little gem
- JRUBY-5794 1.9: Bundler fails to install certain gems from github
- JRUBY-5861 Installing gems that have unicode characters in the gemspec cause an error in 1.9 mode
- JRUBY-5885 java.util.Map#[]= is up to 20 times slower than #put
- JRUBY-5927 JRuby in 1.9 mode fails text-hyphen’s test/test_bugs.rb the same way that 1.8 mode does
- JRUBY-5946 IO.select is returning write array with nil elements
- JRUBY-5994 Bad performance using hash accessors on ConcurrentMap
- JRUBY-6017 Undocumented windowBits feature of Zlib::Infrate/Deflate
- JRUBY-6019 A Ruby instance is not fully unregistered from the BeanManager on teardown
- JRUBY-6030 After calling const_set, setting const name didn’t set Class.name
- JRUBY-6031 ActiveRecord::JDBCError in JRuby 1.6.4
- JRUBY-6034 NullPointerException at RubyProc.java:248
- JRUBY-6036 REXML fails on XML with UTF-8-chars on jruby in 1.9-mode
- JRUBY-6049 Bignum#[] returns an incorrect result when Bignum is given
- JRUBY-6050 Fixnum#[] blows when small Bignum is given
- JRUBY-6053 [1].pack(“b2”) returns an 1-length string
- JRUBY-6060 NKF converts strings into wrong encoding
- JRUBY-6064 Builder gem incompatible in –1.9 mode
- JRUBY-6070 TCPSocket#new issues with local_addr and local_port
- JRUBY-6075 ant dist fails on both master and jruby-1_6 branches
- JRUBY-6077 Allow loading a Ruby source file from the class path using the fully qualified name
- JRUBY-6079 gherkin.lexer.LexingError running cucumber example i18n/it jruby using compatibilty mode 1.9
- JRUBY-6101 JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
- JRUBY-6108 bin/jruby script has incompatible bourne shell syntax
- JRUBY-6116 Errors on String#lines
- JRUBY-6118 Dir.glob duplicate folder names
- JRUBY-6135 CASEFOLD systems magically screw up globs with . or .. in them
- JRUBY-6139 JRuby 1.9 mode encoding problem on to_yaml method
- JRUBY-6141 All MatchData objects resulting from an invocation of String#scan are updated with the current match
- JRUBY-6144 1.9 RubySpec failures on BEGIN
JRuby 1.6.4 Released
Monday, August 22 2011
The JRuby community is pleased to announce the release of JRuby 1.6.4.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.3 (and lower) are encouraged to upgrade to 1.6.4.
Notable Changes:
- 1.9 language and core class fixes
- New Native MacOS installer
- Overloaded Java method dispatch perf fix
- Java dispatch block cercion perf fix
- Disabling native now disables C extension support
- JRuby can be built with 1.9 mode by default
- 48 Issues resolved
1.6.4 Issues Resolved:
- JRUBY-928 Java arrays don’t inherit from java.lang.Object in Rubified Java class hierarchy
- JRUBY-4699 Different select() behavior compared to MRI
- JRUBY-4717 1.9 New digest methods are missing (base64digest and base64digest!)
- JRUBY-4925 Evaluation of constant happens before rhs of assignment (different to mri)
- JRUBY-5146 Enumerator#next has performance issues.
- JRUBY-5441 Attempt to create decimal 2.2250738585072012e-308 sends JVM into tight infinite loop
- JRUBY-5459 JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
- JRUBY-5496 Need to split jar for App Engine
- JRUBY-5546 Using -J-Djruby.reify.classes=true sometimes crashes JRuby 1.6.0RC2
- JRUBY-5564 become_java! does not create java class which can be loaded by the context-classloader (as of >= 1.6.0.RC1)
- JRUBY-5593 stat.st_gid unsupported on this platform (NotImplementedError)
- JRUBY-5622 Regex string interpolation breaks unicode properties
- JRUBY-5737 error: “Unsupported platform: unknown-darwin” when using JRuby’s ffi and Java 1.7 macosx-port build
- JRUBY-5771 WeakRef::RefError wrongly defined as ::RefError, causing lots of runtime warnings when using weakref
- JRUBY-5809 1.9 String.inspect produces wrong output on UTF-8 string
- JRUBY-5896 Could not initialize class com.kenai.jaffl.struct.Struct$Constants
- JRUBY-5906 jruby.reify.classes fails with NPE
- JRUBY-5909 Converting range to array with zip results in TypeError
- JRUBY-5915 “gem build” results in bogus gemspec in –1.9 mode
- JRUBY-5918 Float marshal depends on locale
- JRUBY-5922 Magic comment processing blows up on files with only a comment line with no newline
- JRUBY-5924 Wrong Behavior at MatchData#end and Strings with special characters
- JRUBY-5926 IO#gets and StringIO#gets both throw exceptions when you pass in a limit in 1.9 mode
- JRUBY-5931 Wrong handling of “special” letters encoded in utf-8
- JRUBY-5932 IPSocket.peeraddr should take an argument to note do a lookup
- JRUBY-5933 ENV[]= causes segfault when accessed concurrently from different runtimes
- JRUBY-5935 Add support for the ‘coverage’ lib in 1.9 mode
- JRUBY-5936 IO.select throws ArrayIndexOutOfBoundsException
- JRUBY-5940 StringIO#set_encoding is not implemented
- JRUBY-5941 ZeroDivisionError with DateTime strftime(“%S”)
- JRUBY-5950 When to_ary from yield does not return an array we ClassCast
- JRUBY-5954 Incorrect Method#parameters in 1.9 mode
- JRUBY-5960 Something in rails causes File#each to throw InvalidByteSequenceError in 1.9 mode
- JRUBY-5963 Performance regression in 1.6.x in using procs as Java interface impls (closure conversion)
- JRUBY-5965 JavaClass#handleScalaSingletons() raises & catches hundreds of unnecessary NPEs
- JRUBY-5967 NPE when loading rails
- JRUBY-5968 Mac OSX ant dist failure w/ patch
- JRUBY-5971 Pass Psych taint tests
- JRUBY-5973 Failure to connect to Nailgun server produces confusing error
- JRUBY-5975 Support for –oc and –ic option in NKF
- JRUBY-5979 Process::Status.coredump? implementation w/ patch and ruby test script
- JRUBY-5980 Unable to call varargs constructor with 0 arguments.
- JRUBY-5981 Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
- JRUBY-5984 Java integration broke with latest jruby-1_6 branch HEAD
- JRUBY-5989 MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
- JRUBY-5997 Block argument handling is inconsistent in 1.9 mode
- JRUBY-5998 Enumerator#each on enumerators created with Enumerator.new in 1.9 mode is slow
- JRUBY-6007 Extract some classes from NKF
JRuby 1.6.3 Released
Thursday, July 07 2011
The JRuby community is pleased to announce the release of JRuby 1.6.3.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.2 (and lower) are encouraged to upgrade to 1.6.3.
Notable Changes:
- 1.9 language and core class fixes
- Ruby object construction performance boost
- Require performance improvements
- Windows native exec fixes
- 39 Issues resolved
1.6.3 Issues Resolved:
- JRUBY-2457 Instantiation of Ruby subclass of Java class does incorrect constructor argument check
- JRUBY-5511 1.9: Failing character iteration specs for StringIO in 1.9 mode
- JRUBY-5669 RubySpec: String#strip failures (1.9 mode)
- JRUBY-5716 Enumerable should provide each_with_object
- JRUBY-5719 Trivial patch to bin/jruby to allow spaces in the path
- JRUBY-5722 Duplicate class definition issue in 1.9 mode
- JRUBY-5724 jrubyc generates classes with the wrong names
- JRUBY-5743 Build fails to run on OpenJDK build on OS X 10.6
- JRUBY-5768 apparent bug in mkmf logic
- JRUBY-5773 assignment in a method with default argument strip off other arguments.
- JRUBY-5807 1.9: String.rstrip brokes UTF-8 string.
- JRUBY-5813 FFI::AutoPointer occasionally calls releaser proc when GC’d, even if autorelease is set to false
- JRUBY-5820 HashMap#map does not splat the arguments to the block
- JRUBY-5824 exec(env, command) and Process.spawn(env, command) throw Errno::ENOENT exception
- JRUBY-5827 FFI enum always maps the value 0
- JRUBY-5828 FFI Structs no longer support bools
- JRUBY-5833 $LOAD_PATH scanning slowness
- JRUBY-5835 ruboto: File#read fails with jruby-jars-1.6.2
- JRUBY-5837 Building jruby in git-free environment fails
- JRUBY-5839 Enumerable#map is picky about it’s internal block arguments in –1.9 mode
- JRUBY-5840 Rails won’t start with -X+C
- JRUBY-5841 Call to ScriptingContainer#setCurrentDirectory is ignored after a call to ScriptingContainer#put
- JRUBY-5844 jruby -x (executing ruby embedded into a message) fails
- JRUBY-5849 make JAVA_VM to be set from environment
- JRUBY-5850 jruby –1.9 : Exception in thread “RubyThread-1: threadtest.rb:1” java.lang.LinkageError: loader (instance of org/jruby/util/JRubyClassLoader): attempted duplicate class definition for name: “threadtest$block_0$RUBY$true?”
- JRUBY-5853 Added WIN32OLE_EVENT#off_event
- JRUBY-5854 conflicting license info in FFI
- JRUBY-5856 CLONE -Kernel.exec will not use a modified ENV PATH to locate commands on Windows
- JRUBY-5857 Should not be able to set ENV keys that contain an =
- JRUBY-5863 Named captures cause crash when there is no match
- JRUBY-5864 jruby bash scripts do not work with msys/mingw
- JRUBY-5871 java.lang.NegativeArraySizeException from RubyEnumerator (after JITed)
- JRUBY-5875 extending Struct and override initialize would make Marshal fail
- JRUBY-5878 Enumerator.map is not yielding all values
- JRUBY-5883 Hash Subclass#== not respected when checking equality of collections.
- JRUBY-5887 Strange error in classloader
- JRUBY-5888 missing File#readbyte
- JRUBY-5889 Problem running JRuby 1.6.2 (via jruby-jars.gem) on 32-bit Systems
- JRUBY-5900 java.lang.ClassFormatError: Invalid method Code length
JRuby 1.6.2 Released
Tuesday, May 24 2011
The JRuby community is pleased to announce the release of JRuby 1.6.2.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.6.2 is our second update to 1.6.x. The main motivation besides spinning incremental releases quicker was a nasty YAML bug which prevented a number of Rubygems from installing (see JRUBY-5581 – ArrayIndexOutOfBounds problem). Expect JRuby 1.6.3 in a couple of weeks.
The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.1 (and lower) are encouraged to upgrade to 1.6.2.
Notable Changes:
- YAML problem generating an ArrayIndexOutOfBounds Exception JRUBY-5581
- Java names of the form getX were not getting aliases of get_x, x (regression)
- A couple of embedding errors (JRUBY-5734, JRUBY-5635)
- A few 1.9 issues resolved
1.6.2 Issues Resolved:
- JRUBY-5805 Kernel.warn should use 2 writes instead of 1 puts
- JRUBY-5802 Problem loading yaml string in 1.9 mode with JRuby 1.6 and newer
- JRUBY-5791 rvm install jruby-head rewrite’s the current rakes hash-bang invocation to be: #!/usr/bin/env jruby
- JRUBY-5788 Java names with only on capital letter not getting Ruby shortcuts defined
- JRUBY-5787 ConcurrencyError from Array#choice when the Array was truncated before
- JRUBY-5786 SelectorPool file descriptor leak
- JRUBY-5776 secure_random.rb broken on jruby (RangeError: bignum too big to convert into ‘long’)
- JRUBY-5769 SSH connection can fail unpredictably
- JRUBY-5762 Proc#=== is not same as Proc#call in 1.9 mode.
- JRUBY-5740 zip with Range argument does not work in 1.9 mode
- JRUBY-5734 Repeatedly getting ScriptEngine causes (NameError) uninitialized constant #<Class:0x………>::ARGV
- JRUBY-5733 String#unpack: @ directive doesn’t work on substrings
- JRUBY-5729 Process.respond_to?(:fork) must return false
- JRUBY-5728 Array#pack is no longer threadsafe
- JRUBY-5712 Threading issues in 1.6.0 and 1.9 mode
- JRUBY-5689 Regression: wrapException throws unexpected exceptions depending on previously-run code
- JRUBY-5674 Cannot override Fixnum operators
- JRUBY-5665 RubySpec: String#scan failures
- JRUBY-5635 ScriptingContainer.put() does not always work (race condition?)
- JRUBY-5624 Class.new { p eval(“self”, binding) }
- JRUBY-5606 asprintf does not exist on Solaris, so C extensions do not build
- JRUBY-5581 gem install throws java.lang.ArrayIndexOutOfBoundsException
- JRUBY-4828 Null-byte vulnerability
JRuby 1.6.1 Released
Tuesday, April 12 2011
The JRuby community is pleased to announce the release of JRuby 1.6.1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.6.1 is our first update to 1.6.0. The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.0 (and lower) are encouraged to upgrade to 1.6.1.
Notable Changes:
- Numerous 1.9-mode features and bugs fixed
- Various fixes to installing and running C extensions
- Kernel.exec on windows does a native exec (CreateProcess)
- Performance fixes for non-blocking IO methods
- Performance tweaks for Array, String, and a few other core classes
- Updated JSR292 (invokedynamic) support
- 193 commits and 47 issues resolved since 1.6.0
1.6.1 Issues Resolved:
- JRUBY-2126 jirb outputs ???? instead of Japanese characters
- JRUBY-2488 Ctrl-D does not work in ‘jirb’
- JRUBY-3943 19: IO objects should use internal encoding to transcode output strings
- JRUBY-4791 IRB with readline “leaks” streams, leaving GC to clean them up
- JRUBY-5044 JRuby throws invalid runtime exception when loading C extensions in different runtimes
- JRUBY-5285 jruby-rake-plugin doesn’t play nice with bundler
- JRUBY-5396 19: YAML anchors & alias merging regression
- JRUBY-5590 IRB completion fails in 1.9 with multiple dot notation elements
- JRUBY-5591 Kconv.kconv throws an NPE
- JRUBY-5592 JRuby 1.6 done blowed up RUBYOPT
- JRUBY-5594 Seeing ConnectionPendingException in my code
- JRUBY-5596 Improve Dalli IO performance
- JRUBY-5597 assignment to Java::byte[] creates range error for values greater than 127 JRUBY-5598 cext/src/invoke.cpp doesn’t include alloca.h
- JRUBY-5599 install-dev-gems target has gems ordered incorrectly
- JRUBY-5600 dist-bin ant target fails because rspec is not installed.
- JRUBY-5601 C extension fails to build on Solaris with newer GCC because of -std=c99
- JRUBY-5602 IndexOutOfBoundsException in Dir.glob_helper for file: path
- JRUBY-5604 JRuby version string should use MRI’s format
- JRUBY-5606 asprintf does not exist on Solaris, so C extensions do not build
- JRUBY-5607 Installing Maven artifacts via rubygems fails: de.saumya.mojo:ruby-tools:jar:0.6-SNAPSHOT is missing
- JRUBY-5608 java.lang.ClassFormatError under IBM JVM
- JRUBY-5609 rubygems maven support does not install artifact from extra repositories
- JRUBY-5610 Socket#accept_nonblock unconditionally raises Errno::EAGAIN
- JRUBY-5624 Class.new { p eval(“self”, binding) }
- JRUBY-5627 JRuby flock silently converts LOCK_EX to LOCK_SH on read-only files
- JRUBY-5628 Missing write_array_of_<foo>() methods
- JRUBY-5629 Backtraces report modules as classes
- JRUBY-5632 19: Incompatible behaviour of splat operator (*) with objects that implement #to_a (w.r.t. MRI)
- JRUBY-5634 File.new (and related paths) unconditionally calling to_int on first arg
- JRUBY-5637 Default exception message uses singleton class when it should not
- JRUBY-5640 Dir#pos= dies if negative value provided
- JRUBY-5641 String.each_line: Newline handling differs between 1.9 and 1.8 compatibility mode
- JRUBY-5646 RubyString.newUnicodeString in 1.9 mode produces ASCII-8BIT
- JRUBY-5648 Method#source_location is nil for methods whose visibility is overridden JRUBY-5649 requiring ‘jruby/profiler’ on a Rakefile causes exception
- JRUBY-5651 java.util.ConcurrentModificationException still occurs
- JRUBY-5680 eval(“self”, Kernel.binding)
- JRUBY-5682 Bundler fails to read some gemspecs under JRuby in 1.9 mode
- JRUBY-5685 IO.popen4 does not work when arguments contain *
- JRUBY-5686 ‘Stabby’ lambdas throw NullPointerException
- JRUBY-5687 Process::Status#exitstatus does not return correct exit status
- JRUBY-5688 Process::Status#pid is missing
- JRUBY-5690 cext GC collects classes and modules that are still in use
- JRUBY-5693 19: Fixnum#** sometimes returns wrong Bignum
- JRUBY-5694 DATA points to wrong file
- JRUBY-5705 Open3.popen3 fails under –1.9 mode
JRuby 1.6.0 Released
Tuesday, March 15 2011
The JRuby community is pleased to announce the release of JRuby 1.6.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.6.0 final is out!
JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it to our continuous integration environment. JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.
Over the next month or two we plan on putting out quicker point releases in anticipation that 1.6.0 will get a new wave of feedback. Give JRuby 1.6.0 a try and let us know how things go.
Major Features:
-
Ruby 1.9.2 language and API compatibility
- Not implemented Encoding::Converter, ripper
- Improved Ruby call performance
- Built-in profiler (–profile, –profile.graph)
- RSpec no longer bundled
- C Extension support (experimental)
- RubyGems Maven support (preview)
- Improved compatibility and user experience on Windows
- jruby-complete.jar now includes 1.9 standard library
- Embedding API refinements
- Over 2000 commits and 270 issues resolved.
JRuby 1.6.0.RC3 Released
Tuesday, March 08 2011
The JRuby community is pleased to announce the release of JRuby 1.6.0.RC3.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.6.0.RC3 is the last release candidate of JRuby 1.6.0.
JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it as a continuous integration platform, and JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.
We are going to seriously try and make this our last RC before going final. Unless we find something devestatingly bad we will release 1.6.0 and then try and spin smaller point builds every 2-3 weeks to address reported problems.
Notable changes since 1.6.0.RC2:
- New readable backtrace format
- Easier to embed in OSGi environment
- Fixed regression which slowed down jar-based requires
- Add native JFFI bits for x86_64 SunOS (Solaris)
- More platforms with pre-built C extension support
- New jruby-core and jruby-stdlib maven artifacts
- More 1.9 compatibility fixes
Major Features:
-
Ruby 1.9.2 language and API compatibility
- Not implemented Encoding::Converter, ripper
- Improved Ruby call performance
- Built-in profiler (–profile, –profile.graph)
- RSpec no longer bundled
- C Extension support (experimental)
- RubyGems Maven support (preview)
- Improved compatibility and user experience on Windows
- jruby-complete.jar now includes 1.9 standard library
- Embedding API refinements
- Over 2000 commits and 265 issues resolved.
Issues fixed since 1.6.0.RC2
Key Summary
- JRUBY-5491 jruby.reify.classes fails with optparse.rb (trinidad)
- JRUBY-5502 RubyUNIXSocket#recvfrom overflows temporary buffer
- JRUBY-5337 No such file to load – rack when booting JRuby 1.6.0RC1 Rails app in Tomcat
- JRUBY-5472 JRuby bash script no longer supports -X-C and similar options
- JRUBY-5534 Performance issue with JRuby 1.6
- JRUBY-5393 1.9: Can’t run debugger
- JRUBY-5481 Marshal specs failing in 1.8 mode
- JRUBY-5509 gem update_rubygems Fails on JRuby 1.5.3
- JRUBY-5477 Caller stacks now include AbstractScript.java
- JRUBY-4544 JRuby + Java Web Start gems can’t be loaded
- JRUBY-5479 Socket#pack_sockaddr_in fails for port numbers greater than 32383
- JRUBY-5483 become_java! only works on the first subclass of a deep class hierarchy
- JRUBY-5397 1.9: Make String#gsub encoding aware for ruby files
- JRUBY-5503 Timeout::timeout makes IO#close block if there’s a #read present
- JRUBY-5471 private method verify_mode= called with Bundler, net/https, jruby-openssl and RubyGems 1.5
- JRUBY-2513 Stack traces for exceptions do not show the correct line number
- JRUBY-5455 StringIO::ungetc can’t handle the “;” character correctly.
- JRUBY-5405 FileStat chardev does not work on Solaris 10 x86
- JRUBY-5463 Process.getpriority should raise an error with an invalid process type
- JRUBY-5490 JSR223: propagate the exceptions
- JRUBY-5487 Kernel#select’s read_array parameter is not respected
- JRUBY-5484 Thread#status isn’t set to “sleep” when blocking on a TCPSocket#read
- JRUBY-5473 Use of -Werror when compiling C extension support causes error on OpenBSD amd64
- JRUBY-5480 jrubyc compile loop do …. end error
- JRUBY-5474 Compiling cext support on OpenBSD amd64 uses wrong directory
- JRUBY-5469 Compiling cext support on OpenBSD puts the library under FreeBSD
- JRUBY-5517 RUBYOPT is pulled from system env always, even for in-process child
- JRUBY-4433 win: Writing to a pipe with closed source raises wrong exception
- JRUBY-5501 When embedding jruby the FORCE compile option breaks constants
- JRUBY-5281 jruby-complete jar not working from directory with spaces
- JRUBY-4618 Backtick execution pauses the process
- JRUBY-4469 Process.spawn seems to be completely broken
- JRUBY-2167 Regexp parse errors should not be rescueable
- JRUBY-5190 BigDecimal#to_f always returns 0.0 for large precisions
- JRUBY-4446 windows: File.grpowned? fails RubySpecs
- JRUBY-5468 rb_time_new prototype doesn’t match definition
- JRUBY-3431 String#encode (and decode?) missing from Ruby 1.9 String
- JRUBY-5434 Random “Detected invalid array contents due to unsynchronized modifications with concurrent users” with Rails 3.0
- JRUBY-1166 ‘public_instance_methods’ different from MRI within Rake (breaking Needle)
- JRUBY-4156 1.9: jruby -S rake spec fails to find ‘spec/rake/spectask’
- JRUBY-5447 maven gem support not working on windows?
- JRUBY-4788 Stackoverflow when calling code from java with wrong parameters
- JRUBY-4914 Process.spawn gives wrong pid in windows
- JRUBY-5498 important JRuby 1.6 startup time regression launching JRuby script from JSR223 (12 sec -> 45 sec)
- JRUBY-5554 Simplify jirb_swing script
- JRUBY-5525 NPE Loading OSEnvironment on Windows
- JRUBY-5552 Method#source_location is nil for methods defined via define_method or define_singleton_method
- JRUBY-5528 JDBC Driver Unloading should be configurable
- JRUBY-5550 Using shoulda prevents Rails from running tests in ruby1.9 mode
- JRUBY-5557 SnakeYAML dependency missing from Maven poms
- JRUBY-5548 rb_call_super causes SystemStackError when used in both current class and ancestor class in a C extension
- JRUBY-5545 JRuby 1.6RC 2 is missing Solaris 10 x86 64bit JFFI support
- JRUBY-5541 Problem with java_import on Android (Ruboto)
- JRUBY-5539 marshal fails in 1.9 with strings
- JRUBY-5532 IO.foreach: Can’t convert Hash into String
- JRUBY-5531 Process.spawn(“ruby”) gives garbage PID
- JRUBY-5514 Errno::EBADF is sometimes raised instead of IOError when TCPSocket#readline is called after TCPSocket#close
- JRUBY-5515 Digest::SHA2 NameError in (1.6.RC2 – 1.9 mode)
- JRUBY-5384 org.jruby.embed.osgi suport in OSGi for ruby code and java code loaded from OSGi bundles
- JRUBY-5522 system(“@command”) should work in windows
- JRUBY-2519 Dir instance object caches directory contents
JRuby 1.6.0.RC2 Released
Wednesday, February 09 2011
The JRuby community is pleased to announce the release of JRuby 1.6.0.RC2.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.6.0.RC2 is the second release candidate of JRuby 1.6.0.
JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it as a continuous integration platform, and JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.
We encourage Ruby and JRuby users alike to test out 1.6.0.RC2 to help us shake out remaining issues. It would be especially helpful if users would test out 1.9 mode (by passing –1.9 flag) to help us round out our 1.9.2 compatibility before the final 1.6.0 release.
Notable changes since 1.6.0.RC1:
- Large number of 1.9 compatibility issues addressed
- Encoding issues (especially involving Regexp)
- Fiddle implementation
- non-ASCII identifiers
- irb (1.8.7, 1.9.2) and command prompt added to Windows installer
- Compiler handles all 1.9 syntax now
- Fixes for new backtrace accuracy, reliability
- Removed all GPL or LGPL-only dependencies
- Updated to RubyGems 1.5.0
- C extension support prebuilt for OS X, Linux (32/64), Windows (32)
- 83 issues resolved since RC1
Major Features:
-
Ruby 1.9.2 language and API compatibility
- Not implemented Encoding::Converter, ripper
- Improved Ruby call performance
- Built-in profiler (–profile, –profile.graph)
- RSpec no longer bundled
- C Extension support (experimental)
- RubyGems Maven support (preview)
- Improved compatibility and user experience on Windows
- jruby-complete.jar now includes 1.9 standard library
- Embedding API refinements
- Over 2000 commits and 265 issues resolved.
Issues fixed since 1.6.0.RC1
- JRUBY-5382 Timeout is firing late under load
- JRUBY-4764 Leaking fileno to ChannelDescriptor mappings in Ruby.retainedDescriptors.
- JRUBY-5345 require ‘ffi’ breaks in windows jar when the path to the jar contains spaces/special chars
- JRUBY-5229 Interpreter is slower for microbenchmarks after “backtrace” merge
- JRUBY-5354 undefined method ‘map’ for {}:Java::JavaUtil::HashMap
- JRUBY-5341 1.9 Rescuing a specific error throws up a Java Exception when $DEBUG is true
- JRUBY-3331 to_f near Float::MAX
- JRUBY-5460 ant test-1.9 doesn’t run any test at all
- JRUBY-5353 new map proxy’s inspect method doesn’t work when Map object is created in Ruby
- JRUBY-2564 File.open interprets ‘/dir’ as ‘./dir’ on Windows
- JRUBY-5347 Float#round(int) isn’t implemented in 1.9 mode
- JRUBY-5358 Arg-passing or splatting error in jitted execution
- JRUBY-5365 java.util.HashMap.new.kind_of? java.util.Map returns false
- JRUBY-5372 Failures in 1.9 test/ruby/test_alias
- JRUBY-4878 Can’t run ruby file with utf-8 characters
- JRUBY-5377 Class.subclasses incompatible with Rails
- JRUBY-4816 Very simple bug with character replacing
- JRUBY-5368 Star and unnamed restarg treated differently in 1.9 mode Proc#parameters
- JRUBY-5342 Add Scala-specific JI logic
- JRUBY-5387 Unable to run Rails tests since we use Psych as default yaml lib
- JRUBY-5315 Time constructors don’t support fractional seconds
- JRUBY-4580 unable to run jirb in –fast
- JRUBY-4178 gzip oddity
- JRUBY-5395 camelCase to snake_case conversion regression
- JRUBY-4904 Aliased method fails equality test
- JRUBY-4871 1.9 Attempt to invoke any method on Delegator leads to ClassCastException
- JRUBY-3434 Ruby 1.9 mode should guess system encoding if not specified
- JRUBY-5399 1.9: Dir#[] doesn’t convert Pathname args to String
- JRUBY-5219 Problem w/ JRuby, Warbler & Weblogic 10
- JRUBY-4722 ant bails with unrecognized -d32 option on OS X on some architecture/os-version/java-version combinations
- JRUBY-4946 Having an attribute named timeout breaks factory_girl under jruby
- JRUBY-5366 jruby 1.6 RC1 ruby 1.9: org.jruby.RubyBasicObject cannot be cast to org.jruby.RubyObject
- JRUBY-5417 Nil backtrace when overriding method_missing and calling super
- JRUBY-5326 1.9: Java error in Psych when running “gem build” command
- JRUBY-5412 Strange each_slice/with_index combo exception
- JRUBY-5016 1.9: SyntaxError when a block var shadows local var
- JRUBY-5356 –profile.graph sometimes shows wrong methods
- JRUBY-5363 Kernel#caller behavior is different for files with .rbw extension
- JRUBY-5261 RSpec >= 2.2 around hooks trigger runtime NPE
- JRUBY-5406 1.9: String#encode does not support “locale” as an encoding
- JRUBY-5418 Getting NativeException: org.jruby.RubyContinuation$Continuation: null with RSpec 2 and EventMachine
- JRUBY-5346 jruby 1.6.0.RC1 doesn’t recognize multibyte strings in 1.9 branch
- JRUBY-5389 IO.popen doesn’t support Array of String’s arg in 1.9 mode
- JRUBY-5433 Process.abort should only accept string arguments
- JRUBY-5431 Kernel#exit! without arg causes wrong process exit code
- JRUBY-5236 test/org/jruby/util/shell_launcher_test is not getting +x set in src dist
- JRUBY-5394 1.9: Array#join using to_a instead of to_s when both defined
- JRUBY-5436 File.open mode doesn’t accept “r:ENC:-“
- JRUBY-5407 add_method_signature causes a VerifyError if used for more than return type.
- JRUBY-5364 become_java! / RubyClass.reify regression
- JRUBY-5429 jruby-complete.jar relocates org.objectweb.asm, but jruby.jar does not
- JRUBY-5143 Encoding of ByteList is not set
- JRUBY-5444 IOJavaAddons.AnyIO pollutes Object unnecessarily
- JRUBY-5450 Marshal.load and Marshal.dump not implemented?
- JRUBY-5355 1.9: defined? does not yet compile, is used by RubyGems
- JRUBY-4749 require ‘rbconfig’ fails on GAE because of NullPointerException
- JRUBY-4849 Provide or update links to source/project, attribution, and license info for all libraries ship with JRuby
- JRUBY-5203 included Module is not picked up by runtime
- JRUBY-4907 popen4 reports wrong PID on Windows
- JRUBY-5343 ScriptingContainer throws LoadError when there are spaces in the classpath (Ruby 1.9 mode only)
- JRUBY-5367 Rake/Gem::PackageTask fails with the rubygems 1.4 upgrade, when using java platform
- JRUBY-5410 JRuby needs to provide a dist free of GPLed libraries, for GPL-sensitive consumers like Apache
- JRUBY-5388 Requiring a filename with accented characters fails
- JRUBY-5376 singleton_class.define_method creates private methods
- JRUBY-5378 Memory Leak With JRuby/Tomcat
- JRUBY-5413 Bundled version of Rubygems (1.4.2) fails when behind a proxy
- JRUBY-5281 jruby-complete jar not working from directory with spaces
- JRUBY-5213 –profile needs to dump even on ^C, other means of getting info, multi-thread
- JRUBY-5453 NullPointerException in ScriptingContainer.setCurrentDirectory()
- JRUBY-4910 jruby.exe + multibyte-character is broken
- JRUBY-5448 Maven gem support should report and abort when using <mvn3
- JRUBY-5336 jruby –1.9 Object#id should raise NoMethodError
- JRUBY-5391 MongoMapper’s usage of defined? is handled incorrectly
- JRUBY-4488 Joni matches [^\w] incorrectly, and differently to MRI/187
- JRUBY-5340 Non-greedy item can cause Regexp to get stuck
- JRUBY-4951 1.9: Thread#backtrace should apply to the thread in question
- JRUBY-5108 Regex incompatibility between MRI and JRuby
- JRUBY-4768 ‘jruby -X’ should be more friendly
- JRUBY-5398 Generated Javadoc for ScriptingContainer cuts off in the middle
- JRUBY-5430 RubyHash view objects should be static
- JRUBY-5334 Abbrev.abbrev with multi-byte strings returns another result
- JRUBY-5445 JRuby cannot parse a magic comment like #-- mode: ruby; --
- JRUBY-4949 Make ARGV via embedding work same as it does when running jruby itself
- JRUBY-4271 interfaces on reified classes patch was incomplete and broke instances being passed to java code.
JRuby 1.6.0.RC1 Released
Monday, January 10 2011
The JRuby community is pleased to announce the release of JRuby 1.6.0.RC1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.6.0.RC1 is the first release candidate of JRuby 1.6.0.
JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it as a continuous integration platform, and JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.
We encourage Ruby and JRuby users alike to test out 1.6.0.RC1 to help us shake out remaining issues. It would be especially helpful if users would test out 1.9 mode (by passing –1.9 flag) to help us round out our 1.9.2 compatibility before the final 1.6.0 release.
Major Features:
-
Ruby 1.9.2 language and API compatibility
- Not implemented Encoding::Converter, non-ASCII identifiers, ripper, fiddle
- Improved Ruby call performance
- Built-in profiler (–profile, –profile.graph)
- RubyGems 1.4.2
- RSpec no longer bundled
- C Extension support (experimental)
- RubyGems Maven support (preview)
- Improved compatibility and user experience on Windows
- jruby-complete.jar now includes 1.9 standard library
- Embedding API refinements
- Over 2000 commits and 265 issues resolved.
JRuby 1.5.6 Released
Friday, December 03 2010
The JRuby community is pleased to announce the release of JRuby 1.5.6.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.5.6 is a minor follow-up release to address problems with mirroring of 1.5.5 in maven, update to 1.0.3 of jruby native launcher, and a few undesirable issues in windows. All users of JRuby 1.5.5 (and lower) are recommended to upgrade to 1.5.6.
1.5.6 Issues Resolved:
- JRUBY-4352 Rbconfig’s Config::CONFIG provides wrong name for Windows 2008 Server, based on input from Rakesh Arora. (See 07fb757.)
- JRUBY-4774 Fix classpath and load path issues related to file paths containing spaces
- JRUBY-4898 java.util.ConcurrentModificationException
- JRUBY-5127 become_java! doesn’t add Ruby class methods as statics on the resulting Java class
- JRUBY-5223 Marshal.load fails when Kernel.read is defined
Not in our tracking system:
- ant.bat should be specified on Windows
JRuby 1.5.5 Released
Wednesday, November 10 2010
The JRuby community is pleased to announce the release of JRuby 1.5.5.
(Note: Due to a showstopper bug found after the release jruby-jars gem and the inability to remove gem releases from rubygems.org we have skipped from 1.5.3 to 1.5.5. The 1.5.5 release is the same release that would have been 1.5.4 had we been able to re-release jruby-jars.)
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.5.5 is a minor follow-up release to address problems executing some commands on Windows, a couple of Marshalling discrepancies with MRI, and a few other random production-affecting issues. We also improved the output and accuracy of –profile (try it out). All users of JRuby 1.5.3 are recommended to upgrade to 1.5.5.
1.5.5 Issues Resolved:
- JRUBY-4766 Updated jaffl for YourKit compatibility
- JRUBY-4865 Ant.load_from_ant is broken on Windows
- JRUBY-4940 Cucumber Japanese example raises exception on JRuby
- JRUBY-5064 Marshalled ruby hash gets loaded incorrectly
- JRUBY-5110 kernel.system not working in 1.5.3 on Windows
- JRUBY-5112 Cannot run ‘jruby -S rake test’ for Rails project on Windows in 1.5.3
- JRUBY-5122 Webrick socket.readline causes 100% cpu usage
- JRUBY-5123 Marshal dump format error and inconsistencies with MRI
- JRUBY-5132 java.awt.Component.instance_of?() expects 2 args
- JRUBY-5133 Backtick operator does not work on Windows in 1.5.3
- JRUBY-5138 requiring ‘ffi’ defines class method :error on Module
- JRUBY-5168 Can’t include interfaces in a synchronized class
JRuby 1.5.3 Released
Tuesday, September 28 2010
The JRuby community is pleased to announce the release of JRuby 1.5.3.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.5.3 is a minor follow-up release to address a thread deadlock, a spurious error involving selectors on windows, and a couple of fixes affecting bundler exec (and generally improves our exec() behavior). We also fixed a few highly specialized issues which should have no affect on most users. All users of JRuby 1.5.2 are recommended to upgrade to 1.5.3.
1.5.3 Issues Resolved:
- JRUBY-5093 ConditionVariable use causes thread deadlocks
- JRUBY-5076 SelectorProvider.openSelector() will sometimes fail on Windows
- JRUBY-5098 Kernel#exec does not heed ENV['PATH'] when launching shell command
- JRUBY-5100 Subprocess started by Kernel#exec does not respect RUBYOPT and other environment variables set via ENV.
- JRUBY-4944 JSR-223 ScriptEngine ignores global bindings
- JRUBY-4948 Remove noisy warning when setting ScriptEngine.ARGV
- JRUBY-5092 Scala classes (and perhaps others) are named oddly and break Java reflection
- JRUBY-4937 File.open with permissions has sideffect of clearing umask
JRuby 1.5.2 Released
Friday, August 20 2010
The JRuby community is pleased to announce the release of JRuby 1.5.2.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.5.2 is a minor follow-up release to address a few file descriptor and class loading leaks. There is also a security fix for users of Webrick (see https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0541). All users of JRuby 1.5.1 are recommended to upgrade to 1.5.2.
1.5.2 Issues Resolved:
- JRUBY-4767 JRuby and open-uri File handle issue
- JRUBY-4981 Anonymous classes are piling up and filling up PErmGen, eventually causing a crash
- JRUBY-4841 CLONE -Memory Leak when extending Java class with additional Ruby instance variable
- JRUBY-5007 XSS in WEBrick (CVE-2010-0541)
- JRUBY-5018 SSLSocket holds selectors, keys, preventing quick cleanup of resources when dereferenced
JRuby 1.5.1 Released
Monday, June 07 2010
The JRuby community is pleased to announce the release of JRuby 1.5.1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.5.0 was a long overdue and huge release. JRuby 1.5.1 is a minor follow-up release to address some of the more visible issues discovered after the release of 1.5.0. Everyone is encouraged to move to 1.5.1. Users of JRuby’s Java integration or those deploying on Google AppEngine will need to upgrade to 1.5.1.
1.5.1 Issues Resolved:
- JRUBY-4799: Uncaught AccessibleObject.setAccessible fails on App Engine
- JRUBY-4839: ObjectSpace.undefine_finalizer does not work
- JRUBY-4838: JRuby exit hangs on ChannelStream.finalize
- JRUBY-4795: regression: JRuby 1.5 doesn’t pick up JDBC drivers from CLASSPATH
- JRUBY-4832: Memory Leak when extending Java class with additional Ruby instance variable
- JRUBY-4790: Regression processing END between JRuby 1.4 and 1.5
- JRUBY-4803: Known bug in net/http.rb
- JRUBY-4844: jruby behaves differently from MRI with (rails 2.3.8) activerecord associations
- JRUBY-4837: FileUtils.touch does not update the mtime of directories on Windows
- JRUBY-4821: IO#open(&block) + close sets $! which disables Test::Unit::Autorunner
- JRUBY-4831: Multiple block args to ActiveRecord association proxy are splatted incorrectly
- JRUBY-4825: FILE is not expanded when it is used from within a a compiled ruby script used as the main class of an executable jar
JRuby 1.5.0 Released
Wednesday, May 12 2010
The JRuby community is pleased to announce the release of JRuby 1.5.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists!
1.5.0 Highlights:
- New native access framework designed for performance and better FFI support
- Native launcher for *NIX platforms
- Ant support and Rake-Ant integration
- Better and better support for Windows
- Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
- Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
- Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
- ruby-debug installed by default
- Many fixes for Rails 3
- Various improvements to startup time
- Improved performance for Object#object_id/__id__
- Reduced memory use for Java class metadata and faster loading of Java classes
- jar-in-jar support in the classloader
- The “open4” library now works properly
- jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
- New logic for interface implementation that produces “real” classes
- jruby.ji.objectProxyCache to turn off OPC for extra performance
- JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
- Miscellaneous perf improvements to core classes and minor improvements in the JIT
- No more ObjectSpace during IRB
- Cleaned up maven artifacts
- Windows Installer fixes for x64 and Windows 7 security
- Over 1250 commits since JRuby 1.4
We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren
JRuby 1.5.0.RC3 Released
Tuesday, May 04 2010
The JRuby community is pleased to announce the release of JRuby 1.5.0.RC3
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0.RC3 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists! And we would really like help making sure JRuby 1.5.0 final is a solid release…so please try and report back with any problems.
1.5.0 Highlights:
- New native access framework designed for performance and better FFI support
- Native launcher for *NIX platforms
- Ant support and Rake-Ant integration
- Better and better support for Windows
- Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
- Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
- Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
- ruby-debug installed by default
- Many fixes for Rails 3
- Various improvements to startup time
- Improved performance for Object#object_id/__id__
- Reduced memory use for Java class metadata and faster loading of Java classes
- jar-in-jar support in the classloader
- The “open4” library now works properly
- jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
- New logic for interface implementation that produces “real” classes
- jruby.ji.objectProxyCache to turn off OPC for extra performance
- JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
- Miscellaneous perf improvements to core classes and minor improvements in the JIT
- No more ObjectSpace during IRB
- Cleaned up maven artifacts
- Windows Installer fixes for x64 and Windows 7 security
- Over 1250 commits since JRuby 1.4
Issues resolved since 1.5.0.RC2:
JRUBY-3742: Java native threads are not added to ThreadService.rubyThreadMap after being adopted. JRUBY-4264: threadContextMap leaks RubyThread on death of adopted thread
Issues resolved since 1.5.0.RC1:
- JRUBY-3153: IO rubyspec failures under IBM JDK6 Linux
- JRUBY-3208: ant task api-docs runs out of memory, patch included
- JRUBY-4677: Java exceptions can’t be rescued with “rescue Exception”
- JRUBY-4680: jirb_swing broken: JRuby picking wrong constructor, with no obvious work around
- JRUBY-4704: “Java wrapper with no contents” error when subclassing a Runnable class in JRuby
- JRUBY-4710: Problems importing classes in default package
- JRUBY-4715: FFI::StructByValue missing layout and struct_class methods.
- JRUBY-4721: FFI::Platform::CONF_DIR looks in wrong location for PPC Macs.
- JRUBY-4724: Java class equality operator is order dependent
- JRUBY-4725: to_java_object no longer exists
- JRUBY-4729: System properties to set bindir and default rubygems paths
- JRUBY-4730: Unix jruby-1.5.0.RC1 distro includes rubygems/default/jruby_native.rb without native launcher
- JRUBY-4731: Mismatched default compilation prefix
- JRUBY-4733: Allow compilation of Ruby files for a specificic JVM version
- JRUBY-4734: Reduce “multiple Java method” warnings in unambiguous cases
- JRUBY-4735: install-gems ant target should not count on successful installation of jruby-launcher
- JRUBY-4737: Compatibility issue with Spring property from 1.4.0 to 1.5.0.RC1
- JRUBY-4738: test/testapp/testapp.exe appears twice in jruby-src-1.5.0.RC1.tar.gz
- JRUBY-4742: File::Stat throws a NPE when it doesn’t find a file into a jar
- JRUBY-4747: read_nonblock error with couchrest
- JRUBY-4749: require ‘rbconfig’ fails on GAE because of NullPointerException
- JRUBY-4750: ant-to-rake: <rake> task does not work when classpath is defined via taskdef’s attribute
- JRUBY-4751: Java call to RubyBignum.to_s() returns generic object representation
- JRUBY-4754: NotImplementedError: the MD5() function is unimplemented on this machine
- JRUBY-4757: addressable gem doesn’t work with –fast
- JRUBY-4760: File.open throws Errno::ENOENT when file inside jar is accessed using “..” (doubledot) in the path
- JRUBY-4761: 1.9.2: Thread#backtrace
We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren
JRuby 1.5.0.RC2 Released
Wednesday, April 28 2010
The JRuby community is pleased to announce the release of JRuby 1.5.0.RC2
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0.RC2 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists! And we would really like help making sure JRuby 1.5.0 final is a solid release…so please try and report back with any problems.
1.5.0 Highlights:
- New native access framework designed for performance and better FFI support
- Native launcher for *NIX platforms
- Ant support and Rake-Ant integration
- Better and better support for Windows
- Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
- Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
- Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
- ruby-debug installed by default
- Many fixes for Rails 3
- Various improvements to startup time
- Improved performance for Object#object_id/__id__
- Reduced memory use for Java class metadata and faster loading of Java classes
- jar-in-jar support in the classloader
- The “open4” library now works properly
- jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
- New logic for interface implementation that produces “real” classes
- jruby.ji.objectProxyCache to turn off OPC for extra performance
- JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
- Miscellaneous perf improvements to core classes and minor improvements in the JIT
- No more ObjectSpace during IRB
- Cleaned up maven artifacts
- Windows Installer fixes for x64 and Windows 7 security
- Over 1250 commits since JRuby 1.4
Issues resolved since 1.5.0.RC1:
- JRUBY-3153: IO rubyspec failures under IBM JDK6 Linux
- JRUBY-3208: ant task api-docs runs out of memory, patch included
- JRUBY-4677: Java exceptions can’t be rescued with “rescue Exception”
- JRUBY-4680: jirb_swing broken: JRuby picking wrong constructor, with no obvious work around
- JRUBY-4704: “Java wrapper with no contents” error when subclassing a Runnable class in JRuby
- JRUBY-4710: Problems importing classes in default package
- JRUBY-4715: FFI::StructByValue missing layout and struct_class methods.
- JRUBY-4721: FFI::Platform::CONF_DIR looks in wrong location for PPC Macs.
- JRUBY-4724: Java class equality operator is order dependent
- JRUBY-4725: to_java_object no longer exists
- JRUBY-4729: System properties to set bindir and default rubygems paths
- JRUBY-4730: Unix jruby-1.5.0.RC1 distro includes rubygems/default/jruby_native.rb without native launcher
- JRUBY-4731: Mismatched default compilation prefix
- JRUBY-4733: Allow compilation of Ruby files for a specificic JVM version
- JRUBY-4734: Reduce “multiple Java method” warnings in unambiguous cases
- JRUBY-4735: install-gems ant target should not count on successful installation of jruby-launcher
- JRUBY-4737: Compatibility issue with Spring property from 1.4.0 to 1.5.0.RC1
- JRUBY-4738: test/testapp/testapp.exe appears twice in jruby-src-1.5.0.RC1.tar.gz
- JRUBY-4742: File::Stat throws a NPE when it doesn’t find a file into a jar
- JRUBY-4747: read_nonblock error with couchrest
- JRUBY-4749: require ‘rbconfig’ fails on GAE because of NullPointerException
- JRUBY-4750: ant-to-rake: <rake> task does not work when classpath is defined via taskdef’s attribute
- JRUBY-4751: Java call to RubyBignum.to_s() returns generic object representation
- JRUBY-4754: NotImplementedError: the MD5() function is unimplemented on this machine
- JRUBY-4757: addressable gem doesn’t work with –fast
- JRUBY-4760: File.open throws Errno::ENOENT when file inside jar is accessed using “..” (doubledot) in the path
- JRUBY-4761: 1.9.2: Thread#backtrace
We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren
jruby-openssl 0.7 Released!
Tuesday, April 27 2010
Here’s announcing jruby-openssl 0.7. This release should be usable on AppEngine, and contains many compatibility fixes, see below.
Thanks so much to NaHi (NAKAMURA Hiroshi) for his impressive work on another jruby-openssl release!
To install the new release, simply run:
jruby -S gem install jruby-openssl
Compatibility issues
JRUBY-4342 Follow ruby-openssl of CRuby 1.8.7. JRUBY-4346 Sync tests with tests for ruby-openssl of CRuby 1.8.7. JRUBY-4444 OpenSSL crash running RubyGems tests JRUBY-4075 Net::SSH gives OpenSSL::Cipher::CipherError "No message available" JRUBY-4076 Net::SSH padding error using 3des-cbc on Solaris JRUBY-4541 jruby-openssl doesn't load on App Engine. JRUBY-4077 Net::SSH "all authorization methods failed" Solaris -> Solaris JRUBY-4535 Issues with the BouncyCastle provider JRUBY-4510 JRuby-OpenSSL crashes when JCE fails a initialise bcprov JRUBY-4343 Update BouncyCastle jar to upstream version; jdk14-139 -> jdk15-144
Cipher issues
JRUBY-4012 Initialization vector length handled differently than in MRI (longer IV sequence are trimmed to fit the required) JRUBY-4473 Implemented DSA key generation JRUBY-4472 Cipher does not support RC4 and CAST JRUBY-4577 InvalidParameterException 'Wrong keysize: must be equal to 112 or 168' for DES3 + SunJCE
SSL and X.509(PKIX) issues
JRUBY-4384 TCP socket connection causes busy loop of SSL server JRUBY-4370 Implement SSLContext#ciphers JRUBY-4688 SSLContext#ciphers does not accept 'DEFAULT' JRUBY-4357 SSLContext#{setup,ssl_version=} are not implemented JRUBY-4397 SSLContext#extra_chain_cert and SSLContext#client_ca JRUBY-4684 SSLContext#verify_depth is ignored JRUBY-4398 SSLContext#options does not affect to SSL sessions JRUBY-4360 Implement SSLSocket#verify_result and dependents JRUBY-3829 SSLSocket#read should clear given buffer before concatenating (ByteBuffer.java:328:in `allocate': java.lang.IllegalArgumentException when returning SOAP queries over a certain size) JRUBY-4686 SSLSocket can drop last chunk of data just before inbound channel close JRUBY-4369 X509Store#verify_callback is not called JRUBY-4409 OpenSSL::X509::Store#add_file corrupts when it includes certificates which have the same subject (problem with ruby-openid-apps-discovery (github jruby-openssl issue #2)) JRUBY-4333 PKCS#8 formatted privkey read JRUBY-4454 Loading Key file as a Certificate causes NPE JRUBY-4455 calling X509::Certificate#sign for the Certificate initialized from PEM causes IllegalStateException
PKCS#7 issues
JRUBY-4379 PKCS7#sign failed for DES3 cipher algorithm JRUBY-4428 Allow to use DES-EDE3-CBC in PKCS#7 w/o the Policy Files (rake test doesn't finish on JDK5 w/o policy files update)
Misc
JRUBY-4574 jruby-openssl deprecation warning cleanup JRUBY-4591 jruby-1.4 support
JRuby 1.4.1 Released - Fixes XSS Vulnerability in JRuby 1.4.0 - Recommended Upgrade
Monday, April 26 2010
Today we’re releasing JRuby 1.4.1 as a recommended upgrade for all previous versions of JRuby. Previous versions contained a bug in JRuby’s regular expression engine that could allow an attacker to perform, for example, an XSS attack on a web application running under JRuby.
This vulnerability fix is the only change from the previous JRuby release (1.4.0). Also note that the JRuby 1.5.0 release contains this fix as well.
Common Vulnerabilities and Exposures
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2010-1330 to this issue. This is a candidate for inclusion in the CVE list, which standardizes names for security problems.
Impact
Any Ruby application code that uses regular expressions for string
matching and substitution running under JRuby and using $KCODE = 'u'
is vulnerable.
If a string contains invalid UTF-8 byte sequences in the
(inclusive) range \xC0
to \xFD
, the immediately following
character will not be matched by a regular expression. Consider the
following code:
str = "\xF6<script>"
$KCODE = ''
puts "KCODE: " + $KCODE
puts str.gsub(/</, "<")
$KCODE = 'u'
puts "KCODE: " + $KCODE
puts str.gsub(/</, "<")
Ruby 1.8.7 ignores the invalid bytes and continues, while Ruby 1.9.2
raises an ArgumentError
due to the invalid bytes. But for JRuby, the
effect is to fail to match the character following the invalid byte.
For the example above example run with JRuby 1.4.0 prints the
following. Note that the fourth line should be the same as the second.
KCODE: NONE
?<script>
KCODE: UTF8
?<script>
The effect of this bug is magnified considering that the Rails
html_escape
or h
helper essentially does what the above example
does, meaning that any Rails view using the standard ERb escape helper
method is vulnerable.
Releases
The JRuby 1.4.1 and 1.5.0 releases (including release candidates) all have the vulnerability fixed.
The fix was applied to the jcodings library which JRuby uses. As such,
a source patch against the JRuby source is not available. Replacing
the build_lib/jcodings.jar
file in your JRuby source build with the
jcodings version 1.0.3 jar file is sufficient to resolve
the issue.
If you are unable to upgrade to JRuby 1.4.1, please contact the JRuby team at security@jruby.org for assistance.
Workarounds
Turn off $KCODE = 'u'
in your application if you can.
Otherwise, the only approach is to patch application or framework
code to be aware of the invalid byte sequences.
Thanks
Many thanks to Jörn Hartmann (joern dot hartmann at gmail dot com) for finding and reporting the issue.
JRuby 1.5.0.RC1 Released
Thursday, April 15 2010
The JRuby community is pleased to announce the release of JRuby 1.5.0.RC1
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0.RC1 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists! And we would really like help making sure JRuby 1.5.0 final is a solid release…so please try and report back with any problems.
1.5.0.RC1 Highlights:
- New native access framework designed for performance and better FFI support
- Native launcher for *NIX platforms
- Ant support and Rake-Ant integration
- Better and better support for Windows
- Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
- Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
- Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
- ruby-debug installed by default
- Many fixes for Rails 3
- Various improvements to startup time
- Improved performance for Object#object_id/__id__
- Reduced memory use for Java class metadata and faster loading of Java classes
- jar-in-jar support in the classloader
- The “open4” library now works properly
- jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
- New logic for interface implementation that produces “real” classes
- jruby.ji.objectProxyCache to turn off OPC for extra performance
- JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
- Miscellaneous perf improvements to core classes and minor improvements in the JIT
- No more ObjectSpace during IRB
- Cleaned up maven artifacts
- Windows Installer fixes for x64 and Windows 7 security
- Over 1250 commits since JRuby 1.4
We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren
JRuby BugMash!
Tuesday, January 05 2010
Come join us this weekend, January 9-12, for the first ever JRuby BugMash!
The JRuby project has been growing impressively quickly, with frequent releases and a constantly expanding community. There’s a hefty list of impressive users and companies, and the team has been touring the world, trying their best to make it out to everyone who wants to hear and learn about the project.
As with any growing code base though, there’s a need to keep things tidy; frequent releases and speedy development also mean bugs, and things that need fixing–and that’s where we turn to you!
The first ever official JRuby BugMash will take place this Saturday, January 9th through Tuesday, January 12th. The core team will spend the days prior to the BugMash highlighting the specific bugs that are most important–you’ll want to keep an eye out for the Intro section. Then, Saturday morning, it’s off to the races! As a small token of our appreciation, in addition to the wonderful satisfaction of having made a difference to the project, we’ll be sending each of the first 100 participants a limited edition JRubyConf Poster. There are some more ‘tokens of appreciation’ up our sleeves for the top contributors, but we’ll keep those secret for now.
The JRuby Core Team will be around on IRC channel #jruby throughout the BugMash to help folks get started and to answer questions. Be sure to stop in and say hello!
JRuby created (red) vs. resolved (green) bugs over the past 120 days
Vulnerability in jruby-openssl < 0.6 - Recommended Upgrade
Monday, December 07 2009
A security problem involving peer certificate verification was found where failed verification silently did nothing, making affected applications vulnerable to attackers. Attackers could lead a client application to believe that a secure connection to a rogue SSL server is legitimate. Attackers could also penetrate client-validated SSL server applications with a dummy certificate.
Common Vulnerabilities and Exposures
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2009-4123 to this issue. This is a candidate for inclusion in the CVE list, which standardizes names for security problems.
Impact
Your application would be vulnerable if you’re using the OpenSSL::SSL::VERIFY_PEER mode on an OpenSSL-enabled socket (client or server) and any version of jruby-openssl prior to 0.6. An example using client-side validated SSL with the ‘net/https’ library is shown below.
require 'net/https'
uri = URI.parse('https://www.amazon.com/')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
# This code should raise OpenSSL::SSL::SSLError
# because it's not the correct trust anchor for
# www.amazon.com.
http.ca_file = 'test/fixture/verisign_c3.pem'
response = http.start do |s|
s.get(uri.request_uri)
end
# This code must fail as well because of an incorrect
# trust anchor setting (no certs is the directory).
http.ca_path = '/tmp'
response = http.start do |s|
s.get(uri.request_uri)
end
# verisign.pem is the correct trust anchor for www.amazon.com.
# Only this request should be successful.
http.ca_file = 'test/fixture/verisign.pem'
response = http.start do |s|
s.get(uri.request_uri)
end
Release and Patch
- The 0.6 release has the fix for the certificate validation
vulnerability. Install the upgrade in the usual fashion by running
jruby -S gem install jruby-openssl
and ensuring that you get version 0.6 or greater. - A patch is available which should apply cleanly to the
jruby-openssl 0.5.2 source. Ensure the code builds cleanly and
passes tests by running
jruby -S rake clean default
. - Please contact security@jruby.org if you are unable to upgrade or use the 0.5.2 patch and require a backport. Let us know what version of jruby-openssl you’re using and help us understand how you’re using the library so we can determine whether you’re affected by the vulnerability.
Workarounds
No known workarounds exist, other than rewriting application code to use a different library to establish validated SSL connections.
Thanks
Thanks to NaHi (NAKAMURA Hiroshi - nahi at ruby-lang.org) for finding the problem and providing the fix.
JRuby 1.4.0 Released
Monday, November 02 2009
The JRuby community is pleased to announce the release of JRuby 1.4.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
After three very helpful release candidates we have a final 1.4.0 release. This release ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.
We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.
1.4.0 Highlights:
- JRuby is now compatible with 1.8.7 patchlevel 174
- Windows Native Launcher
- Solves many reported bugs with our old .bat scripts
- New YAML parser Yecht (bug-for-bug compatible with Syck!)
- Improved Java Integration Support
- faster
- new java_method, java_send, and java_alias methods
- Windows installer
- New embedding framework
- Java 6 scripting out of the box
- New org.jruby.embed package to supersede JavaEmbedUtils
- Many 1.9 mode (–1.9) fixes
- updated stdlib to 1.9.2preview2
- Rubygems now working
- Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
- rubygems 1.3.5
- Much better error reporting
- shorter backtraces with less Java
- Ruby-compatiable syntax error reporting
- 307 bugs fixed since 1.3.1
We want to thank all the users who have been helping us to get a better release out. Special thanks to Hiro Asari, David Calavera, and Roger Pack for their recent activity in the project. We also want to welcome Yoko Harada as a committer to the project. Her work and support of our embedding efforts has been great.
Issues fixed since JRuby 1.3.1:
Key Summary JRUBY-382 Better error output from parser JRUBY-558 Integration method matching needs more help with nulls JRUBY-937 JRuby does not honor RUBY_OPTS or RUBYOPT JRUBY-1316 Command line doesn't recognize KEY=value construct on WIndows JRUBY-2232 UNIXSocket doesn't work on Solaris JRUBY-2324 AST Node positions and content incorrect when passing down Multibyte content to lexer JRUBY-2349 Bug in constant lookup on non Module or Class JRUBY-2398 We should strive to implement the 1.8.7 improvements JRUBY-2419 Argument application within block is not parsed correctly (for Range literals) JRUBY-2525 Dir.glob ordering inconsistent with Matzruby JRUBY-2587 [1.8.7] Hash.[] should call to_ary if only one argument is provided JRUBY-2604 [1.8.7] Implement Binding#eval method JRUBY-2626 Many rubyspec failures for SortedSet JRUBY-2654 File pty.rb is not part of the JRuby distro, but is part of the Ruby standard lib JRUBY-2666 Issues with Socket#getaddrinfo JRUBY-2694 [1.8.7] Ability to specify suffix/extension for Tempfile JRUBY-2839 Eight new BigDecimal RubySpec failures JRUBY-2866 Set .include? method behavior differs between JRuby 1.1.3 and Ruby 1.8.7 JRUBY-2895 Wildcard arguments not properly expanded on Windows JRUBY-3024 Better handling if suppressAccessChecks is not permitted JRUBY-3030 jruby/test/rubicon/test_object_space.rb fails on Windows XP SP 2 JRUBY-3081 CLASSPATH append problem in bin/jruby script under cygwin JRUBY-3123 Java primate arrays no longer respond to 'first' (Array) from ruby JRUBY-3150 Execution variable $: does not include on the taint check level > 1 JRUBY-3154 Net::HTTP.read_timeout is ignored, timeout is intinite instead (leading to massive accumulation of sockets and reading threads) JRUBY-3159 -e option does not work with iterator blocks JRUBY-3165 Add stream/reader based methods to JavaEmbedUtils.RuntimeAdapter as convenience methods JRUBY-3215 BSF does not retain local scope between eval calls JRUBY-3240 YAML: active_support dump of BigDecimal differs from MRI JRUBY-3245 Java exceptions not caught when converting java objects to ruby objects JRUBY-3263 imcompatibility with Ruby-1.8.6 in YAML parsing JRUBY-3266 undefined method 'add_ruby_type' for YAML:Module JRUBY-3297 Array.new with (size, object=nil) returns the value passed to break JRUBY-3306 --1.9 mode doesn't know define_singleton_method JRUBY-3319 Date spec failures JRUBY-3321 matrix rubyspec failures JRUBY-3323 rational rubyspec failures JRUBY-3327 Possible YAML parsing error JRUBY-3346 Need pointers of Ruby blocks (JRuby FFI) JRUBY-3350 JRuby .bat scripts do not correctly find Java without JAVA_HOME env var JRUBY-3352 JNA-based FFI fails to load for specs on Windows JRUBY-3368 java.util.List[range] is broken JRUBY-3380 New 1.9 Enumerator methods JRUBY-3389 RubySpec: Hash#update raises a TypeError if called on a non-empty, frozen instance JRUBY-3412 YAML.dump loses the timezone when dumping Time instances JRUBY-3419 JRuby Fails (MRI 1.8.6 works) in Sinatra "helpers" when no arguments JRUBY-3433 Encoding.default_internal and Encoding.default_external missing JRUBY-3435 Enumerable missing fiber-related next, rewind, with_index methods JRUBY-3442 1.9 allows trailing commas in method invocations JRUBY-3453 Make import not complain if Java already has already imported the specific Java class JRUBY-3473 RubySpec: OpenStruct frozen failures JRUBY-3478 Dir.new does not work for directories inside jar file JRUBY-3499 File.expand_path (from inside a jar) uses %20 instead of space characters JRUBY-3505 Can't install hpricot (0.7) gem JRUBY-3518 yaml_initialize not called for subclasses of standard types JRUBY-3524 Erroneously redirecting stdout when running jgem JRUBY-3545 ArrayIndexOutOfBoundsException when opening Bio::FlatFiles (bioruby gem) JRUBY-3546 ~/.hoerc results in parsing error JRUBY-3550 strftime breaks unicode characters in format string JRUBY-3558 RubySpec: Defining instance methods on an eigenclass define public methods JRUBY-3559 the integratated joda time version should be in a distinct package hierarchy JRUBY-3567 RubySpec: The __FILE__ constant equals a relative path when required using a relative path JRUBY-3575 File permission errors installing gems in 1.9 mode JRUBY-3576 utf-8 string becomes macroman on os x JRUBY-3577 File and FileTest methods should use to_path to coerce non-string parameters JRUBY-3591 Hexadecimal constants do not have the same equal? behaviour between JRuby and CRuby JRUBY-3592 Regression test failure (test_grpowned) JRUBY-3605 [1.9] IO.initialize missing option hash parsing JRUBY-3606 [1.9] IO.set_encoding is stubbed out JRUBY-3607 [1.9] IO.external_encoding stubbed out JRUBY-3611 RubySpec: "StringIO#sysread when passed no arguments" failures JRUBY-3612 RubySpec: Array#to_s returns '[...]' for the embedded array in a recursive array JRUBY-3627 Parsing related methods and class/interdace should have ManyVarsDynamicScope to share local variables JRUBY-3653 RubySpec: Hash failures "computes equality for complex recursive hashes" JRUBY-3654 RubySpec: Array failures relating to recursive arrays JRUBY-3662 JavaEmbedUtils should have methods to set/reset Standard I/O JRUBY-3682 Hashcodes for Hash objects break compatability with MRI JRUBY-3687 Bundle JSR 223 support in JRuby JRUBY-3688 IO.read fails to read files in /proc filesystem on Linux JRUBY-3700 test/externals/ruby1.8/yaml/test_yaml failures JRUBY-3702 The method methods JRUBY-3703 TestCommandLineSwitches fails on Windows JRUBY-3705 Rubyspec: behavior of $: under safe > 1 JRUBY-3706 Rubyspec: method arity behavior JRUBY-3707 Rubyspec: Process egid behavior JRUBY-3713 TwoVarDynamicScope only supports scopes with two variable JRUBY-3718 FFI: put_pointer and put_array_of_pointer fails to send :to_ptr to their argument JRUBY-3721 sub-optimal IO#read after IO#getc JRUBY-3722 block parameter problem JRUBY-3731 --debug causes problems. Methods are missing. JRUBY-3733 Accessors arity JRUBY-3736 JRuby won't load a .jar if a .so is found too. JRUBY-3738 jruby 1.3.0 windows vista issues: doesn't output helpful error if JAVA_HOME undefined, and JAVA_HOME path defined in quotes not supported JRUBY-3745 RubySpec: Hash#rehash causes a RuntimeError to be raised if called inside an iterator block JRUBY-3747 String#gsub! with pattern and block raises a RuntimeError when self is frozen JRUBY-3748 RubySpec: Kernel.Integer raises an ArgumentError if there is a space between the + and number JRUBY-3750 JRUBY_OPTS="--1.9" results in error "jruby: unknown option --1.9" JRUBY-3751 YAML.load fails for Struct objects with non-standard initialize JRUBY-3757 String.split is broken JRUBY-3759 syslog not available for JRuby --1.9 JRUBY-3761 FileUtils.chown_R produces ArgumentError when the directory contains a symlink JRUBY-3766 update .classpath for building jruby with eclipse JRUBY-3773 CLONE -custom YAML serialization ignored by JRuby JRUBY-3774 >>define_method :name do | &er;blk | << ignores JRUBY-3776 The install-gems goal throws exceptions JRUBY-3777 Exception on Solaris loading ruby gems JRUBY-3778 clone of stderr and stdout not working JRUBY-3782 BSF interface - apply nonfunctional with parameters JRUBY-3783 Timeout.timeout doesn't raise given exception JRUBY-3784 More than 2G memory required for jruby -e 'buf = IO.read("/tmp/1GB.txt"); p buf.size' JRUBY-3788 argument population of blocks broke in at least one case somewhere between 1.2 and 1.3 JRUBY-3796 ruby_string.to_java_string has different encoding than new java.lang.String(ruby_string) JRUBY-3799 Bug in native timeout module causes hang when waiting on IO JRUBY-3800 CLASSPATH environment variable should be ignored if -J-cp or -J-classpath are provided JRUBY-3806 Encoding problems with File.expand_path after JRUBY-3576 fix for Macroman issue JRUBY-3807 jgem --1.9 broken JRUBY-3808 Gem redclothcoderay doesn't installs under jruby JRUBY-3809 require 'tmpdir' fails when embedded in a java app that has messed with the classpath JRUBY-3810 StringIO#truncate problem JRUBY-3811 require 'Complex' fails when running in Ruby 1.9 mode JRUBY-3815 Time#strftime breaks with multibyte characters, affects I18n#localize JRUBY-3816 Objects returned from Java library call not fully unwrapped JRUBY-3817 Timeouts in Net::HTTP raise Timeout::ExitException instead of Timeout::Error for Ruby 1.8 JRUBY-3820 timeout library should throw an anonymous exception type while unrolling stack JRUBY-3821 Array.flatten performance issue JRUBY-3823 Wrong property in netbeans-ant.xml JRUBY-3827 WEBrick binds only to localhost, not to requested bind addresses JRUBY-3828 JavaUtil.convertRubyToJava fails to convert objects in seemingly random cases JRUBY-3832 FFI: apparent memory leak when using callbacks JRUBY-3833 Running RubySpec ci :language with -X+C fails locally, but not in "ant spec" JRUBY-3835 FFI AbstractMemory#get_array_of_uint64 is missing JRUBY-3836 backquotes can raise IO Error (closed stream) JRUBY-3838 Exceptions coming out of eval no longer have line numbers JRUBY-3845 Invoker for Array#pop isn't generated on 187 branch JRUBY-3849 Resolv.getaddress is broken on OSX 1.5 JRUBY-3850 Hash#select returns an Array of entries for which block is true FAILED JRUBY-3851 Hash#update raises a TypeError if called on a non-empty, frozen instance ERROR JRUBY-3852 Hash#eql? spec failures JRUBY-3853 Two Enumerable spec bugs for 1.8.7 (one related to break) JRUBY-3854 Five spec failures in ConditionVariable after merge JRUBY-3856 YAML.load is broken when loading structs with initialize method with arguments JRUBY-3858 NPE in RubyRegexp.java with --1.9 JRUBY-3859 VariadicInvoker missing a BOOL case JRUBY-3860 Rational(3,-4).to_i should return -1 JRUBY-3861 Shared "box" in DefaultMethod breaking visibility re-checks in some cases JRUBY-3862 Socket.pack_sockaddr_in is broken on linux JRUBY-3863 Support boolean arguments to and return values from ffi callbacks JRUBY-3867 Nailgun not supported in Windows bat files JRUBY-3869 'puts []' prints a newline JRUBY-3870 Object#singleton_methods(true) doesn't include inherited methods JRUBY-3871 strftime doesn't support %h JRUBY-3873 StringIndexOutOfBoundsException if the last character in format is '%' in Time.strftime JRUBY-3874 it would be nice if LoadService could log where it searches and what it finds JRUBY-3875 TypeError when providing nil as the third parameter to TCPSocket.new/TCPSocket.open JRUBY-3876 JRuby crashes on using the three-parameter version of TCPSocket.open JRUBY-3878 String representation of arrays and symbols does not match ruby 1.9 JRUBY-3879 Array#pack('d') is incorrect JRUBY-3880 Net::HTTP doesn't timeout as expected when using timeout.rb JRUBY-3882 Java raised exceptions fail to list JRuby caller method in the backtrace JRUBY-3884 Rubyspec failures: Dir#inspect includes the directory name JRUBY-3885 Rubyspec failures: Enumerable#none? JRUBY-3889 java errors are hidden when an instance of a class is created and we used the method include_package to load the specific java package JRUBY-3890 NativeExceptions have ugly stack traces JRUBY-3891 JavaSupport.handleNativeException doesn't seem handle superclasses properly JRUBY-3892 Running rake rdoc from within jruby-complete.jar results in "undefined method `key' for nil:NilClass" JRUBY-3893 Can't require yaml from jruby-complete.jar at head JRUBY-3894 Problems with __FILE__ and file loaded from a jar JRUBY-3896 '--ng' in JRUBY_OPTS is not passed correctly JRUBY-3897 Dir::entries doesn't work within a jar JRUBY-3898 Two methods, tryCompile and runScript, in org.jruby.Ruby should be public to enable compileable option for embedding JRUBY-3907 Time.strftime allows tokens deriving from GNU C library JRUBY-3908 Addendum to JRUBY-3896 JRUBY-3910 Java List to Ruby Array conversion ~100% slower than primitive array conversion JRUBY-3911 hpricot is busted when truncating multibyte strings JRUBY-3912 FFI - Some Ruby-FFI specs fail on JRuby JRUBY-3913 Date.strftime bug fixes (%u, %w, %s) and addition of %G JRUBY-3914 In 1.9 mode, Time.now == nil should return false, not nil JRUBY-3915 JFFI needs binaries for more arches JRUBY-3916 Clean up nailgun directory a little JRUBY-3919 Creation of BouncyCastle security provider results in security errors when run in an unprivileged context JRUBY-3921 Can't run ruby specs for ruby 1.9 JRUBY-3922 File.basename doesn't cope with UTF8 strings JRUBY-3927 Jar complete doesn't compile JRUBY-3928 Net::HTTP doesn't timeout as expected when using timeout.rb JRUBY-3929 checksums for new versions please JRUBY-3932 Set == broken in 1.9 JRUBY-3933 [19] IO.gets missing additional limit field JRUBY-3936 Math.gamma fails on certain values when it shouldn't JRUBY-3937 Socket::getaddrinfo() returns incorrect data on solaris JRUBY-3940 Rubyspec: Kernel#== compare spec failing JRUBY-3941 [19] socket.do_not_reverse_lookup is unimplemented JRUBY-3942 [1.9] File.new should accept encoding options within the mode parameter and a hash with options as the third parameter JRUBY-3945 [1.9] IO and file initialization should ignore internal encoding when is equal to external encoding JRUBY-3946 [1.9] Encoding.default_external should get encoding from default charset when is nil JRUBY-3947 [1.9] Domain errors on Math.log(0), Math.log2(0), Math.log10(0), Math.atanh(1), Math.atanh(-1) JRUBY-3951 TMail fails to install without modifications mkmf.rb JRUBY-3952 Update pom.xml to reflect move from SVN to Git. JRUBY-3953 jruby.bat doesn't run on Windows 7 JRUBY-3954 JRuby operating differently from MRI with andand gem JRUBY-3956 Can't do Enumerator#next in --1.9? Not implemented yet? JRUBY-3964 Threads created for Fibers/Generators/Enumerator.next must die due to GC and raise a nice error when threads are unavailable JRUBY-3967 remove some duplicated tests that have been added to rubyspecs JRUBY-3968 YAML.load produces: allocator undefined for Symbol (TypeError) JRUBY-3969 LICENSE.RUBY is missing in bin and source distributive for the JRuby 1.3.1 and 1.3 JRUBY-3970 jruby.bat errors out with unexpected characters JRUBY-3971 jruby --ng gives "Access denied" message JRUBY-3974 In-proc execution loses almost all parent-process config values JRUBY-3977 "require" won't load jars with ".so" anywhere in the name JRUBY-3979 [1.9] Array.collect returns an Enumerator when no block given JRUBY-3981 Cannot connect to ActiveRecord database JRUBY-3984 [1.9] Array improvements to solve several specs JRUBY-3985 [1.9] ARGF improvements to solve several specs JRUBY-3987 [1.9] Bignum improvements to pass some ruby specs JRUBY-3988 Fixnums quietly lop off bits when calling methods of lesser precision than long JRUBY-3989 nil can't be passed for numeric Java types in some cases, even though nil.to_i treats it as 0 JRUBY-3990 Fixnums are inconsistently converted when target type is java.lang.Object JRUBY-3991 [1.9] Comparable improvements to pass ruby specs JRUBY-3993 [1.9] Dir improvements to pass some ruby specs JRUBY-3994 [1.9] Enumerable improvements to pass some ruby specs JRUBY-3995 ant bails with unrecognized -d32 option on Windows JRUBY-3997 IBM JDK does not support some String.format specifiers JRUBY-3998 Path separators differ between jruby and jruby --ng on Windows JRUBY-3999 [PATCH] Improved Sorting Algorithm JRUBY-4000 [1.9] Fixnum improvements to solve ruby specs JRUBY-4001 [PATCH] Fixed float rubyspecs JRUBY-4003 NegativeArraySizeException in RubyHash.keys JRUBY-4004 jrubyc should return a non-zero return code if compilation fails JRUBY-4011 IO.binmode should raise an IOError on closed stream JRUBY-4017 [1.8] Method#name and UnboundMethod#name should return strings, not symbols JRUBY-4018 jruby --ng-server aborts on Windows with "the syntax of the command is incorrect" JRUBY-4019 Build issues when changes from rev 2eef39 are included JRUBY-4021 [1.9] undefined methods Hash.compare_by_identity and Hash.compare_by_identity? JRUBY-4022 9 rubyspec failures for SecureRandom JRUBY-4029 String hash keys should be copied JRUBY-4036 Regression: Instead of java-based ThreadLibrary a pure-ruby thread.rb from stdlib is used JRUBY-4037 Ruby 1.8 compatibility: /#{/\w/}/uo does not work as expected JRUBY-4038 nil implicitly casts to java.lang.Integer instead of java.lang.Long during method dispatch JRUBY-4039 Implicit conversion to List<Long> results in a List<Byte%gt; or List<Integer> JRUBY-4041 tool/nailgun/configure is not executable JRUBY-4042 [windows] jruby.bat without parameters fails JRUBY-4043 could not coerce BigDecimal to class java.lang.Object (TypeError) JRUBY-4045 [windows] jruby -e "p $LOAD_PATH" fails (regression) JRUBY-4046 [windows] UNIXSocket and UNIXServer should not be defined on Windows (regression) JRUBY-4050 Installer PATH modification should be optional JRUBY-4051 Recieve error "\jruby-1.4.0RC1\bin\) was unexpected at this time" when i try use jruby or jirb JRUBY-4052 JRuby on windows does not provide the calloc function JRUBY-4053 ActiveRecord AssociationCollection#== method is returning false on equal results JRUBY-4055 [windows] jruby.bat can't handle caret sign (^) and question mark (?) in command line JRUBY-4056 unsigned values values should be stuffed into Java signed values like Java does JRUBY-4058 [windows] jruby.bat eats % signs JRUBY-4059 test filepath containing _p is split by _jrubyvmopts.bat JRUBY-4060 gem command doesn't work when RUBYOPT set JRUBY-4062 RUBYOPT=-rubygems causes various problems for JRuby JRUBY-4063 memory stomping error with debug JVM on Solaris JRUBY-4064 Yecht regression: require'ing rubygems now makes nil, true, false all tainted JRUBY-4065 java_alias to compliment and combine the best of java_method and java_send JRUBY-4066 ruby subclass of java public void method cannot return numeric values JRUBY-4069 [windows] jruby.jar is not in bootclasspath, JRuby starts much slower then it colud JRUBY-4070 Can't find Nailgun classes on Windows JRUBY-4071 SystemCallError.new does not create an Errno instance JRUBY-4078 rcov feils with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008. JRUBY-4079 rcov fails with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008. JRUBY-4081 Long stored in RubyArray is returned as Byte JRUBY-4084 Working with the enumerable methods on arrays containing strings created by splicing can raise a Java Exception JRUBY-4085 test/test_system_error.rb is broken JRUBY-4089 Mangled Joda-Time package breaks public APIs that return or consume Joda-Time objects JRUBY-4091 IConv.conv ignores //IGNORE flag into the encoding parameter JRUBY-4094 variadic FFI functions with struct-by-value return types are broken JRUBY-4095 FFI functions that return a struct-by-value cannot accept non-primitive parameters JRUBY-4096 JVM crash on exit when loading library with FFI JRUBY-4100 Native jruby launcher needed (at least for Windows) JRUBY-4108 LoadService::SuffixType too private now for LoadService magic JRUBY-4109 Inconsistent handling of Fixnum/Bignum boundary JRUBY-4111 Solaris 32bit stat struct too large JRUBY-4114 jffi in 1.4 needs update to 0.6.0.2 JRUBY-4120 [windows] Native launcher doesn't honor CLASSPATH env variable JRUBY-4121 [major regression] Most *.bat commands don't work anymore JRUBY-4122 RbConfig/Gem cleanup after switch to native launcher JRUBY-4124 [windows] Native launcher doesn't honor JAVA_HOME env variable JRUBY-4128 FFI needs NullPointerError exception class JRUBY-4129 gem install can not work when the gem name contails '_p' JRUBY-4131 Nailgun doesn't work on Windows 2000 JRUBY-4132 [windows] JRuby's native launcher provides empty name to jps/jconsole JRUBY-4133 JRuby native launcher should look at its binary name and launch appropriate tools JRUBY-4136 [windows] Native jrubyw.exe is needed JRUBY-4137 ant dist/rake installers should generate sha1 and md5 files for installer files JRUBY-4138 Open up LoadService some more JRUBY-4139 FFI::Struct and FFI::Union do not call member struct's initialize method JRUBY-4142 [regression] TCPSocket raises wrong exception when can't connect JRUBY-4144 Remove all vestiges of individual version numbers from install4j scripts JRUBY-4145 Windows Launcher with just IBM Java installed will not execute properly JRUBY-4150 rake --trace causes dialog box (Missing argument) on Windows JRUBY-4153 Rational#new! is no longer defined JRUBY-4154 [regression] Thread.exclusive is undefined JRUBY-4155 Warbler install fails on RC2 JRUBY-4157 fannkuch and chameneosredux benchmarks timing out on The Benchmarks Game JRUBY-4161 Potential Regression: Extlib spec suite: Enumerable#entries wrong # of arguments(0 for 1) JRUBY-4172 Rbconfig's Config::CONFIG provides wrong name for Windows 7 JRUBY-4179 [regression] [1.8] Dir.mkdir should accept any arg that responds to #to_str JRUBY-4185 JRuby using unreleased version of jcodings.jar, prevents usage of jvyamlb in same app. JRUBY-4189 calling to_java(:string) on a ruby array with a symbol in it now causes java exception JRUBY-4190 java.util.List.sort regression since 1.3.1 JRUBY-3403 Socket close_read and close_write should use appropriate methods on java.net.Socket JRUBY-3725 Fix for JRUBY-3563 introduces regression in Socket#getnameinfo JRUBY-3740 Thread#wakeup not working JRUBY-3743 Timeout no longer supports sub-second timeouts JRUBY-3744 Ruby BigDecimal vulnerability seems to affect JRuby as well
JRuby 1.4.0RC3 Released
Wednesday, October 28 2009
The JRuby community is pleased to announce the release of JRuby 1.4.0RC3
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
Third time is a charm! Actually, this third release candidate is largely for the benefit of our Windows users. We have gotten reports of issues with our new installer and our new native launcher and we have been trying to make sure JRuby on Windows is a pleasant experience. We also fixed a Socket regression which had caused celerity to break.
The JRuby 1.4.0 release ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.
We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.
Please try your apps against 1.4.0RC3 ASAP and report problems
1.4.0RC1-RC3 Highlights:
- JRuby is now compatible with 1.8.7 patchlevel 174
- Windows Native Launcher
- Solves many reported bugs with our old .bat scripts
- New YAML parser Yecht (bug-for-bug compatible with Syck!)
- Improved Java Integration Support
- faster
- new java_method, java_send, and java_alias methods
- Windows installer
- New embedding framework
- Java 6 scripting out of the box
- New org.jruby.embed package to replace JavaEmbedUtils
- Many 1.9 mode (–1.9) fixes
- updated stdlib to 1.9.2preview2
- Rubygems now working
- Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
- rubygems 1.3.5
- Much better error reporting
- shorter backtraces with less Java
- Ruby-compatiable syntax error reporting
- 241 bugs fixed since 1.3.1
Issues fixed between 1.4.0RC2 and 1.4.0RC3:
Key Summary JRUBY-4150 rake --trace causes dialog box (Missing argument) on Windows JRUBY-4145 Windows Launcher with just IBM Java installed will not execute properly JRUBY-4155 Warbler install fails on RC2 JRUBY-4144 Remove all vestiges of individual version numbers from install4j scripts JRUBY-4153 Rational#new! is no longer defined JRUBY-4161 Potential Regression: Extlib spec suite: Enumerable#entries wrong # of arguments(0 for 1) JRUBY-4138 Open up LoadService some more JRUBY-4154 [regression] Thread.exclusive is undefined JRUBY-4139 FFI::Struct and FFI::Union do not call member struct's initialize method
Issues fixed between 1.4.0RC1 and 1.4.0RC2:
Key Summary JRUBY-4036 Regression: Instead of java-based ThreadLibrary a pure-ruby thread.rb from stdlib is used JRUBY-4064 Yecht regression: require'ing rubygems now makes nil, true, false all tainted JRUBY-4051 Recieve error "\jruby-1.4.0RC1\bin\) was unexpected at this time" when i try use jruby or jirb JRUBY-4063 memory stomping error with debug JVM on Solaris JRUBY-4042 [windows] jruby.bat without parameters fails JRUBY-4055 [windows] jruby.bat can't handle caret sign (^) and question mark (?) in command line JRUBY-4058 [windows] jruby.bat eats % signs JRUBY-4056 unsigned values values should be stuffed into Java signed values like Java does JRUBY-4039 Implicit conversion to List<Long> results in a List<Byte> or List<Integer> JRUBY-4079 rcov fails with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008. JRUBY-4041 tool/nailgun/configure is not executable JRUBY-4069 [windows] jruby.jar is not in bootclasspath, JRuby starts much slower then it colud JRUBY-4071 SystemCallError.new does not create an Errno instance JRUBY-4089 Mangled Joda-Time package breaks public APIs that return or consume Joda-Time objects JRUBY-4045 [windows] jruby -e "p $LOAD_PATH" fails (regression) JRUBY-4066 ruby subclass of java public void method cannot return numeric values JRUBY-4043 could not coerce BigDecimal to class java.lang.Object (TypeError) JRUBY-4053 ActiveRecord AssociationCollection#== method is returning false on equal results JRUBY-4094 variadic FFI functions with struct-by-value return types are broken JRUBY-4062 RUBYOPT=-rubygems causes various problems for JRuby JRUBY-4060 gem command doesn't work when RUBYOPT set JRUBY-4038 nil implicitly casts to java.lang.Integer instead of java.lang.Long during method dispatch JRUBY-4095 FFI functions that return a struct-by-value cannot accept non-primitive parameters JRUBY-4111 Solaris 32bit stat struct too large JRUBY-4108 LoadService::SuffixType too private now for LoadService magic JRUBY-4131 Nailgun doesn't work on Windows 2000 JRUBY-4129 gem install can not work when the gem name contails '_p'
Issues Fixed between 1.3.1 and 1.4.0RC1:
Key Summary JRUBY-382 Better error output from parser JRUBY-937 JRuby does not honor RUBY_OPTS or RUBYOPT JRUBY-2232 UNIXSocket doesn't work on Solaris JRUBY-2324 AST Node positions and content incorrect when passing down Multibyte content to lexer JRUBY-2349 Bug in constant lookup on non Module or Class JRUBY-2398 We should strive to implement the 1.8.7 improvements JRUBY-2419 Argument application within block is not parsed correctly (for Range literals) JRUBY-2525 Dir.glob ordering inconsistent with Matzruby JRUBY-2587 [1.8.7] Hash.[] should call to_ary if only one argument is provided JRUBY-2604 [1.8.7] Implement Binding#eval method JRUBY-2626 Many rubyspec failures for SortedSet JRUBY-2654 File pty.rb is not part of the JRuby distro, but is part of the Ruby standard lib JRUBY-2666 Issues with Socket#getaddrinfo JRUBY-2694 [1.8.7] Ability to specify suffix/extension for Tempfile JRUBY-2866 Set .include? method behavior differs between JRuby 1.1.3 and Ruby 1.8.7 JRUBY-3123 Java primate arrays no longer respond to 'first' (Array) from ruby JRUBY-3150 Execution variable $: does not include on the taint check level > 1 JRUBY-3154 Net::HTTP.read_timeout is ignored, timeout is intinite instead (leading to massive accumulation of sockets and reading threads) JRUBY-3159 -e option does not work with iterator blocks JRUBY-3165 Add stream/reader based methods to JavaEmbedUtils.RuntimeAdapter as convenience methods JRUBY-3215 BSF does not retain local scope between eval calls JRUBY-3240 YAML: active_support dump of BigDecimal differs from MRI JRUBY-3263 imcompatibility with Ruby-1.8.6 in YAML parsing JRUBY-3266 undefined method 'add_ruby_type' for YAML:Module JRUBY-3297 Array.new with (size, object=nil) returns the value passed to break JRUBY-3306 --1.9 mode doesn't know define_singleton_method JRUBY-3319 Date spec failures JRUBY-3321 matrix rubyspec failures JRUBY-3323 rational rubyspec failures JRUBY-3327 Possible YAML parsing error JRUBY-3352 JNA-based FFI fails to load for specs on Windows JRUBY-3368 java.util.List[range] is broken JRUBY-3380 New 1.9 Enumerator methods JRUBY-3389 RubySpec: Hash#update raises a TypeError if called on a non-empty, frozen instance JRUBY-3403 Socket close_read and close_write should use appropriate methods on java.net.Socket JRUBY-3412 YAML.dump loses the timezone when dumping Time instances JRUBY-3419 JRuby Fails (MRI 1.8.6 works) in Sinatra "helpers" when no arguments JRUBY-3433 Encoding.default_internal and Encoding.default_external missing JRUBY-3442 1.9 allows trailing commas in method invocations JRUBY-3453 Make import not complain if Java already has already imported the specific Java class JRUBY-3473 RubySpec: OpenStruct frozen failures JRUBY-3478 Dir.new does not work for directories inside jar file JRUBY-3499 File.expand_path (from inside a jar) uses %20 instead of space characters JRUBY-3505 Can't install hpricot (0.7) gem JRUBY-3518 JRUBY-1786 yaml_initialize not called for subclasses of standard types JRUBY-3545 ArrayIndexOutOfBoundsException when opening Bio::FlatFiles (bioruby gem) JRUBY-3546 ~/.hoerc results in parsing error JRUBY-3558 RubySpec: Defining instance methods on an eigenclass define public methods JRUBY-3559 the integratated joda time version should be in a distinct package hierarchy JRUBY-3575 File permission errors installing gems in 1.9 mode JRUBY-3576 utf-8 string becomes macroman on os x JRUBY-3577 File and FileTest methods should use to_path to coerce non-string parameters JRUBY-3591 Hexadecimal constants do not have the same equal? behaviour between JRuby and CRuby JRUBY-3592 Regression test failure (test_grpowned) JRUBY-3605 [1.9] IO.initialize missing option hash parsing JRUBY-3606 [1.9] IO.set_encoding is stubbed out JRUBY-3607 [1.9] IO.external_encoding stubbed out JRUBY-3611 RubySpec: "StringIO#sysread when passed no arguments" failures JRUBY-3612 RubySpec: Array#to_s returns '[...]' for the embedded array in a recursive array JRUBY-3627 Parsing related methods and class/interdace should have ManyVarsDynamicScope to share local variables JRUBY-3653 RubySpec: Hash failures "computes equality for complex recursive hashes" JRUBY-3654 RubySpec: Array failures relating to recursive arrays JRUBY-3662 JavaEmbedUtils should have methods to set/reset Standard I/O JRUBY-3682 Hashcodes for Hash objects break compatability with MRI JRUBY-3687 Bundle JSR 223 support in JRuby JRUBY-3688 IO.read fails to read files in /proc filesystem on Linux JRUBY-3700 test/externals/ruby1.8/yaml/test_yaml failures JRUBY-3702 The method methods JRUBY-3703 TestCommandLineSwitches fails on Windows JRUBY-3705 Rubyspec: behavior of $: under safe > 1 JRUBY-3706 Rubyspec: method arity behavior JRUBY-3707 Rubyspec: Process egid behavior JRUBY-3718 FFI: put_pointer and put_array_of_pointer fails to send :to_ptr to their argument JRUBY-3721 sub-optimal IO#read after IO#getc JRUBY-3722 block parameter problem JRUBY-3725 Fix for JRUBY-3563 introduces regression in Socket#getnameinfo JRUBY-3731 --debug causes problems. Methods are missing. JRUBY-3736 JRuby won't load a .jar if a .so is found too. JRUBY-3738 jruby 1.3.0 windows vista issues: doesn't output helpful error if JAVA_HOME undefined, and JAVA_HOME path defined in quotes not supported JRUBY-3740 Thread#wakeup not working JRUBY-3743 Timeout no longer supports sub-second timeouts JRUBY-3744 Ruby BigDecimal vulnerability seems to affect JRuby as well JRUBY-3745 RubySpec: Hash#rehash causes a RuntimeError to be raised if called inside an iterator block JRUBY-3747 String#gsub! with pattern and block raises a RuntimeError when self is frozen JRUBY-3748 RubySpec: Kernel.Integer raises an ArgumentError if there is a space between the + and number JRUBY-3750 JRUBY_OPTS="--1.9" results in error "jruby: unknown option --1.9" JRUBY-3751 YAML.load fails for Struct objects with non-standard initialize JRUBY-3757 String.split is broken JRUBY-3759 syslog not available for JRuby --1.9 JRUBY-3761 FileUtils.chown_R produces ArgumentError when the directory contains a symlink JRUBY-3766 update .classpath for building jruby with eclipse JRUBY-3773 CLONE -custom YAML serialization ignored by JRuby JRUBY-3774 >>define_method :name do | &er;blk | << ignores JRUBY-3776 The install-gems goal throws exceptions JRUBY-3777 Exception on Solaris loading ruby gems JRUBY-3778 clone of stderr and stdout not working JRUBY-3782 BSF interface - apply nonfunctional with parameters JRUBY-3783 Timeout.timeout doesn't raise given exception JRUBY-3784 More than 2G memory required for jruby -e 'buf = IO.read("/tmp/1GB.txt"); p buf.size' JRUBY-3788 argument population of blocks broke in at least one case somewhere between 1.2 and 1.3 JRUBY-3799 Bug in native timeout module causes hang when waiting on IO JRUBY-3800 CLASSPATH environment variable should be ignored if -J-cp or -J-classpath are provided JRUBY-3806 Encoding problems with File.expand_path after JRUBY-3576 fix for Macroman issue JRUBY-3807 jgem --1.9 broken JRUBY-3808 Gem redclothcoderay doesn't installs under jruby JRUBY-3809 require 'tmpdir' fails when embedded in a java app that has messed with the classpath JRUBY-3810 StringIO#truncate problem JRUBY-3811 require 'Complex' fails when running in Ruby 1.9 mode JRUBY-3815 Time#strftime breaks with multibyte characters, affects I18n#localize JRUBY-3817 Timeouts in Net::HTTP raise Timeout::ExitException instead of Timeout::Error for Ruby 1.8 JRUBY-3820 timeout library should throw an anonymous exception type while unrolling stack JRUBY-3823 Wrong property in netbeans-ant.xml JRUBY-3827 WEBrick binds only to localhost, not to requested bind addresses JRUBY-3828 JavaUtil.convertRubyToJava fails to convert objects in seemingly random cases JRUBY-3832 FFI: apparent memory leak when using callbacks JRUBY-3835 FFI AbstractMemory#get_array_of_uint64 is missing JRUBY-3836 backquotes can raise IO Error (closed stream) JRUBY-3838 Exceptions coming out of eval no longer have line numbers JRUBY-3849 Resolv.getaddress is broken on OSX 1.5 JRUBY-3850 Hash#select returns an Array of entries for which block is true FAILED JRUBY-3851 Hash#update raises a TypeError if called on a non-empty, frozen instance ERROR JRUBY-3852 Hash#eql? spec failures JRUBY-3853 Two Enumerable spec bugs for 1.8.7 (one related to break) JRUBY-3854 Five spec failures in ConditionVariable after merge JRUBY-3856 YAML.load is broken when loading structs with initialize method with arguments JRUBY-3858 NPE in RubyRegexp.java with --1.9 JRUBY-3859 VariadicInvoker missing a BOOL case JRUBY-3860 Rational(3,-4).to_i should return -1 JRUBY-3861 Shared "box" in DefaultMethod breaking visibility re-checks in some cases JRUBY-3862 Socket.pack_sockaddr_in is broken on linux JRUBY-3863 Support boolean arguments to and return values from ffi callbacks JRUBY-3867 Nailgun not supported in Windows bat files JRUBY-3869 'puts []' prints a newline JRUBY-3870 Object#singleton_methods(true) doesn't include inherited methods JRUBY-3871 strftime doesn't support %h JRUBY-3873 StringIndexOutOfBoundsException if the last character in format is '%' in Time.strftime JRUBY-3874 it would be nice if LoadService could log where it searches and what it finds JRUBY-3875 TypeError when providing nil as the third parameter to TCPSocket.new/TCPSocket.open JRUBY-3876 JRuby crashes on using the three-parameter version of TCPSocket.open JRUBY-3878 String representation of arrays and symbols does not match ruby 1.9 JRUBY-3879 Array#pack('d') is incorrect JRUBY-3882 Java raised exceptions fail to list JRuby caller method in the backtrace JRUBY-3884 Rubyspec failures: Dir#inspect includes the directory name JRUBY-3885 Rubyspec failures: Enumerable#none? JRUBY-3889 java errors are hidden when an instance of a class is created and we used the method include_package to load the specific java package JRUBY-3890 NativeExceptions have ugly stack traces JRUBY-3891 JavaSupport.handleNativeException doesn't seem handle superclasses properly JRUBY-3892 Running rake rdoc from within jruby-complete.jar results in "undefined method `key' for nil:NilClass" JRUBY-3893 Can't require yaml from jruby-complete.jar at head JRUBY-3894 Problems with __FILE__ and file loaded from a jar JRUBY-3896 '--ng' in JRUBY_OPTS is not passed correctly JRUBY-3897 Dir::entries doesn't work within a jar JRUBY-3907 Time.strftime allows tokens deriving from GNU C library JRUBY-3908 Addendum to JRUBY-3896 JRUBY-3910 Java List to Ruby Array conversion ~100% slower than primitive array conversion JRUBY-3911 hpricot is busted when truncating multibyte strings JRUBY-3912 FFI - Some Ruby-FFI specs fail on JRuby JRUBY-3913 Date.strftime bug fixes (%u, %w, %s) and addition of %G JRUBY-3914 In 1.9 mode, Time.now == nil should return false, not nil JRUBY-3916 Clean up nailgun directory a little JRUBY-3922 File.basename doesn't cope with UTF8 strings JRUBY-3927 Jar complete doesn't compile JRUBY-3929 checksums for new versions please JRUBY-3932 Set == broken in 1.9 JRUBY-3933 [19] IO.gets missing additional limit field JRUBY-3936 Math.gamma fails on certain values when it shouldn't JRUBY-3937 Socket::getaddrinfo() returns incorrect data on solaris JRUBY-3941 [19] socket.do_not_reverse_lookup is unimplemented JRUBY-3942 [1.9] File.new should accept encoding options within the mode parameter and a hash with options as the third parameter JRUBY-3945 [1.9] IO and file initialization should ignore internal encoding when is equal to external encoding JRUBY-3946 [1.9] Encoding.default_external should get encoding from default charset when is nil JRUBY-3947 [1.9] Domain errors on Math.log(0), Math.log2(0), Math.log10(0), Math.atanh(1), Math.atanh(-1) JRUBY-3951 TMail fails to install without modifications mkmf.rb JRUBY-3952 Update pom.xml to reflect move from SVN to Git. JRUBY-3953 jruby.bat doesn't run on Windows 7 JRUBY-3954 JRuby operating differently from MRI with andand gem JRUBY-3956 Can't do Enumerator#next in --1.9? Not implemented yet? JRUBY-3967 remove some duplicated tests that have been added to rubyspecs JRUBY-3968 YAML.load produces: allocator undefined for Symbol (TypeError) JRUBY-3969 LICENSE.RUBY is missing in bin and source distributive for the JRuby 1.3.1 and 1.3 JRUBY-3970 jruby.bat errors out with unexpected characters JRUBY-3974 In-proc execution loses almost all parent-process config values JRUBY-3977 "require" won't load jars with ".so" anywhere in the name JRUBY-3981 Cannot connect to ActiveRecord database JRUBY-3984 [1.9] Array improvements to solve several specs JRUBY-3985 [1.9] ARGF improvements to solve several specs JRUBY-3987 [1.9] Bignum improvements to pass some ruby specs JRUBY-3988 Fixnums quietly lop off bits when calling methods of lesser precision than long JRUBY-3989 nil can't be passed for numeric Java types in some cases, even though nil.to_i treats it as 0 JRUBY-3990 Fixnums are inconsistently converted when target type is java.lang.Object JRUBY-3991 [1.9] Comparable improvements to pass ruby specs JRUBY-3993 [1.9] Dir improvements to pass some ruby specs JRUBY-3995 ant bails with unrecognized -d32 option on Windows JRUBY-3997 IBM JDK does not support some String.format specifiers JRUBY-3998 Path separators differ between jruby and jruby --ng on Windows JRUBY-3999 [PATCH] Improved Sorting Algorithm JRUBY-4000 [1.9] Fixnum improvements to solve ruby specs JRUBY-4001 [PATCH] Fixed float rubyspecs JRUBY-4003 NegativeArraySizeException in RubyHash.keys JRUBY-4004 jrubyc should return a non-zero return code if compilation fails JRUBY-4011 IO.binmode should raise an IOError on closed stream JRUBY-4017 [1.8] Method#name and UnboundMethod#name should return strings, not symbols JRUBY-4019 Build issues when changes from rev 2eef39 are included JRUBY-4021 [1.9] undefined methods Hash.compare_by_identity and Hash.compare_by_identity? JRUBY-4022 9 rubyspec failures for SecureRandom
JRuby 1.4.0RC2 Released
Wednesday, October 21 2009
The JRuby community is pleased to announce the release of JRuby 1.4.0RC2.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
The JRuby 1.4.0 release ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.
We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.
Due to the overwhelming feedback we got from RC1, we have fixed a number of reported issues (shown below) for RC2. We expect that this will be our last RC before 1.4.0 final.
Please try your apps against 1.4.0RC2 ASAP and report problems.
1.4.0RC2 Highlights:
-
Windows Native Launcher
- Solves many reported bugs with our old .bat scripts
1.4.0RC1 Highlights:
- JRuby is now compatible with 1.8.7 patchlevel 174
- New YAML parser Yecht (bug-for-bug compatible with Syck!)
- Improved Java Integration Support
- faster
- new java_method and java_send methods
- Windows installer
- New embedding framework
- Java 6 scripting out of the box
- New org.jruby.embed package to replace JavaEmbedUtils
- Many 1.9 mode (–1.9) fixes
- updated stdlib to 1.9.2preview2
- Rubygems now working
- Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
- rubygems 1.3.5
- Much better error reporting
- shorter backtraces with less Java
- Ruby-compatiable syntax error reporting
- 232 bugs fixed since 1.3.1
We want to give a couple of special acknowledgements for some contributors who went the extra mile this release cycle.
David Calavera has done a great job wrestling with Rubyspec failures and coming up with patches.
Yoko Harada has totally revamped our embedding APIs and created a new API called Red Bridge. This should address all of the reported embedding issues.
Issues fixed since 1.4.0RC1:
JRUBY-4036 | Regression: Instead of java-based ThreadLibrary a pure-ruby thread.rb from stdlib is used |
JRUBY-4064 | Yecht regression: require'ing rubygems now makes nil, true, false all tainted |
JRUBY-4051 | Recieve error "\jruby-1.4.0RC1\bin\) was unexpected at this time" when i try use jruby or jirb |
JRUBY-4063 | memory stomping error with debug JVM on Solaris |
JRUBY-4042 | [windows] jruby.bat without parameters fails |
JRUBY-4055 | [windows] jruby.bat can't handle caret sign (^) and question mark (?) in command line |
JRUBY-4058 | [windows] jruby.bat eats % signs |
JRUBY-4056 | unsigned values values should be stuffed into Java signed values like Java does |
JRUBY-4039 | Implicit conversion to List<Long> results in a List<Byte> or List<Integer> |
JRUBY-4079 | rcov fails with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008. |
JRUBY-4041 | tool/nailgun/configure is not executable |
JRUBY-4069 | [windows] jruby.jar is not in bootclasspath, JRuby starts much slower then it colud |
JRUBY-4071 | SystemCallError.new does not create an Errno instance |
JRUBY-4089 | Mangled Joda-Time package breaks public APIs that return or consume Joda-Time objects |
JRUBY-4045 | [windows] jruby -e "p $LOAD_PATH" fails (regression) |
JRUBY-4066 | ruby subclass of java public void method cannot return numeric values |
JRUBY-4043 | could not coerce BigDecimal to class java.lang.Object (TypeError) |
JRUBY-4053 | ActiveRecord AssociationCollection#== method is returning false on equal results |
JRUBY-4094 | variadic FFI functions with struct-by-value return types are broken |
JRUBY-4062 | RUBYOPT=-rubygems causes various problems for JRuby |
JRUBY-4060 | gem command doesn't work when RUBYOPT set |
JRUBY-4038 | nil implicitly casts to java.lang.Integer instead of java.lang.Long during method dispatch |
JRUBY-4095 | FFI functions that return a struct-by-value cannot accept non-primitive parameters |
JRUBY-4111 | Solaris 32bit stat struct too large |
JRUBY-4108 | LoadService::SuffixType too private now for LoadService magic |
JRUBY-4131 | Nailgun doesn't work on Windows 2000 |
JRUBY-4129 | gem install can not work when the gem name contails '_p' |
JRuby 1.4.0RC1 Released
Friday, October 02 2009
The JRuby community is pleased to announce the release of JRuby 1.4.0RC1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.4.0 Release Candidate 1 ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.
We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.
Bug reports welcome and requested!
Please try your apps against 1.4.0RC1 ASAP and report problems.
Highlights:
- JRuby is now compatible with 1.8.7 patchlevel 174
- New YAML parser Yecht (bug-for-bug compatible with Syck!)
- Improved Java Integration Support
- faster
- new java_method and java_send methods
- Windows installer
- New embedding framework
- Java 6 scripting out of the box
- New org.jruby.embed package to replace JavaEmbedUtils
- Many 1.9 mode (–1.9) fixes
- updated stdlib to 1.9.2preview2
- Rubygems now working
- Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
- rubygems 1.3.5
- Much better error reporting
- shorter backtraces with less Java
- Ruby-compatiable syntax error reporting
- 205 bugs fixed since 1.3.1
We want to give a couple of special acknowledgements for some contributors who went the extra mile this release cycle.
David Calavera has done a great job wrestling with Rubyspec failures and coming up with patches.
Yoko Harada has totally revamped our embedding APIs and created a new API called Red Bridge. This should address all of the reported embedding issues.
Issues Fixed for 1.4.0RC1:
JRUBY-382 | Better error output from parser |
JRUBY-937 | JRuby does not honor RUBY_OPTS or RUBYOPT |
JRUBY-2232 | UNIXSocket doesn't work on Solaris |
JRUBY-2324 | AST Node positions and content incorrect when passing down Multibyte content to lexer |
JRUBY-2349 | Bug in constant lookup on non Module or Class |
JRUBY-2398 | We should strive to implement the 1.8.7 improvements |
JRUBY-2419 | Argument application within block is not parsed correctly (for Range literals) |
JRUBY-2525 | Dir.glob ordering inconsistent with Matzruby |
JRUBY-2587 | [1.8.7] Hash.[] should call to_ary if only one argument is provided |
JRUBY-2604 | [1.8.7] Implement Binding#eval method |
JRUBY-2626 | Many rubyspec failures for SortedSet |
JRUBY-2654 | File pty.rb is not part of the JRuby distro, but is part of the Ruby standard lib |
JRUBY-2666 | Issues with Socket#getaddrinfo |
JRUBY-2694 | [1.8.7] Ability to specify suffix/extension for Tempfile |
JRUBY-2866 | Set .include? method behavior differs between JRuby 1.1.3 and Ruby 1.8.7 |
JRUBY-3123 | Java primate arrays no longer respond to 'first' (Array) from ruby |
JRUBY-3150 | Execution variable $: does not include on the taint check level > 1 |
JRUBY-3154 | Net::HTTP.read_timeout is ignored, timeout is intinite instead (leading to massive accumulation of sockets and reading threads) |
JRUBY-3159 | -e option does not work with iterator blocks |
JRUBY-3165 | Add stream/reader based methods to JavaEmbedUtils.RuntimeAdapter as convenience methods |
JRUBY-3215 | BSF does not retain local scope between eval calls |
JRUBY-3240 | YAML: active_support dump of BigDecimal differs from MRI |
JRUBY-3263 | imcompatibility with Ruby-1.8.6 in YAML parsing |
JRUBY-3266 | undefined method 'add_ruby_type' for YAML:Module |
JRUBY-3297 | Array.new with (size, object=nil) returns the value passed to break |
JRUBY-3306 | --1.9 mode doesn't know define_singleton_method |
JRUBY-3319 | Date spec failures |
JRUBY-3321 | matrix rubyspec failures |
JRUBY-3323 | rational rubyspec failures |
JRUBY-3327 | Possible YAML parsing error |
JRUBY-3352 | JNA-based FFI fails to load for specs on Windows |
JRUBY-3368 | java.util.List[range] is broken |
JRUBY-3380 | New 1.9 Enumerator methods |
JRUBY-3389 | RubySpec: Hash#update raises a TypeError if called on a non-empty, frozen instance |
JRUBY-3403 | Socket close_read and close_write should use appropriate methods on java.net.Socket |
JRUBY-3412 | YAML.dump loses the timezone when dumping Time instances |
JRUBY-3419 | JRuby Fails (MRI 1.8.6 works) in Sinatra "helpers" when no arguments |
JRUBY-3433 | Encoding.default_internal and Encoding.default_external missing |
JRUBY-3442 | 1.9 allows trailing commas in method invocations |
JRUBY-3453 | Make import not complain if Java already has already imported the specific Java class |
JRUBY-3473 | RubySpec: OpenStruct frozen failures |
JRUBY-3478 | Dir.new does not work for directories inside jar file |
JRUBY-3499 | File.expand_path (from inside a jar) uses %20 instead of space characters |
JRUBY-3505 | Can't install hpricot (0.7) gem |
JRUBY-3518 | JRUBY-1786 yaml_initialize not called for subclasses of standard types |
JRUBY-3545 | ArrayIndexOutOfBoundsException when opening Bio::FlatFiles (bioruby gem) |
JRUBY-3546 | ~/.hoerc results in parsing error |
JRUBY-3558 | RubySpec: Defining instance methods on an eigenclass define public methods |
JRUBY-3559 | the integratated joda time version should be in a distinct package hierarchy |
JRUBY-3575 | File permission errors installing gems in 1.9 mode |
JRUBY-3576 | utf-8 string becomes macroman on os x |
JRUBY-3577 | File and FileTest methods should use to_path to coerce non-string parameters |
JRUBY-3591 | Hexadecimal constants do not have the same equal? behaviour between JRuby and CRuby |
JRUBY-3592 | Regression test failure (test_grpowned) |
JRUBY-3605 | [1.9] IO.initialize missing option hash parsing |
JRUBY-3606 | [1.9] IO.set_encoding is stubbed out |
JRUBY-3607 | [1.9] IO.external_encoding stubbed out |
JRUBY-3611 | RubySpec: "StringIO#sysread when passed no arguments" failures |
JRUBY-3612 | RubySpec: Array#to_s returns '[...]' for the embedded array in a recursive array |
JRUBY-3627 | Parsing related methods and class/interdace should have ManyVarsDynamicScope to share local variables |
JRUBY-3653 | RubySpec: Hash failures "computes equality for complex recursive hashes" |
JRUBY-3654 | RubySpec: Array failures relating to recursive arrays |
JRUBY-3662 | JavaEmbedUtils should have methods to set/reset Standard I/O |
JRUBY-3682 | Hashcodes for Hash objects break compatability with MRI |
JRUBY-3687 | Bundle JSR 223 support in JRuby |
JRUBY-3688 | IO.read fails to read files in /proc filesystem on Linux |
JRUBY-3700 | test/externals/ruby1.8/yaml/test_yaml failures |
JRUBY-3702 | The method methods |
JRUBY-3703 | TestCommandLineSwitches fails on Windows |
JRUBY-3705 | Rubyspec: behavior of $: under safe > 1 |
JRUBY-3706 | Rubyspec: method arity behavior |
JRUBY-3707 | Rubyspec: Process egid behavior |
JRUBY-3718 | FFI: put_pointer and put_array_of_pointer fails to send :to_ptr to their argument |
JRUBY-3721 | sub-optimal IO#read after IO#getc |
JRUBY-3722 | block parameter problem |
JRUBY-3725 | Fix for JRUBY-3563 introduces regression in Socket#getnameinfo |
JRUBY-3731 | --debug causes problems. Methods are missing. |
JRUBY-3736 | JRuby won't load a .jar if a .so is found too. |
JRUBY-3738 | jruby 1.3.0 windows vista issues: doesn't output helpful error if JAVA_HOME undefined, and JAVA_HOME path defined in quotes not supported |
JRUBY-3740 | Thread#wakeup not working |
JRUBY-3743 | Timeout no longer supports sub-second timeouts |
JRUBY-3744 | Ruby BigDecimal vulnerability seems to affect JRuby as well |
JRUBY-3745 | RubySpec: Hash#rehash causes a RuntimeError to be raised if called inside an iterator block |
JRUBY-3747 | String#gsub! with pattern and block raises a RuntimeError when self is frozen |
JRUBY-3748 | RubySpec: Kernel.Integer raises an ArgumentError if there is a space between the + and number |
JRUBY-3750 | JRUBY_OPTS="--1.9" results in error "jruby: unknown option --1.9" |
JRUBY-3751 | YAML.load fails for Struct objects with non-standard initialize |
JRUBY-3757 | String.split is broken |
JRUBY-3759 | syslog not available for JRuby --1.9 |
JRUBY-3761 | FileUtils.chown_R produces ArgumentError when the directory contains a symlink |
JRUBY-3766 | update .classpath for building jruby with eclipse |
JRUBY-3773 | CLONE -custom YAML serialization ignored by JRuby |
JRUBY-3774 | >>define_method :name do | &blk | << ignores |
JRUBY-3776 | The install-gems goal throws exceptions |
JRUBY-3777 | Exception on Solaris loading ruby gems |
JRUBY-3778 | clone of stderr and stdout not working |
JRUBY-3782 | BSF interface - apply nonfunctional with parameters |
JRUBY-3783 | Timeout.timeout doesn't raise given exception |
JRUBY-3784 | More than 2G memory required for jruby -e 'buf = IO.read("/tmp/1GB.txt"); p buf.size' |
JRUBY-3788 | argument population of blocks broke in at least one case somewhere between 1.2 and 1.3 |
JRUBY-3799 | Bug in native timeout module causes hang when waiting on IO |
JRUBY-3800 | CLASSPATH environment variable should be ignored if -J-cp or -J-classpath are provided |
JRUBY-3806 | Encoding problems with File.expand_path after JRUBY-3576 fix for Macroman issue |
JRUBY-3807 | jgem --1.9 broken |
JRUBY-3808 | Gem redclothcoderay doesn't installs under jruby |
JRUBY-3809 | require 'tmpdir' fails when embedded in a java app that has messed with the classpath |
JRUBY-3810 | StringIO#truncate problem |
JRUBY-3811 | require 'Complex' fails when running in Ruby 1.9 mode |
JRUBY-3815 | Time#strftime breaks with multibyte characters, affects I18n#localize |
JRUBY-3817 | Timeouts in Net::HTTP raise Timeout::ExitException instead of Timeout::Error for Ruby 1.8 |
JRUBY-3820 | timeout library should throw an anonymous exception type while unrolling stack |
JRUBY-3823 | Wrong property in netbeans-ant.xml |
JRUBY-3827 | WEBrick binds only to localhost, not to requested bind addresses |
JRUBY-3828 | JavaUtil.convertRubyToJava fails to convert objects in seemingly random cases |
JRUBY-3832 | FFI: apparent memory leak when using callbacks |
JRUBY-3835 | FFI AbstractMemory#get_array_of_uint64 is missing |
JRUBY-3836 | backquotes can raise IO Error (closed stream) |
JRUBY-3838 | Exceptions coming out of eval no longer have line numbers |
JRUBY-3849 | Resolv.getaddress is broken on OSX 1.5 |
JRUBY-3850 | Hash#select returns an Array of entries for which block is true FAILED |
JRUBY-3851 | Hash#update raises a TypeError if called on a non-empty, frozen instance ERROR |
JRUBY-3852 | Hash#eql? spec failures |
JRUBY-3853 | Two Enumerable spec bugs for 1.8.7 (one related to break) |
JRUBY-3854 | Five spec failures in ConditionVariable after merge |
JRUBY-3856 | YAML.load is broken when loading structs with initialize method with arguments |
JRUBY-3858 | NPE in RubyRegexp.java with --1.9 |
JRUBY-3859 | VariadicInvoker missing a BOOL case |
JRUBY-3860 | Rational(3,-4).to_i should return -1 |
JRUBY-3861 | Shared "box" in DefaultMethod breaking visibility re-checks in some cases |
JRUBY-3862 | Socket.pack_sockaddr_in is broken on linux |
JRUBY-3863 | Support boolean arguments to and return values from ffi callbacks |
JRUBY-3867 | Nailgun not supported in Windows bat files |
JRUBY-3869 | 'puts []' prints a newline |
JRUBY-3870 | Object#singleton_methods(true) doesn't include inherited methods |
JRUBY-3871 | strftime doesn't support %h |
JRUBY-3873 | StringIndexOutOfBoundsException if the last character in format is '%' in Time.strftime |
JRUBY-3874 | it would be nice if LoadService could log where it searches and what it finds |
JRUBY-3875 | TypeError when providing nil as the third parameter to TCPSocket.new/TCPSocket.open |
JRUBY-3876 | JRuby crashes on using the three-parameter version of TCPSocket.open |
JRUBY-3878 | String representation of arrays and symbols does not match ruby 1.9 |
JRUBY-3879 | Array#pack('d') is incorrect |
JRUBY-3882 | Java raised exceptions fail to list JRuby caller method in the backtrace |
JRUBY-3884 | Rubyspec failures: Dir#inspect includes the directory name |
JRUBY-3885 | Rubyspec failures: Enumerable#none? |
JRUBY-3889 | java errors are hidden when an instance of a class is created and we used the method include_package to load the specific java package |
JRUBY-3890 | NativeExceptions have ugly stack traces |
JRUBY-3891 | JavaSupport.handleNativeException doesn't seem handle superclasses properly |
JRUBY-3892 | Running rake rdoc from within jruby-complete.jar results in "undefined method `key' for nil:NilClass" |
JRUBY-3893 | Can't require yaml from jruby-complete.jar at head |
JRUBY-3894 | Problems with __FILE__ and file loaded from a jar |
JRUBY-3896 | '--ng' in JRUBY_OPTS is not passed correctly |
JRUBY-3897 | Dir::entries doesn't work within a jar |
JRUBY-3907 | Time.strftime allows tokens deriving from GNU C library |
JRUBY-3908 | Addendum to JRUBY-3896 |
JRUBY-3910 | Java List to Ruby Array conversion ~100% slower than primitive array conversion |
JRUBY-3911 | hpricot is busted when truncating multibyte strings |
JRUBY-3912 | FFI - Some Ruby-FFI specs fail on JRuby |
JRUBY-3913 | Date.strftime bug fixes (%u, %w, %s) and addition of %G |
JRUBY-3914 | In 1.9 mode, Time.now == nil should return false, not nil |
JRUBY-3916 | Clean up nailgun directory a little |
JRUBY-3922 | File.basename doesn't cope with UTF8 strings |
JRUBY-3927 | Jar complete doesn't compile |
JRUBY-3929 | checksums for new versions please |
JRUBY-3932 | Set == broken in 1.9 |
JRUBY-3933 | [19] IO.gets missing additional limit field |
JRUBY-3936 | Math.gamma fails on certain values when it shouldn't |
JRUBY-3937 | Socket::getaddrinfo() returns incorrect data on solaris |
JRUBY-3941 | [19] socket.do_not_reverse_lookup is unimplemented |
JRUBY-3942 | [1.9] File.new should accept encoding options within the mode parameter and a hash with options as the third parameter |
JRUBY-3945 | [1.9] IO and file initialization should ignore internal encoding when is equal to external encoding |
JRUBY-3946 | [1.9] Encoding.default_external should get encoding from default charset when is nil |
JRUBY-3947 | [1.9] Domain errors on Math.log(0), Math.log2(0), Math.log10(0), Math.atanh(1), Math.atanh(-1) |
JRUBY-3951 | TMail fails to install without modifications mkmf.rb |
JRUBY-3952 | Update pom.xml to reflect move from SVN to Git. |
JRUBY-3953 | jruby.bat doesn't run on Windows 7 |
JRUBY-3954 | JRuby operating differently from MRI with andand gem |
JRUBY-3956 | Can't do Enumerator#next in --1.9? Not implemented yet? |
JRUBY-3967 | remove some duplicated tests that have been added to rubyspecs |
JRUBY-3968 | YAML.load produces: allocator undefined for Symbol (TypeError) |
JRUBY-3969 | LICENSE.RUBY is missing in bin and source distributive for the JRuby 1.3.1 and 1.3 |
JRUBY-3970 | jruby.bat errors out with unexpected characters |
JRUBY-3974 | In-proc execution loses almost all parent-process config values |
JRUBY-3977 | "require" won't load jars with ".so" anywhere in the name |
JRUBY-3981 | Cannot connect to ActiveRecord database |
JRUBY-3984 | [1.9] Array improvements to solve several specs |
JRUBY-3985 | [1.9] ARGF improvements to solve several specs |
JRUBY-3987 | [1.9] Bignum improvements to pass some ruby specs |
JRUBY-3988 | Fixnums quietly lop off bits when calling methods of lesser precision than long |
JRUBY-3989 | nil can't be passed for numeric Java types in some cases, even though nil.to_i treats it as 0 |
JRUBY-3990 | Fixnums are inconsistently converted when target type is java.lang.Object |
JRUBY-3991 | [1.9] Comparable improvements to pass ruby specs |
JRUBY-3993 | [1.9] Dir improvements to pass some ruby specs |
JRUBY-3995 | ant bails with unrecognized -d32 option on Windows |
JRUBY-3997 | IBM JDK does not support some String.format specifiers |
JRUBY-3998 | Path separators differ between jruby and jruby --ng on Windows |
JRUBY-3999 | [PATCH] Improved Sorting Algorithm |
JRUBY-4000 | [1.9] Fixnum improvements to solve ruby specs |
JRUBY-4001 | [PATCH] Fixed float rubyspecs |
JRUBY-4003 | NegativeArraySizeException in RubyHash.keys |
JRUBY-4004 | jrubyc should return a non-zero return code if compilation fails |
JRUBY-4011 | IO.binmode should raise an IOError on closed stream |
JRUBY-4017 | [1.8] Method#name and UnboundMethod#name should return strings, not symbols |
JRUBY-4019 | Build issues when changes from rev 2eef39 are included |
JRUBY-4021 | [1.9] undefined methods Hash.compare_by_identity and Hash.compare_by_identity? |
JRUBY-4022 | 9 rubyspec failures for SecureRandom |
JRuby 1.3.1 Released
Monday, June 15 2009
The JRuby community is pleased to announce the release of JRuby 1.3.1.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 1.3.1 is a minor bug fix release which:
- Fixes a recently discovered security bug in BigDecimal
- Fixes a regression in timeout (0-1 second timeouts truncate to 0)
- Fixes a regression Thread.wakeup where the thread would not wake up
JRuby 1.3.0 Released
Wednesday, June 03 2009
The JRuby community is pleased to announce the release of JRuby 1.3.0.
- Homepage: https://www.jruby.org/
- Download: http://dist.codehaus.org/jruby/
The fixes in this release are primarily obvious compatibility problems and performance enhancements. Our goal is to put out point releases more frequently for the next several months (about 3-4 weeks a release). We want a more rapid release cycle to better address issues brought up by users of JRuby.
Highlights:
- Fixes so that JRuby runs in restricted environments better like GAE/J
- Accessing primitive Java arrays are about 10x faster
- timeout.rb is now ~40% faster
- Method cache performance improvements
- irb works in –1.9 mode now
- Additional Miscellaneous 1.9 fixes
- rubygems 1.3.3, rake 0.8.7, and rspec 1.2.6 upgrades
- 66 bugs fixed since 1.2.0
Issues fixed for 1.3.0
JRUBY-3729 | JRuby's internal change killed JSR 223 JRuby engine's global variable sharing |
JRUBY-3726 | Cannot access named capture in match data |
JRUBY-3723 | 1.3RC3 regression - Gem activate error |
JRUBY-3714 | ActiveMessaging poller stops silently with JRuby 1.3.0RC1 and RC2. Works with JRuby 1.2.0 |
JRUBY-3601 | Need updated release of JFFI for 1.3 release |
JRUBY-3719 | FFI :buffer_out params incorrectly handled as pinned arrays by jffi |
JRUBY-3626 | Thread Safety issue with JRuby 1.3 RC1 - JRuby abnormally exit |
JRUBY-3625 | Multi-threading issue with RegExp |
JRUBY-1441 | ENV should not be case-sensitive on Windows |
JRUBY-3617 | Java array support unit tests on are failing on AIX with JRuby 1.3-dev |
JRUBY-3663 | Can't build JRuby on last OpenJDK builds (58+) because of uncorrect Invokdynamic support |
JRUBY-3638 | Multi-Threading issues with JRuby 1.3RC1 and soap4r |
JRUBY-3678 | problem with super called from method defined with define_method |
JRUBY-3686 | io.fcntl can also accept one-arg version |
JRUBY-3509 | uninitialized constant when using ResourceController plugin with Rails 2.2.2 |
JRUBY-3699 | Failure in ruby1.8/uri/test_common |
JRUBY-3594 | JRuby's instance_exec only accepts up to 3 arguments |
JRUBY-3677 | Array#pack problem |
JRUBY-3633 | JRuby 1.3 Fails to Execute Embedded Ruby code in Java |
JRUBY-3634 | File.read or File.open with a url to a file resource fails with StringIndexOutOfBounds exception |
JRUBY-3621 | relative_path_from returns errors for "C:/" and "C:" |
JRUBY-3536 | jruby-complete gem install fails: private method `split' called for nil:NilClass |
JRUBY-3647 | Severe performance degradation from 3d9140fafcda9c4fe6b9d5a1fec0ae9822877e03 |
JRUBY-3659 | Running ant spec-short without the proper Git abbreviations does not break |
JRUBY-3661 | Incorrect super call site caching with multiple included modules |
JRUBY-3395 | RubySpec: ConditionVariable#wait should return self |
JRUBY-3658 | RubySpec: Range#initialize visibility and arity failures |
JRUBY-3396 | RubySpec: Queue#num_waiting reports the number of threads waiting on the Queue |
JRUBY-3357 | Marshal load and dump rubyspec failures |
JRUBY-3644 | After sucessfully launching a remotely-debugged application (using -S rdebug --stop) trying to run it crashes |
JRUBY-3649 | IllegalArgumentException with --debug and syslog |
JRUBY-3671 | RubySpec: Time.times is an obsolete method |
JRUBY-3388 | RubySpec: File.open opens the file when passed mode, num and permissions |
JRUBY-3343 | Modify require logic to block when two threads require the same file at the same time |
JRUBY-3585 | Syslog has broken on OS X |
JRUBY-2518 | Dir["some glob"] doesn't work for files inside a jar |
JRUBY-3496 | MRI tests: test_hash shows bug in delete_if block argument |
JRUBY-3578 | ByteList.endsWith fails on empty bytelist |
JRUBY-3586 | StringIO should support to_inputstream, to_outputstream, and to_channel just like IO does |
JRUBY-3588 | Allow rescuing Java Throwables. |
JRUBY-1800 | Ruby 1.9 Fiber support should leverage the same thread pool as pooled JRuby threading |
JRUBY-3345 | Exception backtraces at toplevel appear to be broken |
JRUBY-3483 | Redirecting $stdout to an object blows up the stack |
JRUBY-2900 | Add -vm command line argument to pass classpath, etc. |
JRUBY-3573 | Memory leak when -Djruby.thread.pool.enabled=true |
JRUBY-3680 | closed stream error when using druby to copy a file |
JRUBY-3472 | RubySpec: failures in after_each for core/file |
JRUBY-3579 | Prawn gem nil:NilClass error that doesn't occur in MRI |
JRUBY-3498 | New failure in MRI's test_time |
JRUBY-3679 | java.nio.BufferOverflowException on every Kernel.puts call |
JRUBY-3670 | RubySpec: A Symbol literal does not contain null in the string |
JRUBY-3683 | JRUBY-3670 fix introduces a symbol regression |
JRUBY-3596 | gems in a jar are not found if the current directory contains a space |
JRUBY-3393 | RubySpec: CSV::Reader.parse calls block once for one row of input |
JRUBY-3698 | RubyDateFormat.java does ont handle %R specifier in strftime |
JRUBY-3652 | IO.popen drops first space between command and first argument |
JRUBY-3632 | Jruby deployment missing batch files |
JRUBY-3620 | JRuby shebang parsing is too simplistic |
JRUBY-3572 | Support for anonymous callback inside function definition |
JRUBY-3650 | Please consider allowing jruby -c to take multiple files as arguments |
JRUBY-3660 | Dir.pwd correctly displays dirs with unicode characters in them |
JRUBY-2235 | Minor regression: Kernel.system('non-existing-file') produces some output but shouldn't |
JRUBY-3615 | Fiber.yield crahes if called without arguments |
JRUBY-3640 | Minor optimizations with Map.entrySet |