1.9.1$B$N%j%j!<%9;~4|$K$D$$$F(B

e$BLZB<$G$9!#e(B

e$B$^$D$b$H$5$s$K<ALd$G$9!#e(B

e$B%/%j%9%^%9$^$G$"$H0l%v7n$H$J$j$^$7$?$,!“e(B1.9.1e$B$K8~$1$F$N>u67$O$I$&$J$s$G$7$g$&$+e(B?
e$B$3$3$^$G$R$H$D$Ne(B
previewe$B$b=P$5$l$F$$$^$;$s$7!”:#=P$7$F$b%j%j!<%9$9$k$N$K==J,$Je(B
e$B8!>Z$N;~4V$,$H$l$k$N$+IT0B$K46$8$^$9!#e(B

e$B$^$D$b$H$5$s$O!"e(BMatze$B$K$C$-e(B (
Matzにっき(2007-09-28) )
e$B$G!"e(B

[Ruby] [Think IT] e$B@h<h$j!*e(BRuby 1.9.1

e$B$5$5$@$/$s$K$h$ke(B1.9.1e$B$N>R2p!#e(B

e$B$$$m$$$mLBOG$+$1$F$^$9!#e(B

e$B$G$b!"e(B12e$B7n$K$O!"e(B(e$B?.Mj@-$O$H$b$+$/e(B(e$B$)$#e(B))e$B$J$K$+=P$;$k$h$&$KEXNO$7$^$9!#e(B

e$B$N$h$&$K$*=q$-$K$J$i$l$F$^$9$,!“$J$K$+$r=P$9$H$$$&%9%?%s%9$Ke(B
e$BJQ$o$j$O$”$j$^$;$s$+e(B?

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32352] 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Sun, 25 Nov 2007 01:52:04 +0900, KIMURA Koichi
[email protected] writes:

|e$B$^$D$b$H$5$s$K<ALd$G$9!#e(B

e$B$I$&$b!#e(B

|e$B%/%j%9%^%9$^$G$"$H0l%v7n$H$J$j$^$7$?$,!“e(B1.9.1e$B$K8~$1$F$N>u67$O$I$&$J$s$G$7$g$&$+e(B?
|e$B$3$3$^$G$R$H$D$Ne(B previewe$B$b=P$5$l$F$$$^$;$s$7!”:#=P$7$F$b%j%j!<%9$9$k$N$K==J,$Je(B
|e$B8!>Z$N;~4V$,$H$l$k$N$+IT0B$K46$8$^$9!#e(B

e$BEv=i$N9=A[$O$H$b$+$/!“8=>u$G$Oe(B1.9.1e$B$Oe(B1.8e$B$N$h$&$J%j%j!<%9%W%me(B
e$B%;%9$,F’$a$k$H$O;W$($^$;$s!#$N$G!”!V=P$7$?$3$H$K0UL#$,$"$k!We(B
e$B$h$&$J%j%j!<%9$K$J$k$H;W$$$^$9!#;DG0$J$,$i!#e(B

e$B$b$C$H0BDj@-$N$"$k$b$N$r4|BT$7$F$$$?J}!9$K$O?=$7Lu$J$/;W$$$^e(B
e$B$9!#$R$H$($K;d$NITFA$N$$$?$9$H$3$m$G$9!#e(B

e$B9V1i$H$+%3!<%G%#%s%0$K4X78$J$$;E;v$,B?$9$.$k5$$,$7$^$9!#e(B

|e$B$N$h$&$K$*=q$-$K$J$i$l$F$^$9$,!“$J$K$+$r=P$9$H$$$&%9%?%s%9$Ke(B
|e$BJQ$o$j$O$”$j$^$;$s$+e(B?

e$B$O$$!“!V$J$K$+!W$O=P$^$9!#;EMM$K$D$$$F$O!”$=$l$J$j$K0BDj$7$Fe(B
e$B$$$ke(B(e$BDI2C$O$"$C$F$be(B1.9e$B$NHO0O$GHs8_49$JJQ99$Oe(B(e$B$5$[$Ie(B)e$B$J$$e(B)e$B$h$&e(B
e$B$K$7$?$$$G$9!#e(B

e$BLZB<$G$9!#e(B

Yukihiro M. e$B$5$s$O=q$-$^$7$?e(B (2007/11/25 2:50):

e$BEv=i$N9=A[$O$H$b$+$/!“8=>u$G$Oe(B1.9.1e$B$Oe(B1.8e$B$N$h$&$J%j%j!<%9%W%me(B
e$B%;%9$,F’$a$k$H$O;W$($^$;$s!#$N$G!”!V=P$7$?$3$H$K0UL#$,$"$k!We(B
e$B$h$&$J%j%j!<%9$K$J$k$H;W$$$^$9!#;DG0$J$,$i!#e(B

e$B$b$C$H0BDj@-$N$"$k$b$N$r4|BT$7$F$$$?J}!9$K$O?=$7Lu$J$/;W$$$^e(B
e$B$9!#$R$H$($K;d$NITFA$N$$$?$9$H$3$m$G$9!#e(B

e$B;v>p$K$D$$$F$ON;2r$7$^$7$?!#e(B

e$BCfESH>C<$K$7$+DI$$$+$1$i$l$F$$$J$$$N$G4*0c$$$,$"$k$+$b$7$l$^$;$s$,!"e(B
ruby-core
e$B$Ge(Bencodinge$B4X78$G7k9=%9%l%C%I$,?-$S$F$$$?$h$&$G$9$1$Ie(B
e$B$3$NJU$N;EMM$O$[$\8G$^$C$?$H$_$F$h$$$N$G$7$g$&$+e(B?

e$B$=$l$He(B1.9.1e$B$G$NI8=`E:IU$N%i%$%V%i%j$NA*Br$b$I$&$J$C$?$N$+5$$K$J$ke(B
e$B$H$3$m$G$9!#M>7W$J?4G[$+$b$7$l$^$;$s$,!"e(B1.9.1e$B$G$Oe(B1.8e$B$N$=$l$rF’=1e(B
e$B$9$k$1$I!"e(B1.9.xe$B!!$GJQ$($^$9$H$+1>$&OC$@$H:.Mp$r>7$/$H;W$$$^$9$7!#e(B

e$B9V1i$H$+%3!<%G%#%s%0$K4X78$J$$;E;v$,B?$9$.$k5$$,$7$^$9!#e(B

e$B$[$H$s$I9-9pEc$N$h$&$J07$$<u$1$F$i$C$7$c$$$^$9$b$s$M$(!#e(B

|e$B$N$h$&$K$*=q$-$K$J$i$l$F$^$9$,!"$J$K$+$r=P$9$H$$$&%9%?%s%9$Ke(B
|e$BJQ$o$j$O$"$j$^$;$s$+e(B?

e$B$O$$!"!V$J$K$+!W$O=P$^$9!#;EMM$K$D$$$F$O!"$=$l$J$j$K0BDj$7$Fe(B
e$B$$$ke(B(e$BDI2C$O$"$C$F$be(B1.9e$B$NHO0O$GHs8_49$JJQ99$Oe(B(e$B$5$[$Ie(B)e$B$J$$e(B)e$B$h$&e(B
e$B$K$7$?$$$G$9!#e(B

e$B$7$D$3$/3NG’$G?=$7Lu$"$j$^$;$s$,!“e(B12e$B7n$K%j%j!<%9$5$l$k$N$Oe(B1.9.1e$B$Ge(B
1.9.2e$B0J9_$N%9%1%8%e!<%k$O$H$j$”$($:L$Dj!#$H$$$&G’<1$G$h$m$7$$$G$9$+e(B?

In article E1Iwgi1-0004hD-Pj@x31,
Yukihiro M. [email protected] writes:

e$B$“!<!”$"$s$^$j:o$l$J$$$+$be(B(e$B$H$$$&$3$H$Oe(B1.9e$B%5%$%/%k$N4V$:$C$H;D$ke(B)e$B!#e(B

e$B$^$!!"e(Blib/finalize.rb e$B$/$i$$$O:o$C$F$$$$$s$8$c$J$$$G$9$+!#e(B

1.6.0 e$B$+$i7Y9p$r=P$7$F$^$9$7!#e(B

% ruby-1.6.0 -rfinalize -e ‘’
/home/src/ruby/160/lib/ruby/1.6/finalize.rb:178: warning:
ObjectSpace::add_finalizer is deprecated; use define_finalizer

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32369] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Tue, 27 Nov 2007 01:04:34 +0900, KIMURA Koichi
[email protected] writes:

|e$BCfESH>C<$K$7$+DI$$$+$1$i$l$F$$$J$$$N$G4*0c$$$,$"$k$+$b$7$l$^$;$s$,!"e(B
|ruby-core e$B$Ge(Bencodinge$B4X78$G7k9=%9%l%C%I$,?-$S$F$$$?$h$&$G$9$1$Ie(B
|e$B$3$NJU$N;EMM$O$[$\8G$^$C$?$H$_$F$h$$$N$G$7$g$&$+e(B?

e$B$=$N$D$b$j$G$9!#$^$@<BAu$7$F$$$J$$$s$G!"$$$6<BAu$7$F$_$k$H7je(B
e$B$,6u$$$F$?$j$7$=$&$G62$$$s$G$9$,!#e(B

|e$B$=$l$He(B1.9.1e$B$G$NI8=`E:IU$N%i%$%V%i%j$NA*Br$b$I$&$J$C$?$N$+5$$K$J$ke(B
|e$B$H$3$m$G$9!#M>7W$J?4G[$+$b$7$l$^$;$s$,!"e(B1.9.1e$B$G$Oe(B1.8e$B$N$=$l$rF’=1e(B
|e$B$9$k$1$I!"e(B1.9.xe$B!!$GJQ$($^$9$H$+1>$&OC$@$H:.Mp$r>7$/$H;W$$$^$9$7!#e(B

e$B$“!<!”$"$s$^$j:o$l$J$$$+$be(B(e$B$H$$$&$3$H$Oe(B1.9e$B%5%$%/%k$N4V$:$C$H;D$ke(B)e$B!#e(B

|e$B$7$D$3$/3NG’$G?=$7Lu$"$j$^$;$s$,!“e(B12e$B7n$K%j%j!<%9$5$l$k$N$Oe(B1.9.1e$B$Ge(B
|1.9.2e$B0J9_$N%9%1%8%e!<%k$O$H$j$”$($:L$Dj!#$H$$$&G’<1$G$h$m$7$$$G$9$+e(B?

e$B$=$&$G$9!#e(B

In article E1Iwqeu-0008MN-3C@x31,
Yukihiro M. [email protected] writes:

e$B$G$9$M!#$5$C$=$/:o$C$F$*$-$^$7$?!#B>$K$b:o$l$k$b$N$O$$$/$D$+e(B
e$B$"$k$H;W$$$^$9!#e(B

e$B%i%$%V%i%j$8$c$J$$$G$9$,!"e(Bfinalize e$B4X78$G$Oe(B
ObjectSpace.add_finalizer
ObjectSpace.call_finalizer
ObjectSpace.finalizers
ObjectSpace.remove_finalizer
e$B$G$9$+$M$'!#e(B

e$B7Y9p$OF1MM$Ke(B 1.6.0 e$B$+$i$G$9!#e(B
(e$B$H$$$&$+!"e(Blib/finalize.rb e$B$N7Y9p$O$3$N$X$s$+$i=P$F$$$?e(B)

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32374] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Tue, 27 Nov 2007 11:54:10 +0900, Tanaka A. [email protected]
writes:
|
|In article E1Iwgi1-0004hD-Pj@x31,
| Yukihiro M. [email protected] writes:
|
|> e$B$“!<!”$"$s$^$j:o$l$J$$$+$be(B(e$B$H$$$&$3$H$Oe(B1.9e$B%5%$%/%k$N4V$:$C$H;D$ke(B)e$B!#e(B
|
|e$B$^$!!"e(Blib/finalize.rb e$B$/$i$$$O:o$C$F$$$$$s$8$c$J$$$G$9$+!#e(B
|
|1.6.0 e$B$+$i7Y9p$r=P$7$F$^$9$7!#e(B

e$B$G$9$M!#$5$C$=$/:o$C$F$*$-$^$7$?!#B>$K$b:o$l$k$b$N$O$$$/$D$+e(B
e$B$"$k$H;W$$$^$9!#e(B

e$B$3$s$P$s$Oe(B sheepman e$B$G$9!#e(B

On Tue, 27 Nov 2007 01:21:17 +0900
Yukihiro M. [email protected] wrote:

|e$B$=$l$He(B1.9.1e$B$G$NI8=`E:IU$N%i%$%V%i%j$NA*Br$b$I$&$J$C$?$N$+5$$K$J$ke(B
|e$B$H$3$m$G$9!#M>7W$J?4G[$+$b$7$l$^$;$s$,!"e(B1.9.1e$B$G$Oe(B1.8e$B$N$=$l$rF’=1e(B
|e$B$9$k$1$I!"e(B1.9.xe$B!!$GJQ$($^$9$H$+1>$&OC$@$H:.Mp$r>7$/$H;W$$$^$9$7!#e(B

e$B$“!<!”$"$s$^$j:o$l$J$$$+$be(B(e$B$H$$$&$3$H$Oe(B1.9e$B%5%$%/%k$N4V$:$C$H;D$ke(B)e$B!#e(B

NaHi e$B$5$s$,$^$H$a$i$l$?e(B [ruby-dev:31969]
e$B$N$"$D$+$$$O$I$&$J$k$s$G$7$g$&$+!#e(B
e$B$$$C$?$sGr;fe(B?

In message “Re: [ruby-dev:32382] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Tue, 27 Nov 2007 22:16:30 +0900, sheepman
[email protected] writes:

|NaHi e$B$5$s$,$^$H$a$i$l$?e(B [ruby-dev:31969] e$B$N$"$D$+$$$O$I$&$J$k$s$G$7$g$&$+!#e(B
|e$B$$$C$?$sGr;fe(B?

e$B;29M$K$O$7$^$9!#e(B

e$B$G$b!“$”$=$3$Ge(BUe$B$@$+$i$?$@$A$K:o$l$k$+$I$&$+$O<+?.$,$J$$$G$9!#e(B
e$B:o$C$?$b$N$,e(Bgeme$B$G<j$KF~$k$J$iHo32$O>/$J$$$G$9$,!#$=$&$$$&$b$Ne(B
e$B$P$+$j$G$b$J$$$G$9$7!#e(B

 最近さぼり気味の武者です。

 1.9.1のリリース前に、ぜひとも1.8系のように NEWS ファイルを
用意したいです。(ユーザに見える変更/è¿½åŠ ç‚¹ãƒªã‚¹ãƒˆ)

 これを取り込めればいいのかなと思いますが、どうでしょう。

eigenclass.org

 1.9.1がコードフリーズしたら、この中で仕様的に固まっていて
かつ互換性を失わずに移植可能なものを1.8にバックポートしたり、
両方で動くコードを書きやすい仕組みの提供を進めたいと思って
います。


/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp

“Different eyes see different things,
Different hearts beat on different strings –
But there are times for you and me when all such things agree”

At Tue, 27 Nov 2007 23:42:38 +0900,
matz wrote:

|
| eigenclass.org

そこからさらに私がまとめたものです。が、結構見落としがありそ
う。最初の一歩くらいにはなるでしょう。

 おお。さっそくcommitして、あとはみんなでつっつくということで
どうでしょうか。今後もコードの変更と同期して更新すれば、こっそり
変わっててぎゃっ、ということが減りますね。

 実験的な機能についての EXPERIMENTAL 表記を徹底すれば、開発者は
もちろん、アーリーアダプターにとって大いに参考になり、フィード
バックを期待できます。

 そして、1.8にバックポートした機能については1.9のNEWSにその旨
追記するようにすれば、移行・移植の助けになり、動作環境の指定等に
役立つと思います。


/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp

“Different eyes see different things,
Different hearts beat on different strings –
But there are times for you and me when all such things agree”

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:32382] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Nov.27,2007 22:16:30, [email protected] wrote:
| NaHi e$B$5$s$,$^$H$a$i$l$?e(B [ruby-dev:31969] e$B$N$"$D$+$$$O$I$&$J$k$s$G$7$g$&$+!#e(B
| e$B$$$C$?$sGr;fe(B?

1.9.1e$B$Ne(Bpreview1e$B$NOC$,=P$?$iF0$3$&$H;W$C$F$$$F!"=P$F$3$J$$$+$ie(B
e$B$=$N$^$^K:$l$F$$$?$N$G$9$,!"e(BWin32APIe$B$K$D$$$F$O!"e(B
(a) ext/Win32API e$B$O:o=|$9$ke(B
(b) ext/Win32API/lib/win32/* e$B$Oe(B ext/dl/lib/win32/*
e$B$K0\F0$9$ke(B
(c) ext/dl/lib/Win32API.rb e$B$rDI2C$9$ke(B
e$B$h$&$K$7$h$&$+$H;W$C$F$$$^$9!#e(B
dl
e$B<+BN$N%a%s%F%J$ON)@P$5$s$N$^$^$G$9$,!"e(B(b)e$B!&e(B(c)e$BItJ,$K$D$$$Fe(B
e$B$O;d$,%a%s%F$7$h$&$H;W$$$^$9e(B(sspi.rb
e$B$O$h$/$o$+$s$J$$$G$9$,e(B)e$B!#e(B

(a)e$B$K$D$$$F$O4{$Ke(B[ruby-dev:32382]e$B$G=q$+$l$F$$$k$h$&$K4{Dj$NJ}e(B
e$B8~$J$N$GLdBj$J$$$H;W$$$^$9!#e(B
(b)e$B$N0];}$H8_49@-$N$?$a$Ne(B(c)e$B$NDI2C$b!“<B:]$N%9%/%j%W%H$NFbMFe(B
e$B$O$H$b$+$/$=$l<+BN$OLdBj$J$$$H$$$&$+I,MW$@$m$&$H9M$($F$$$^$9!#e(B
e$B0[O@Ey$N$”$kJ}$O$$$i$C$7$c$$$^$9$+e(B?

ext/dl/lib/Win32API.rb e$B$O0J2<$N$b$N$r;H$*$&$H9M$($F$$$^$9!#e(B

-- ruby --

for backward compatibility

warn “Warning:#{caller[0].sub(/:in `.*'\z/, ‘’)}: Win32API is deprecated
after Ruby 1.9.1; use dl directly instead” if $VERBOSE

require ‘dl’

class Win32API
DLL = {}
TYPEMAP = {“0” => DL::TYPE_VOID, “S” => DL::TYPE_VOIDP, “I” =>
DL::TYPE_LONG}

def initialize(dllname, func, import, export = “0”)
@proto = [import].join.tr(“VPpNnLlIi”, “0SSI”).sub(/^(.)0*$/, ‘\1’)
handle = DLL[dllname] ||= DL.dlopen(dllname)
@func = DL::CFunc.new(handle[func], TYPEMAP[export.tr(“VPpNnLlIi”,
“0SSI”)], func)
end

def call(args)
import = @proto.split(“”)
args.each_with_index do |x, i|
args[i], = [x == 0 ? nil : x].pack(“p”).unpack("l!
") if import[i]
== “S”
args[i], = [x].pack(“I”).unpack(“i”) if import[i] == “I”
end
ret, = @func.call(args)
return ret || 0
end

alias Call call
end

e$B$=$l$G$O!#e(B

In message “Re: [ruby-dev:32384] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Tue, 27 Nov 2007 23:36:52 +0900, “Akinori MUSHA”
[email protected] writes:
|
|[1 <text/plain; ISO-2022-JP (7bit)>]
|e$B!!:G6a$5$$j5$L#$NIp<T$G$9!#e(B
|
|e$B!!e(B1.9.1e$B$N%j%j!<%9A0$K!“$<$R$H$be(B1.8e$B7O$N$h$&$Ke(B NEWS e$B%U%!%$%k$re(B
|e$BMQ0U$7$?$$$G$9!#e(B(e$B%f!<%6$K8+$($kJQ99e(B/e$BDI2CE@%j%9%He(B)
|
|e$B!!$3$l$r<h$j9~$a$l$P$$$$$N$+$J$H;W$$$^$9$,!”$I$&$G$7$g$&!#e(B
|
| eigenclass.org

e$B$=$3$+$i$5$i$K;d$,$^$H$a$?$b$N$G$9!#$,!“7k9=8+Mn$H$7$,$”$j$=e(B
e$B$&!#:G=i$N0lJb$/$i$$$K$O$J$k$G$7$g$&!#e(B


Incompatible (Severe)

* New syntax and semantics
      o Block arguments are always local
      o Block arguments
      o New semantics for block arguments
      o Block local variables [EXPERIMENTAL]
* String
      o No longer an Enumerable
      o ?c semantics
      o "One-char-wide" semantics for String#[] and String#[]= 

[Ruby2]
o Encoding-awareness
* IO operations
o IO#getc

Incompatible (Trivial)

* New syntax and semantics
      o Method used for splat arguments: #to_splat
      o defined? and local variables
* Kernel and Object
      o Kernel#require
* Class and Module
      o Class variables behavior
      o Module#attr is an alias of attr_reader
      o Module#instance_methods, #private_instance_methods, 

#public_instance_methods
o Extra subclassing check when binding UnboundMethods
* Exceptions
o Equality of exceptions
o SystemStackError
o SecurityError
o Removed Exception#to_str [Ruby2]
* Array
o Array#nitems
o Array#[m,n] = nil places nil in the array.
* Hash
o Hash#to_s is equivalent to Hash#inspect
o Semantics for Hash#each and Hash#each_pair
o Hash#select
* Integer
o Integer(nil) raises TypeError
* Struct
o Struct#inspect
* File and Dir operations
o #to_path in File.path, File.chmod, File.lchmod, File.chown,
File.lchown, File.utime, File.unlink… [Ruby2]
o Dir.[], Dir.glob
o Dir.exist?
* IO operations
o Non-blocking IO
o IO#getbyte, IO#readbyte, StringIO#getbyte, StringIO#readbyte
o Kernel#open [Ruby2]
o IO#initialize now accepts an IO argument
o StringIO#readpartial
o IO#lines
o IO#bytes
o IO.try_convert
o Limit input in IO#gets, IO#readline, IO#readlines,
IO#each_line, IO#lines, IO.foreach, IO.readlines, StringIO#gets,
StringIO#readline, StringIO#each, StringIO#readlines
o IO#ungetc, StringIO#ungetc
* Time
o New format in Time#to_s
o Timezone information preserved on Marshal.dump/load
* Symbols: restriction on literal symbols
* $SAFE and bound methods
* Deprecation
o VERSION and friends
o StringScanner
o Kernel.to_a
o Kernel#getc
o Object#type
o File.exists?
o Hash#index
o ENV.index
o Symbol#to_int
o Removed Array and Hash #indices, #indexes

Compatible

* New syntax and semantics
      o New literal hash syntax [Ruby2]
      o New syntax for lambdas [VERY EXPERIMENTAL]
      o .() and calling Procs without #call/#[] [EXPERIMENTAL]
      o Mandatory arguments after optional arguments allowed
      o Multiple splats allowed
      o Arguments to #[]
      o printf-style formatted strings (%)
      o Newlines allowed before ternary colon
* Kernel and Object
      o BasicObject
      o #instance_exec
      o Object#=~
      o Object#tap
      o Kernel#instance_variable_defined?
      o Kernel#define_singleton_method
      o Kernel#singleton_methods, Kernel#methods
* Class and Module
      o Module#const_defined?, #const_get and #method_defined?
      o Module#class_variable_defined?
      o #class_variable_{set,get}
      o Class of singleton classes
      o #module_exec
* Binding#eval
* Blocks and Procs
      o Arity of blocks without arguments
      o proc is now a synonym of Proc.new
* Blocks and Procs
      o Proc#yield
      o Passing blocks to #[]
      o Proc#lambda?
* Enumerable and Enumerator
      o Enumerable methods called without a block
      o Enumerable#cycle
      o Enumerable#each_with_index
      o Enumerable#first(n)
      o Enumerable#group_by
      o Enumerable#find_index
      o Enumerable#take
      o Enumerable#drop
      o Enumerator#each
      o Enumerable#inject (#reduce) without a block
      o Enumerable#count
      o Enumerable#reduce
      o Enumerator#with_index [EXPERIMENTAL]
      o Enumerable##min_by, #max_by
      o Enumerable#zip
      o Enumerable#minmax and minmax_by
      o Enumerator#rewind
      o Enumerator#next
* Regexp#match, String#match
      o Regexp#match, String#match
* Fiber: coroutines/micro-threads
* Array
      o Block argument to Array#index, Array#rindex [Ruby2]
      o Array#combination
      o Array#permutation
      o Array#product
      o Array#pop, Array#shift
      o Array#to_s is equivalent to Array#inspect
      o Array.try_convert
* Hash
      o preserving item insertion order
      o Hash#_compare_by_identity and Hash#compare_by_identity?
      o Hash.try_convert
* Integer
      o Integer#odd?, #even?
      o Integer#pred
* Method
      o Method#receiver
      o Method#name
      o Method#owner
* Numeric
      o Numeric#upto, #downto, #times, #step
      o Numeric#scalar?, Complex#scalar?
      o Numeric#div
      o Numeric#fdiv
* Range
      o Range#cover?
      o Range#include?
      o Range#min, Range#max
* Regexp
      o Regexp#=== matches symbols
      o Regexp.try_convert
* String
      o String#clear
      o String#each_char
      o String#ord
      o String#partition, #rpartition
      o String#lines
      o String#bytes
      o String#encoding
      o String#force_encoding
      o String#start_with?, #end_with?
      o String#unpack with a block
      o String#hash
      o String#upto
      o String.try_convert
* Symbol
      o Zero-length symbols allowed
      o Symbol#=== matches strings
      o Symbol#intern
      o Symbol#encoding
      o Symbol methods similar to those in String
* Math
      o Math#log and Math#log2
* File and Dir operations
      o New methods
* Process
      o Process.setrlimit
      o Process.daemon
      o Process.exec
* Misc. new methods
      o GC.stress, GC.stress=
      o Method#hash, Proc#hash
      o __method__ and __callee__
      o Symbol#to_proc
  • Implementation
    • Memory Diet
      • Object Compaction - Object, Array, String, Hash, Struct, Class,
        Module
      • st_table compaction (inlining small tables)
    • YARV

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32387] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Wed, 28 Nov 2007 00:42:57 +0900, “U.Nakamura”
[email protected] writes:

|1.9.1e$B$Ne(Bpreview1e$B$NOC$,=P$?$iF0$3$&$H;W$C$F$$$F!"=P$F$3$J$$$+$ie(B
|e$B$=$N$^$^K:$l$F$$$?$N$G$9$,!"e(B

e$B$9$_$^$;$s!#e(Bpreviewe$B$OBT$?$J$$$G:n6H$r;O$a$A$c$C$F$/$@$5$$!#e(B

e$BN)@P$G$9!#e(B

U.Nakamura e$B$5$s$O=q$-$^$7$?e(B:

e$B0[O@Ey$N$"$kJ}$O$$$i$C$7$c$$$^$9$+e(B?
e$B;d$O$^$C$?$/0[O@$"$j$^$;$s!#e(B
e$B$^$?!"$3$3e(B1e$BG/$/$i$$$N<+J,$N>u67$r8+$k$He(Bruby-deve$B$rFI$s$@$j!"=$@5$re(B
e$B9T$C$F$$$k;~4V$,$"$^$j$J$$$N$G!"e(Bdle$B$=$N$b$N$N%a%s%F%J%s%9$b;d$H$H$be(B
e$B$K$7$FD:$1$k$H$&$l$7$$$G$9!#e(B

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:32407] Re: 1.9.1e$B$N%j%j!<%9;~4|$K$D$$$Fe(B”
on Nov.30,2007 21:47:30, [email protected] wrote:
| U.Nakamura e$B$5$s$O=q$-$^$7$?e(B:
| > (a) ext/Win32API e$B$O:o=|$9$ke(B
| > (b) ext/Win32API/lib/win32/* e$B$Oe(B ext/dl/lib/win32/* e$B$K0\F0$9$ke(B
| > (c) ext/dl/lib/Win32API.rb e$B$rDI2C$9$ke(B
| > e$B$h$&$K$7$h$&$+$H;W$C$F$$$^$9!#e(B
| > dl e$B<+BN$N%a%s%F%J$ON)@P$5$s$N$^$^$G$9$,!“e(B(b)e$B!&e(B(c)e$BItJ,$K$D$$$Fe(B
| > e$B$O;d$,%a%s%F$7$h$&$H;W$$$^$9e(B(sspi.rb e$B$O$h$/$o$+$s$J$$$G$9$,e(B)e$B!#e(B
| > (a)e$B$K$D$$$F$O4{$Ke(B[ruby-dev:32382]e$B$G=q$+$l$F$$$k$h$&$K4{Dj$NJ}e(B
| > e$B8~$J$N$GLdBj$J$$$H;W$$$^$9!#e(B
| > (b)e$B$N0];}$H8_49@-$N$?$a$Ne(B(c)e$B$NDI2C$b!”<B:]$N%9%/%j%W%H$NFbMFe(B
| > e$B$O$H$b$+$/$=$l<+BN$OLdBj$J$$$H$$$&$+I,MW$@$m$&$H9M$($F$$$^$9!#e(B
| > e$B0[O@Ey$N$“$kJ}$O$$$i$C$7$c$$$^$9$+e(B?
|
| e$B;d$O$^$C$?$/0[O@$”$j$^$;$s!#e(B

e$B$H!"$$$&$o$1$G!"F~$l$^$7$?!#e(B

e$BHse(BWindowse$B%W%i%C%H%U%)!<%`$Ke(BWin32API.rbe$B$,%$%s%9%H!<%k$5$l$F$be(B
e$B$=$l$O$=$l$G:$$k>l9g$b$"$k$N$G!“CfED$5$s$K%”%I%P%$%9$rD:$$$Fe(B
e$B!“e(Bdl/win32e$B0J2<$KJLESe(Bextconf.rbe$B$rMQ0U$7$F$=$A$i$Ke(BWin32APIe$B4XO"e(B
e$B$OF~$l$F$”$j$^$9!#e(B

| e$B$^$?!“$3$3e(B1e$BG/$/$i$$$N<+J,$N>u67$r8+$k$He(Bruby-deve$B$rFI$s$@$j!”=$@5$re(B
| e$B9T$C$F$$$k;~4V$,$"$^$j$J$$$N$G!"e(Bdle$B$=$N$b$N$N%a%s%F%J%s%9$b;d$H$H$be(B
| e$B$K$7$FD:$1$k$H$&$l$7$$$G$9!#e(B

e$B<B$Oe(Bdle$B$NCf?H<+BN$OA4A38+$F$J$$$s$G$9$,e(B…
e$BC/$+DI$($F$k?M$$$^$9$+$M!#e(B

e$B$=$l$G$O!#e(B