[ANN] JRuby 1.6.0.RC2 released

The JRuby community is pleased to announce the release of JRuby
1.6.0.RC2.

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)

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

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.


blog: http://blog.enebo.com twitter: tom_enebo
mail: [email protected]

Thanks very much. My favourite Ruby for some time now.

On Wed, Feb 9, 2011 at 8:44 PM, Thomas E Enebo [email protected]
wrote:

platform by adding it as a continuous integration platform, and JRuby

Congratulations on this release and your hard work.

1.6.0-RC2 works fine here on my systems (several codes using
xml/jdbc/ramaze in 1.9 mode mostly)

It seems coverage is not included in the C extensions ? Trying to use
back simplecov gave me this output:

org/jruby/RubyKernel.java:1047:in `require19’: no such file to load –
coverage (LoadError)

Is there a tutorial somewhere on how to compile and include manually
such extensions ? Basically this would be equivalent I guess to
compile coverage.c into coverage.so and include it in a specific
location for windows, no ?


Christian

It seems coverage is not included in the C extensions ? Trying to use
back simplecov gave me this output:

org/jruby/RubyKernel.java:1047:in `require19’: no such file to load –
coverage (LoadError)

Did you install the gem?
Also if it uses an event hook, I’m not sure if jruby does those yet :slight_smile:
-r

  • JRUBY-4907 popen4 reports wrong PID on Windows

Thank you much for fixing this bug, and also 2706, the two that I most
remembered! :slight_smile:

Also I was wondering if this one could be addressed:

http://jira.codehaus.org/browse/JRUBY-5135 (make jruby.launch.inproc
false by default)

before 1.6 shipped. That would be swell.

Thanks. Liking jruby more and more these days, and it’s my go-to for
GUIs and windows multi-threaded apps now :slight_smile:

-r

On Thu, Feb 10, 2011 at 8:32 PM, Roger P. [email protected]
wrote:

It seems coverage is not included in the C extensions ? Trying to use
back simplecov gave me this output:

