[ANN] JRuby 1.4.0RC1 Released

The JRuby community is pleased to announce the release of JRuby 1.4.0RC1

Homepage: http://www.jruby.org/
Download: http://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.

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

···

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