Forum: Ruby-core [ANN] ruby 2.0.0-preview2 released

Posted by Yusuke Endoh (Guest)
on 2012-12-01 16:39
(Received via mailing list)
Japanese follows; $BF|K\8l$O$"$H$G(B

Hello all --

We are pleased to announce the release of Ruby 2.0.0-preview2.
Please try it and give us feedback on anything you notice.

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p...
  SIZE:   10722295 bytes
  MD5:    a645a783c3302cc094a9963a5e700a4d
  SHA256: 
cea98c000a113f10cb7d55753c759da1f1baa7ca9b3edf75fc19fa5f44bf71a0

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p...
  SIZE:   13471954 bytes
  MD5:    eaddcbf63dc775708de45c7a81ab54b9
  SHA256: 
03d15c7c643f737906c7736820bf4d6f3a71aa8f1dce343284240fee5665f970

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p...
  SIZE:   14987310 bytes
  MD5:    faded4edd05e6ecf86d37c94345f3ace
  SHA256: 
bdf26f073e3bdbe2098858349cda0898537b0977c43614bb4aca18310511cdfe


## New features in 2.0.0

  - Refinements
  - Keyword arguments
  - Enumerable#lazy
  - Module#prepend
  - #to_h: Convention for conversion to Hash
  - %i: a literal for symbol array
  - regexp engine was changed to Onigmo
  - DTrace support
  - TracePoint

.. and more improvements.  See NEWS for details.

Here are some introductory articles by third parties:

  - https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails
  - http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/
  - http://www.infoq.com/news/2012/11/ruby-20-preview1
  - http://timelessrepo.com/refinements-in-ruby (Refinements)
  - http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-... (in 
Japanese)
  - https://speakerdeck.com/nagachika/rubyist-enumeratorlazy
(Enumerator::Lazy, in Japanese)

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


## Notes

### Unimplemented new features

We are planning to include the features shown in the following URL, but
they are not implemented, or need more discussion.

  - http://bugs.ruby-lang.org/projects/ruby-trunk/issu...

