[jruby-user] [ANN] JRuby 9.0.0.0.pre2 Released!

Thomas E Enebo <[email protected]> Tue, 28 Apr 2015 11:54:05 -0500
Newsgroups gmane.comp.lang.jruby.user
Message-ID <CAL5zZVmvdD2DbQQ0HQb9dw9daxHiHdQK4Yo_XxKontJjam3hmA@mail.gmail.com>
--047d7b4184abdd45ec0514cbb59a
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

The JRuby community is pleased to announce the release of JRuby 9.0.0.0-pre=
2

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

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=E2=80=99s great poten=
tial
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


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

--047d7b4184abdd45ec0514cbb59a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">The JRuby community is pleased to announce the release of =
JRuby 9.0.0.0-pre2<br><br>=C2=A0=C2=A0=C2=A0 Homepage: <a href=3D"http://ww=
w.jruby.org/">http://www.jruby.org/</a><br>=C2=A0=C2=A0=C2=A0 Download: <a =
href=3D"http://www.jruby.org/download">http://www.jruby.org/download</a><br=
><br>JRuby 9000 is the new version of JRuby, representing years of effort a=
nd large-scale reboots of several JRuby subsystems.<br><br>Major features o=
f JRuby 9000:<br><br>=C2=A0=C2=A0=C2=A0 Ruby 2.2 compatibility, minus featu=
res listed below<br>=C2=A0=C2=A0=C2=A0 A new optimizing runtime based on a =
traditional compiler design<br>=C2=A0=C2=A0=C2=A0 New POSIX-friendly IO and=
 Process<br>=C2=A0=C2=A0=C2=A0 Fully ported encoding/transcoding logic from=
 MRI<br><br>This is our second preview release, and we are getting much clo=
