[ANN] ruby 2.0.0-rc2 released

Japanese follows; $BF|K\8l$O$"$H$G(B

Hello all –

We are pleased to announce the release of Ruby 2.0.0-rc2.

New features in 2.0.0

  • Keyword arguments
  • Enumerable#lazy
  • Module#prepend
  • #to_h: Convention for conversion to Hash
  • %i: a literal for symbol array
  • Updated regexp engine: Onigmo (a fork of Oniguruma)
  • Enumerator#size and Range#size were introduced
  • DTrace support
  • TracePoint
  • Optimized require performance (especially, on Windows)
  • NativeClient support
  • Documentation improvement
  • Enhanced asynchronous interrupt handling
  • Launch-time stack size tuning parameters
  • Refinements [experimental]

… and more improvements. See NEWS for details.

Here are some introductory articles by third parties:

怠惰なRubyistへの道 - Enumerator::Lazy の使いかた - Speaker Deck(Enumerator::Lazy,
in Japanese)

(If you volunteer to provide additional articles, we may cite or refer
to
them in the
next release announcement.)

Notes

Incompatibility

There are three notable incompatibilities we know of:

  • The default encoding for ruby scripts is now UTF-8 [#6679]. Some
    people report
    that it affects existing programs, such as some benchmark programs
    becoming
    very slow [ruby-dev:46547].
    The spec may change for the official release.

  • iconv was removed, which had already been deprecated when M17N was
    introduced
    in ruby 1.9. Use String#encode, etc. instead.

  • There is ABI breakage [ruby-core:48984]. We think that normal
    users can/should just reinstall extension libraries.
    You should be aware: “DO NOT COPY .so OR .bundle FILES FROM 1.9”.

There are some comparatively small incompatibilities. [ruby-core:49119]
Please report any other incompatibility you notice.

FYI: We are creating upgrade notes, but some parts are already outdated.

Status of Refinements

2.0.0 will include refinements as an “experimental feature” because we
could not
agree on its detailed spec.
Note that the behavior may change in future versions of Ruby.

special thanks

I appreciate all who try preview and rc1 release!
I’m grateful for all the contributors’ hard work to fix many bugs.
I’m really thankful to all the people who helped me do this release.

Regards,

$B$3$s$K$A$O!"(BRuby 2.0.0-rc2 $B$r%j%j!<%9$7$^$9!#(B

2.0.0 $B$N?75!G=(B

  • $B%-!<%o!<%I0z?t(B
  • Enumerable#lazy
  • Module#prepend
  • #to_h: Hash $B$X$NJQ49%a%=%C%I(B
  • %i: $B%7%s%%k$NG[Ns$N%j%F%i%k(B
  • $B@55,I=8=%(%s%8%s$r(B Onigmo $B$KJQ99!J541@(B: $B54<V$NGI@8HG!K(B
  • Enumerator#size $B$,F3F~$5$l$?(B
  • DTrace $B%5%]!<%H(B
  • TracePoint
  • require $BB.EY$N8~>e(B($BFC$K(B Windows $B$K$*$$$F(B)
  • NativeClient $B%5%]!<%H(B
  • $B%I%-%e%a%s%H$N2~A1(B
  • $BHsF14|3d$j9~$_@)8f5!G=$N2~NI(B
  • $B5/F0;~$N%9%?%C%/%5%$%:@_Dj5!G=(B
  • Refinements [$B<B83E*5!G=(B]

$B$=$NB>2~A1B??t!#>$7$/$O(B NEWS $B$r$4Mw$“$l!#(B
$B%5!<%I%Q!<%F%#$K$h$k>R2p5-;v$,$”$j$^$9!#(B

怠惰なRubyistへの道 - Enumerator::Lazy の使いかた - Speaker Deck(Enumerator::Lazy,
in Japanese)

($BB>$K$b5-;v$r=q$$$FD:$1$k$H!“:#8e$N%j%j!<%9%”%J%&%s%9$G0zMQ$d;2>H$r$5$;$F(B
$BD:$/$+$b(B)

$BCm0UE@(B

$BHs8_49$K$D$$$F(B

$BFCI.$9$Y$-Hs8_49$r(B 3 $B$DGD0.$7$F$$$^$9!#(B

  • $B%G%U%)%k%H$N%9%/%j%W%H%(%s%3!<%G%#%s%0$,(B UTF-8 $B$K$J$j$^$7$?(B
    [#6679] $B!#(B
    $B$3$l$O4{B8$N%W%m%0%i%$K1F6A$rM?$($k$3$H$,Js9p$5$l$F$$$^$9!#Nc$($P!"(B $B%Y%s%A%^!<%/%W%m%0%i%$,Hs>o$KCY$/$J$k$J$I(B [ruby-dev:46547]
    $B!#(B
    $B8x<0%j%j!<%9$^$G$K;EMM$,JQ2=$9$k$+$b$7$l$^$;$s!#(B

  • iconv $B$,:o=|$5$l$^$7$?!#85!9(B M17N $B$,F3F~$5$l$?(B 1.9
    $B$N;~E@$GHs?d>)$N$b$N$G$7$?!#(B
    String#encode $B$J$I$r;H$C$F=q$-49$($F$/$@$5$$!#(B

  • ABI $B8_49@-$,$J$/$J$C$F$$$^$9(B [ruby-core:48984]
    $B!#DL>o$N%f!<%6$O!"3HD%(B
    $B%i%$%V%i%j$r:F%$%s%9%H!<%k$9$k$@$1$G$h$$$O$9$G$9!#!V(B1.9 $B$N(B
    .so, .bundle $B%U%!%$%k(B
    $B$r%3%T!<$9$k$J!W$H$@$15$$r$D$1$F$/$@$5$$!#(B

$BB>$K$bHf3SE*>.$5$JHs8_49$,$"$j$^$9!#(B[ruby-core:49119]
$B$5$i$KHs8_49$K5$$E$$$?$i$<$RJs9p$7$F$/$@$5$$!#(B

$B$4;29M(B:
$B0J2<$K%“%C%W%0%l!<%I%,%$%I$r:[email protected]$G$9$,!”$9$G$K0lItFbMF$,8E$$$G$9!#(B

refinements $B$N07$$(B

2.0.0 $B$G$O(B refinement
$B$r!V<B83E*5!G=!W$H$7$FDs6!$7$^$9!#;EMM$N>:Y$K$D$$$F9g0U$K(B
$B;j$i$J$+$C$?$?$a$G$9!#(B
$B5sF0$,(B Ruby
$B$N>-Mh$N%P!<%8%g%s$GJQ2=$9$k2DG=@-$,$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B

special thanks

preview $B$H(B rc1 $B$r;n$7$F$/$l$?3’$5$s$K46<U$7$^$9!#(B
$BAjJQ$o$i$:$?$/$5$s$ND>$7$F$/$l$F$$$k%3%s%H%j%S%e!<%?$N3’$5$s$K46<U$7$^$9!#(B
$B$3$N%j%j!<%9$r;Y$($F$/$l$?3’$5$s$KK\Ev$K46<U$7$^$9!#(B