Especially, the spec of refinement [#4085] is still actively being 
discussed
and may change for the official release.


### Incompatibilities

There are four notable incompatibilities we know:

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

  - String#lines, #chars, #codepoints, and #bytes now returns an Array
    instead of an Enumerator [#6670].  You should instead use each_line 
(or
    the corresponding each_*).  This is the decision; the methods will
    eventually change someday.  However, if the impact is practically 
bigger
    than we expect, 2.0.0 may include only a warning, instead of 
changing
    the behavior.

  - iconv was removed.  It was deprecated for ruby 1.9.x.  You should 
use
    the M17N features instead like String#encode.

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

There are some comparatively small incompatibilities. [ruby-core:49119]
[ruby-core:48450]
Please report another incompatibilities if you notice.

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

  - http://bugs.ruby-lang.org/projects/ruby/wiki/200Up...


## Main differences from 2.0.0-preview1

  - require is faster [#7158]
  - Rake was updated to 0.9.5 [#7256]
  - RDoc was updated to 4.0 [#7426]
  - RubyGems was updated to 2.0 [#7427]
  - minitest was updated to 4.3.2
  - The default script encoding was changed to UTF-8 [#6679]
  - libyaml was embedded [#7375]
  - DTrace support was implemented [ruby-core:27448]
  - Enumerator#size was introduced [#6636]
  - Array#shift/unshift are faster [#6638]
  - String#lines, #chars, etc. was changed to return an Array [#6670]
  - hash algorithm was changed to siphash

(The list was made based on ruby trunk changes [1].)

[1] http://d.hatena.ne.jp/nagachika/searchdiary?word=%...


## Upcoming mile stones

I'd like to set the code freeze to "23 Dec."
I'll announce the concrete release plan in a few days.

  - code freeze: 23 Dec.
  - 2.0.0-rc1 release: 1W Jan. (expected)
  - 2.0.0-rc2 relaase: 1W Feb. (expected)
  - 2.0.0-p0 release: 24 Feb.


## Special thanks

First, we appreciate all who try preview1!
I'm grateful for all the committers' hard work to implement the new
features in time for preview2.
(Those who missed preview2 should work harder until code freeze.)
Finally, Denoit Daloze and Eric Hodel kindly reviewed the draft of this
announcement.  Thank you!



Ruby 2.0.0-preview2 $B$r%j%j!<%9$7$^$9!#(B
$B$<$R$*;n$7$$$?$@$-!"5$$E$$$?$3$H$O2?$G$b%U%#!<%I%P%C%/$7$F$/$@$5$$!#(B

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p...
  SIZE:   10722295 bytes
  MD5:    a645a783c3302cc094a9963a5e700a4d
  SHA256: 
cea98c000a113f10cb7d55753c759da1f1baa7ca9b3edf75fc19fa5f44bf71a0

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p...
  SIZE:   13471954 bytes
  MD5:    eaddcbf63dc775708de45c7a81ab54b9
  SHA256: 
03d15c7c643f737906c7736820bf4d6f3a71aa8f1dce343284240fee5665f970

* http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p...
  SIZE:   14987310 bytes
  MD5:    faded4edd05e6ecf86d37c94345f3ace
  SHA256: 
bdf26f073e3bdbe2098858349cda0898537b0977c43614bb4aca18310511cdfe


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

  - Refinements
  - $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(B
  - DTrace $B%5%]!<%H(B
  - TracePoint

$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

  - https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails
  - http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/
  - http://www.infoq.com/news/2012/11/ruby-20-preview1
  - http://timelessrepo.com/refinements-in-ruby (Refinements)
  - http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-... (in 
Japanese)
  - https://speakerdeck.com/nagachika/rubyist-enumeratorlazy
(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

### $BL$<BAu$N5!G=(B

$B0J2<$N(B URL 
$B$K7G:\$5$l$F$$$k5!G=$O!"L$<BAu$+!"$^$@5DO@$,I,MW$J$b$N$G$9!#(B

  - http://bugs.ruby-lang.org/projects/ruby-trunk/issu...

$BFC$K!"(Brefinement $B$N;EMM(B [#4085] 
$B$O3hH/$K5DO@$5$l$F$*$j!"8x<0%j%j!<%9$^$G$K(B
$BJQ2=$9$k2DG=@-$,$"$j$^$9!#(B


### $BHs8_49(B

$BFCI.$9$Y$-Hs8_49$r(B 4 $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

  - String#lines, #chars, #codepoints, #bytes $B$,(B enumerator 
$B$G$O$J$/G[Ns$r(B
    $BJV$9$h$&$K$J$j$^$7$?!#(B#each_line ($B$^$?$OBP1~$9$k(B each_*) 
$B$rBe$o$j$K(B
    $B;HMQ$7$F$/$@$5$$!#$3$l$O7hDj;v9`$G!"$$$D$+$O$J$5$l$kJQ99$G$9!#$7$+$7(B
    $B$b$7<BMQ>e$N1F6A$,M=A[$h$jBg$-$$>l9g$O!"(B2.0.0 
$B$G$O5sF0$OJQ$($:!"7Y9p(B
    $B$@$1$H$9$k$+$b$7$l$^$;$s!#(B

  - iconv $B$,:o=|$5$l$^$7$?!#85!9(B deprecated $B$J$b$N$G$7$?!#(BM17N 
$B$N5!G=$G(B
    $B$"$k(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$:$G$9!#!V(B1.9 $B$N(B 
.so, .bundle
    $B%U%!%$%k$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] 
[ruby-core:48450]
$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:n@.Cf$G$9$,!"$9$G$K0lItFbMF$,8E$$$G$9!#(B

  - http://bugs.ruby-lang.org/projects/ruby/wiki/200Up...


## 2.0.0-preview1 $B$+$i$N<g$J:9J,(B

  - require $B$,9bB.2=$5$l$?(B [#7158]
  - Rake $B$,(B 0.9.5 $B$K99?7$5$l$?(B [#7256]
  - Rdoc $B$,(B 4.0 $B$K99?7$5$l$?(B [#7426]
  - Rubygems $B$,(B 2.0 $B$K99?7$5$l$?(B [#7427]
  - minitest $B$,(B 4.3.2 $B$K99?7$5$l$?(B
  - $B%G%U%)%k%H$N%9%/%j%W%H%(%s%3!<%G%#%s%0$,(B UTF-8 $B$K$J$C$?(B 
[#6679]
  - libyaml $B$,AH$_9~$_$K$J$C$?(B [#7375]
  - DTrace $B%5%]!<%H$,<BAu$5$l$?(B [ruby-core:27448]
  - Enumerator#size $B$,F3F~$5$l$?(B [#6636]
  - Array#shift/unshift $B$,9bB.2=$5$l$?(B [#6638]
  - String#lines $B$d(B #chars $B$J$I$,G[Ns$rJV$9$h$&$K$J$C$?(B [#6670]
  - $B%O%C%7%e%"%k%4%j%:%`$,(B siphash $B$KJQ99$5$l$?(B

($B$3$N%j%9%H$O(B ruby trunk changes [1] $B$r85$K:n@.$7$^$7$?(B)

[1] http://d.hatena.ne.jp/nagachika/searchdiary?word=%...


## $B:#8e$NM=Dj(B

$B%3!<%I%U%j!<%:$r(B 12/23 $B$K$7$?$$$H;W$$$^$9!#(B
$B6qBNE*$J%j%j!<%9%W%i%s$O?tF|$N$&$A$K%"%J%&%s%9$7$^$9!#(B

  - $B%3!<%I%U%j!<%:(B: 12/23
  - 2.0.0-rc1 $B%j%j!<%9(B: 1 $B7nBh0l=5(B ($B4|BT(B)
  - 2.0.0-rc2 $B%j%j!<%9(B: 2 $B7nBh0l=5(B ($B4|BT(B)
  - 2.0.0-p0 $B%j%j!<%9(B: 2/24


## Special thanks

$B$^$:!"(Bpreview1 $B$r;n$7$F$/$l$?3'$5$s$K46<U$7$^$9(B
$B$^$?!"(Bpreview2 
$B$K4V$K9g$&$h$&$K4hD%$C$F$/$l$?%3%_%C%?$N$_$J$5$s$K46<U$7$^$9!#(B
($B4V$K9g$o$J$+$C$??M$O%3!<%I%U%j!<%:$^$G4hD%$C$F$/$@$5$$(B)
Denoit Daloze $B$H(B Eric Hodel 
$B$,$3$N%"%J%&%s%9J80F$r%l%S%e!<$7$F$/$l$^$7$?!#(B
$B$"$j$,$H$&$4$6$$$^$9!#(B
Posted by Yusuke Endoh (Guest)
on 2012-12-01 16:49
(Received via mailing list)
I'm sorry, I misspelled eregon's name!

> Finally, Denoit Daloze and Eric Hodel kindly reviewed the draft of this
> announcement.  Thank you!

It should read Benoit Daloze.


$B?=$7Lu$J$$$G$9!"(Beregon $B$NL>A0$r%_%9%9%Z%k$7$^$7$?!#(B
Benoit Daloze $B$,@5$7$$$G$9!#(B


2012$BG/(B12$B7n(B1$BF|(B 23:48 Yusuke Endoh <mame@tsg.ne.jp>:
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.