ser to reaching our first .0 release. We are releasing this update to get u=
ser feedback on Ruby 2.2 functionality and overall stability.<br><br>We hop=
e all Ruby users will try out this release and report issues on our issue t=
racker at <a href=3D"http://bugs.jruby.org">http://bugs.jruby.org</a>. We a=
lso encourage users to join our IRC channel (#jruby on Freenode) and mailin=
g lists. You may also follow @jruby on Twitter for updates.<br><br>Ruby 2.2=
 features yet to be implemented:<br><br>=C2=A0 -=C2=A0 Refinements (partial=
ly finished) #1062<br>=C2=A0 -=C2=A0 Kernel#spawn close-on-exec support<br>=
=C2=A0 -=C2=A0 ObjectSpace::WeakMap#each and Enumerable inclusion<br>=C2=A0=
 -=C2=A0 Thread#handle_interrupt is not yet fully functional<br><br>Notable=
 changes since pre1:<br><br>=C2=A0=C2=A0 - Startup time has improved but is=
 a tiny bit slower than 1.7.x.<br>=C2=A0=C2=A0 - Memory usage has improved =
but still a ways to go.<br>=C2=A0=C2=A0 - Straight-line performance has imp=
roved since pre1<br>=C2=A0=C2=A0 - Windows support improved, but still need=
s further work and testing<br>=C2=A0=C2=A0 - Many keyword arguments problem=
s fixed<br>=C2=A0=C2=A0 - 88 issues fixed for 9.0.0.0.pre2<br><br>The new r=
untime gathers more information about Ruby code and performs more analysis =
and optimization than our old runtime. There=E2=80=99s great potential here=
 to bring Ruby performance to native Java or C, but we are just starting th=
e 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.<br>Truffle<br><br>JRuby 9000 includes an in-develop=
ment version of support for the Truffle language implementation framework a=
nd Graal VM from Oracle Labs. In future releases, Truffle will provide an e=
xtremely high performance and compatible backend for JRuby. The Truffle bac=
kend 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 w=
ork on Windows, and is not ready to be tested with applications at this sta=
ge. More information on Truffle and Graal can be found in the JRuby Wiki.<b=
r><br>Github Issues resolved for 9.0.0.0.pre2:<br><br>=C2=A0=C2=A0=C2=A0 #2=
864 - Prepend breaks module &quot;implementer&quot; search<br>=C2=A0=C2=A0=
=C2=A0 #2847 - JRuby not using UTF-8 for source files<br>=C2=A0=C2=A0=C2=A0=
 #2846 - Psych dependency is installing non-JRuby version<br>=C2=A0=C2=A0=
=C2=A0 #2842 - Hash#each_pair should be a true alias of Hash#each<br>=C2=A0=
=C2=A0=C2=A0 #2840 - jrubyc blows with NPE<br>=C2=A0=C2=A0=C2=A0 #2833 - Ba=
d nonlocal return with re-wrapped define_method block<br>=C2=A0=C2=A0=C2=A0=
 #2797 - Support respond_to_missing? in respondsTo() lookups<br>=C2=A0=C2=
=A0=C2=A0 #2788 - Autoload broken by path canonicalization<br>=C2=A0=C2=A0=
=C2=A0 #2787 - Returns nil instead of regex match group inside conditional<=
br>=C2=A0=C2=A0=C2=A0 #2784 - rindex() fails on strings read from binary fi=
les<br>=C2=A0=C2=A0=C2=A0 #2777 - Undefined group option during parse of mr=
i/test_regexp.rb<br>=C2=A0=C2=A0=C2=A0 #2776 - IR improperly masks errors i=
n defined-guarded conditional<br>=C2=A0=C2=A0=C2=A0 #2771 - unknown type of=
 %string<br>=C2=A0=C2=A0=C2=A0 #2767 - Open3.popen3 treats string command d=
ifferently than MRI<br>=C2=A0=C2=A0=C2=A0 #2766 - Open3.capture2e fails wit=
h &quot;wrong exec option&quot;<br>=C2=A0=C2=A0=C2=A0 #2764 - Encoding::Con=
verter#primitive_convert has trailing null byte<br>=C2=A0=C2=A0=C2=A0 #2752=
 - JRuby doesn&#39;t define Process::Tms like MRI does<br>=C2=A0=C2=A0=C2=
=A0 #2751 - Make RUBY_ENGINE_VERSION as companion to RUBY_ENGINE<br>=C2=A0=
=C2=A0=C2=A0 #2736 - early return in each&#39;d enumerator is jumping out o=
f each and not method<br>=C2=A0=C2=A0=C2=A0 #2726 - how do I install with J=
ars? Re: &quot;deprecated. use instead jars/installer&quot; message<br>=C2=
=A0=C2=A0=C2=A0 #2716 - rb_cmpint difference from MRI<br>=C2=A0=C2=A0=C2=A0=
 #2712 - Micro bench is nearly 2x slower with JIT than interp<br>=C2=A0=C2=
=A0=C2=A0 #2692 - Fix for issue 2591 on master : double-quoted UTF8 hash ke=
y encoding<br>=C2=A0=C2=A0=C2=A0 #2654 - Truffle - Compile Error until when=
 break in case statement<br>=C2=A0=C2=A0=C2=A0 #2652 - Truffle - Regex Pars=
ing Error<br>=C2=A0=C2=A0=C2=A0 #2637 - Produce a warning on private attrib=
ute accessors<br>=C2=A0=C2=A0=C2=A0 #2636 - Fix Bignum&#39;s bitwise operat=
ions<br>=C2=A0=C2=A0=C2=A0 #2635 - Object.const_get behaves differently fro=
m other implementations<br>=C2=A0=C2=A0=C2=A0 #2629 - Mixed-mode execution =
exposes an unusual bug<br>=C2=A0=C2=A0=C2=A0 #2627 - $stdin.tty? reports wr=
ong value on JRuby-9.0.0.0-pre1<br>=C2=A0=C2=A0=C2=A0 #2623 - error with bi=
n/jruby -S gem install asd<br>=C2=A0=C2=A0=C2=A0 #2615 - Open3 fails with A=
rrayStoreException after ~50 executions<br>=C2=A0=C2=A0=C2=A0 #2598 - Unkno=
wn error in child-process gem when trying to open phantomjs browser in webd=
river when running on jruby<br>=C2=A0=C2=A0=C2=A0 #2593 - Fix IO#write froz=
en string issue in textmode<br>=C2=A0=C2=A0=C2=A0 #2591 - double-quoted UTF=
8 hash key has the wrong encoding<br>=C2=A0=C2=A0=C2=A0 #2589 - Fixed the e=
rrors with RubySpec<br>=C2=A0=C2=A0=C2=A0 #2587 - simplecov triggers load e=
rror when running coverage on jruby-9.0.0.0.pre1<br>=C2=A0=C2=A0=C2=A0 #258=
5 - JavaSupport refactoring API (byte-code) incompatibility with extensions=
<br>=C2=A0=C2=A0=C2=A0 #2584 - Fixed arity issue with RubyMethod<br>=C2=A0=
=C2=A0=C2=A0 #2583 - Make filepaths with null byte fail<br>=C2=A0=C2=A0=C2=
=A0 #2581 - Error handling converting UTF-32 to UTF-8 is broken [9k] [lotus=
]<br>=C2=A0=C2=A0=C2=A0 #2580 - Different Encoding behavior from all other =
Rubies<br>=C2=A0=C2=A0=C2=A0 #2579 - Fix for issue 2182 on master : Struct#=
inspect with utf8 encode string member<br>=C2=A0=C2=A0=C2=A0 #2578 - Bindin=
g#receiver is not implemented [9k] [lotus]<br>=C2=A0=C2=A0=C2=A0 #2576 - Fi=
x the bug with size with each_slice without block<br>=C2=A0=C2=A0=C2=A0 #25=
74 - Parallel value assignment broken in IR builder (multi-value literals, =
calls, attr-assign, etc.)<br>=C2=A0=C2=A0=C2=A0 #2570 - ClassCastException =
requiring minitest with JRuby 9000<br>=C2=A0=C2=A0=C2=A0 #2569 - Fix requir=
ed arguments for File.chown<br>=C2=A0=C2=A0=C2=A0 #2568 - Exit iterator whe=
n `RubyHash#any?` short-circuits<br>=C2=A0=C2=A0=C2=A0 #2562 - Skip block-t=
o-proc conversion for explicit block syntax when possible<br>=C2=A0=C2=A0=
=C2=A0 #2560 - Fix uninitialized usage of File::Stat<br>=C2=A0=C2=A0=C2=A0 =
#2553 - Mismatch on Enumerator#size result between JRuby and MRI<br>=C2=A0=
=C2=A0=C2=A0 #2547 - Dir.foreach does not allow encoding<br>=C2=A0=C2=A0=C2=
=A0 #2541 - JRuby+Truffle: Keyword Arguments - &quot;illegal recursive call=
&quot;<br>=C2=A0=C2=A0=C2=A0 #2540 - Fixed arity require in case of require=
d keyword arguments<br>=C2=A0=C2=A0=C2=A0 #2537 - Fix for issue 2524 on mas=
ter: [BigDecimal] Loss of precision with different execution order<br>=C2=
=A0=C2=A0=C2=A0 #2525 - undefined method `invoke_with_build_args&#39; for n=
il:NilClass on Windows 7<br>=C2=A0=C2=A0=C2=A0 #2524 - [bigdecimal] Loss of=
 precision with different execution order<br>=C2=A0=C2=A0=C2=A0 #2523 - Mod=
