まつもと ゆきひろです

In message "[ruby-dev:20134] Re: Array#map"
    on 03/05/02, Koji Arai <JCA02266 / nifty.ne.jp> writes:

|仕様(挙動)がころころ変わるとどのバージョンがどうかを覚えてお
|くコストがかかる罠。

まったくです。もうちょっと私の頭が良くてあらかじめなにが良く
てなにが悪いのか分かればよいのですが。まあ、こればっかりはしょ
うがないんで、我慢してもらうしかないかと。私も我慢します。

|>  * 1.6の面倒をみるのが面倒になった
|
|1.6.9 出して打ちどめで全然問題ないと思います。バグももう直さ
|ない。1.6 利用者はその方がうれしいと思います。ただ、.9 で最
|後になるので、慎重に(^^

この慎重ってのに弱いんですよねえ。

|>  * 1.8の仕様がなかなか確定しない
|
|1.8.0 は開発版だと宣言しちゃいましょう。そして、feature
|freeze も宣言しちゃいましょう。そしてバグ出しが落ち着いたら
|1.8.1 安定版リリース!

気になるところを直さずにはいられないんですよねえ。

|>  * 1.8の仕事の方が手軽(だから先にやっちゃう)
|>  * 1.9の仕様のことも心配だ
|
|で、不安定な仕様は 1.9.0 に追い出しましょう。
|
|ってのはいかがでしょう?

Proc#yieldがねえ(後述)。

|以下、軽く洗い出した unstable feature
|
|* Proc#yield
|    ... 1.8.0 では、Proc#yield 削除! とか?

これは悩んでます。なんらかの方法で(1.8で)yield相当を提供した
いんですが、とはいえProc#yieldとProcとBlockの両方を導入する
のとですぐに結論は出せないし。

|* $stdin,$stdout,$stderr への代入の挙動
|    ... 1.6 でも文句が出ないし、1.6 の仕様に戻すのが好み(ど
|        うせ使われてないと思うし)

そーなんですよねえ。今のでは中途半端だし、とりあえず1.6に戻
しても構わないかなあ。

|* "".reverse! は "" を返すが、[].reverse! は nil を返す。
|    ... どちらかへの統一が望まれるのではないかと(掘り返すな?^^;)。

あれ、Array#reverse! は self を返すべきですよね。これは直し
ます。指摘してくださって感謝します。

|以下、ChangeLog に experimental と書かれたものを抜き出してみ
|ました

おお、ありがたい。

|Wed Apr  9 18:30:58 2003  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* eval.c (top_include): include module to wrapper module if
|	  wrapper is present. experimental.  [ruby-list:37539]

これは本当は止めたいです。

|Wed Feb 19 18:27:42 2003  Nobuyoshi Nakada  <nobu.nokada / softhome.net>
|
|	* node.h (nd_cpath): nested class/module declaration.
|	  [EXPERIMENTAL]

これは採用にしましょう。

|Fri Nov  8 04:16:55 2002  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* parse.y (yylex): "a" in "a /5" should be considered as a local
|	  variable. [experimental]

これは採用でいいでしょう。

|Fri Oct 11 15:58:06 2002  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* parse.y (arg): rescue modifier is now an operator with
|	  precedence right below assignments. i.e. "a = b rescue c" now
|	  parsed as "a = (b rescue c)", not as "(a = b) rescue c". [new]
|	  [experimental]

これは採用。

|Mon Sep  9 11:21:04 2002  Nobuyoshi Nakada  <nobu.nokada / softhome.net>
|
|	* ext/stringio/stringio.c (strio_become): added self-assign check
|	  and experimental auto-conversion to StringIO.

いつのまにかstrio_becomeはなくなってますね。

|Tue Jun 25 00:34:54 2002  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* object.c (rb_Integer): use "to_int" instead of
|	  "to_i". [experimental]

これは採用。

|Tue Dec 11 03:40:23 2001  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* array.c (rb_ary_select): Array#select(n,m,...) now works like
|	  Array#indexes(n,m,..). [new, experimental]

いろいろもめてるわりには結論が出ない件ですね。selectに複数の
役割を持たすのは良くないという意見も理解できますが、他によい
名前がないというのも事実です。今まで出たselect以外の名前では
values_atが良いと思います。

|Tue Dec  4 17:43:10 2001  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* time.c (time_getlocaltime): new method;  probably requires
|	  better name than getlocaltime. [new,experimental]

忘れてた。この名前今でも気に入ってないんですが、誰も文句を言
わないからそのままでいいのかなあ。

|Thu Nov 15 00:07:12 2001  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* array.c (rb_ary_to_s): if rb_output_fs is nil, insert newlines
|	  between array elements (use rb_default_rs as newline literal)
|	  [experimental].

これは止めてますね。

|Tue Jun 19 16:29:50 2001  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* eval.c (svalue_to_mvalue): new function to convert from svalue
|	  to mvalue. [experimental]

これは後に書き換えられてます。

|Sat May 26 09:55:26 2001  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* parse.y: accomplish extended syntax described in [ruby-talk:14525]
|	  using tSPC token. [new, experimental]

これは止めてます。

|Tue May 22 02:37:45 2001  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* parse.y (expr): "break" and "next" to take optional expression,
|	  which is used as a value for termination. [new, experimental]

これは採用。

|Wed Feb  7 00:57:42 2001  Yukihiro Matsumoto  <matz / ruby-lang.org>
|
|	* parse.y (cond0): disable special treating of integer literal in
|	  conditional unless option -e is supplied.  changes current
|	  behavior.  experimental.

これは採用でいいんじゃないかな。

ということは、残る懸案は

 * Proc#yield
 * top_include
 * select(index,...)
 * $stdinなど

くらいですかね。

                                まつもと ゆきひろ /:|)