org/jruby/RubyKernel.java:1047:in `require19’: no such file to load –
coverage (LoadError)

Did you install the gem?

yes I did install simplecov gem. To me coverage.so is an extension in
MRI, so I expect it to be also a java extension or C extension for
jruby.

Unfortunately, it did not make it yet in the jruby-1.6. This is why I
asked yesterday how to include it manually…

Also if it uses an event hook, I’m not sure if jruby does those yet :slight_smile:
-r

I do not know why event hooks are involved here. I’ll try to google
for more docs on extensions in jruby.


Christian

yes I did install simplecov gem. To me coverage.so is an extension in

I’m not sure if jruby has an equivalent to coverage.so or not. If it
doesn’t then you could file a JIRA for it :slight_smile:

It does have some other profiling options that apparently are more
full-fledged in 1.6.0, dunno about coverage.

-r

Notable changes since 1.6.0.RC1:

  • irb (1.8.7, 1.9.2) and command prompt added to Windows installer

As a note, the command prompt doesn’t seem to work properly for me
(doesn’t add jruby to the path…and its default directory is
C:\WINDOWS\system32 for some reason, and the icon doesn’t seem right,
either)

On Thu, Feb 10, 2011 at 3:35 PM, Christian MICHON
[email protected] wrote:

MRI, so I expect it to be also a java extension or C extension for
for more docs on extensions in jruby.
Yes, Ruby 1.9 added several native libraries that we have not ported.
I just added “fiddle” immediately before RC2, and by my count the
following libraries remain unimplemented in JRuby:

continuation
coverage
curses
dbm
dl (though we have a partial port atop FFI)
fcntl (some there, but parts missing, I think)
fiber (note this is the additional continuation-like fiber stuff)
gdbm
objspace
pathname (we still use .rb version, I believe)
pty (we have a partial impl in FFI, I think)
racc
ripper
sdbm
syslog (partial impl in FFI)
tk

Of these, objspace and ripper are very MRI-specific, continuation and
fiber are not possible on the JVM currently, and several others
require specific native libraries like Tk.

The “coverage” library might not be difficult to implement, since rcov
works fine with JRuby. A similar mechanism could be ported to core
JRuby and used to provide the “coverage” extension’s features. That
said…it’s not a high priority, since rcov works fine.

We welcome any and all takers who’d like to implement the above
extensions (and you can implement them in Ruby, if you like).

  • Charlie

On Fri, Feb 11, 2011 at 12:51 PM, Roger P. [email protected]
wrote:

Notable changes since 1.6.0.RC1:

  • irb (1.8.7, 1.9.2) and command prompt added to Windows installer

As a note, the command prompt doesn’t seem to work properly for me
(doesn’t add jruby to the path…and its default directory is
C:\WINDOWS\system32 for some reason, and the icon doesn’t seem right,
either)

Do you not let the installer setup the path for you? Maybe we need to
add some more logic for that. An option is passed to cmd which is
supposed to set the default directory to what install4j thinks is your
home directory (which works for me in Win 7).

More info:

  1. Windows OS
  2. Home directory location (perhaps this is a space issue – windows 7
    does not have spaces to home)

-Tom


blog: http://blog.enebo.com twitter: tom_enebo
mail: [email protected]

More info:

  1. Windows OS
  2. Home directory location (perhaps this is a space issue – windows 7
    does not have spaces to home)

seemed to fail for me in both XP and 7, same way.

with XP just now, installed it to (unchecked “set path for me”)
D:\installs\jruby-1.6.0.RC2\bin
and the icon is wrong, dir is wrong, jruby\bin not in path.
Thanks!
-r

On Sat, Feb 12, 2011 at 1:25 PM, Charles Oliver N.
[email protected] wrote:

dbm
syslog (partial impl in FFI)

We welcome any and all takers who’d like to implement the above
extensions (and you can implement them in Ruby, if you like).

  • Charlie

according to the original author of coverage.so in MRI, it cannot be
done in pure ruby (I already asked him). I can have a look at coverage
in jruby.

Are there any pointers/tutorials on how to integrate new extensions ?
And could you please give me the commit sha1 for your “fiddle” latest
extension so I could figure out the details ?

Thanks


Christian

Also I was wondering if this one could be addressed:

http://jira.codehaus.org/browse/JRUBY-5135 (make jruby.launch.inproc
false by default)

before 1.6 shipped. That would be swell.

Any chance of getting some looks at this one?

Also could we remove jruby.bat finally, now that jruby.exe is solidly in
place :slight_smile:

-r

You did not answer this question…I can try it on my machine if I
can figure out how to set my windows home to not be c:/Users/enebo.
Not sure I can and I am not sure I should tempt Windows either :slight_smile:

If I remember correctly, on win 7 it does not have a space, on XP it
does (they both fail).

Just for clarification…when you originally installed this did you
have set path for me unchecked as well? I am on win 7 and this works
fine for my when the path is setup for me.

always unchecked.

I did notice that in win7, the cwd is %homepath%, in xp, it is
c:\windows\system

Thanks!
-r

On Mon, Feb 14, 2011 at 9:39 AM, Roger P. [email protected]
wrote:

More info:

  1. Windows OS
  2. Home directory location (perhaps this is a space issue – windows 7
    does not have spaces to home)

You did not answer this question…I can try it on my machine if I
can figure out how to set my windows home to not be c:/Users/enebo.
Not sure I can and I am not sure I should tempt Windows either :slight_smile:

seemed to fail for me in both XP and 7, same way.

with XP just now, installed it to (unchecked “set path for me”)
D:\installs\jruby-1.6.0.RC2\bin

Just for clarification…when you originally installed this did you
have set path for me unchecked as well? I am on win 7 and this works
fine for my when the path is setup for me.

I will figure out how to explicitly set the path when path is not set
(well I will probably just unconditionally set it).

and the icon is wrong, dir is wrong, jruby\bin not in path.
Thanks!

-Tom


blog: http://blog.enebo.com twitter: tom_enebo
mail: [email protected]