ified the make_wstr method so that it appends a null character.<br>=C2=A0=
=C2=A0=C2=A0 #2522 - Implement pack &amp; unpacking ipv6 address in sockadd=
r<br>=C2=A0=C2=A0=C2=A0 #2521 - Require order appears to impact JRuby exten=
sions [9k]<br>=C2=A0=C2=A0=C2=A0 #2518 - Keyword arguments incompatibility<=
br>=C2=A0=C2=A0=C2=A0 #2514 - Getting &quot;BUG: $! and exception are not m=
atching up&quot; in RSpec in 9K<br>=C2=A0=C2=A0=C2=A0 #2512 - keyword argum=
ents incompatibilities<br>=C2=A0=C2=A0=C2=A0 #2511 - Keyword method paramet=
ers cannot take a frozen hash<br>=C2=A0=C2=A0=C2=A0 #2505 - IO.popen cannot=
 run &#39;date&#39; on Windows 7<br>=C2=A0=C2=A0=C2=A0 #2500 - gem install =
failure on Windows<br>=C2=A0=C2=A0=C2=A0 #2494 - Open3 fails with varying s=
ignals on 9.0.0.0.pre1<br>=C2=A0=C2=A0=C2=A0 #2493 - Performance issue with=
 invokedynamic + Rack + URI<br>=C2=A0=C2=A0=C2=A0 #2492 - Implemented suppo=
