JRuby 1.4.0 Released — JRuby.org (original) (raw)
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 results in a List<Byte%gt; or List 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