rt for keyword and keywordrest proc /lambda parameters<br>=C2=A0=C2=A0=C2=
=A0 #2491 - Minitest rails not working on 9000<br>=C2=A0=C2=A0=C2=A0 #2489 =
- Proc.parameters return an empty array<br>=C2=A0=C2=A0=C2=A0 #2486 - Imple=
mented Enumerator#feed method<br>=C2=A0=C2=A0=C2=A0 #2474 - truffle artifac=
ts are not on maven central and we have a release repo in jruby-parent.pom<=
br>=C2=A0=C2=A0=C2=A0 #2466 - Package Truffle stdlib files into tarball<br>=
=C2=A0=C2=A0=C2=A0 #2388 - IO#ready? returns incorrect results<br>=C2=A0=C2=
=A0=C2=A0 #2357 - NULL handling inconsistent with Ruby<br>=C2=A0=C2=A0=C2=
=A0 #2312 - Encoding.compatible? affected by call order<br>=C2=A0=C2=A0=C2=
=A0 #2210 - Fix for issue 1069 and 1390 on master: improve handling of non =
ascii character after backslash<br>=C2=A0=C2=A0=C2=A0 #2185 - Bundle fails =
with Java::JavaLang::StackOverflowError with git-hosted gems<br>=C2=A0=C2=
=A0=C2=A0 #2165 - Truffle: Kill all other threads when the main thread exit=
s<br>=C2=A0=C2=A0=C2=A0 #2163 - StringLiteral consumers may not be CR-aware=
<br>=C2=A0=C2=A0=C2=A0 #2137 - Socket.getifaddrs returns incorrect interfac=
e list<br>=C2=A0=C2=A0=C2=A0 #2033 - Problem with super not passing params =
with IR<br>=C2=A0=C2=A0=C2=A0 #2015 - Method keyword arguments are destruct=
ive<br>=C2=A0=C2=A0=C2=A0 #1982 - AIOOBE in ThreadContext#postYield<br>=C2=
=A0=C2=A0=C2=A0 #1395 - Pre-compiled methods do not have AST available for =
re-compilation<br>=C2=A0=C2=A0=C2=A0 #779 - Output unreliable from spawned =
processes<br><br clear=3D"all"><br>-- <br><div class=3D"gmail_signature">bl=
og: <a href=3D"http://blog.enebo.com" target=3D"_blank">http://blog.enebo.c=
om</a>=C2=A0 =C2=A0 =C2=A0=C2=A0 twitter: tom_enebo<br>mail: <a href=3D"mai=
lto:[email protected]" target=3D"_blank">[email protected]</a></div>
</div>

--047d7b4184abdd45ec0514cbb59a--