«前の日記(2004-09-21) 最新 次の日記(2004-09-23)» 編集

Matzにっき

迷惑メール対策なら Dr.WEB
『Dr.WEB メールデーモン』、MTA 用迷惑メール対策製品です!


2004-09-22 [長年日記]

_ [Ruby]今日のChangeLog

デバッグ。きりがない。

  • hash.c (hash_alloc): was using tbl pointer without initialization.
  • hash.c (rb_hash_rehash): add iteration check. [ruby-dev:24301]
  • st.c (st_foreach): add deep check.
  • array.c (rb_ary_collect_bang): element size might change during comparison. [ruby-dev:24300]
  • array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300]
  • array.c (rb_ary_eql): ditto. [ruby-dev:24300]

諸悪の根源、継続を手当てするべきなんだろうか。

それとは別にソースの整理。

  • parse.y: remove global variables ruby_eval_tree and ruby_eval_tree_begin.

    parse.yからグローバル変数を無くす修正に取り掛かる。まだ先は遠いが。 しかし、bisonを要求するようになるのはどうなんだろう。

  • hash.c (rb_hash_fetch): returns KeyError instead of IndexError.

    Enumerable#each_with_indexから飛び火。

    問題は「Hashのkeyをindexと見るかどうか」。 indexと見るならばEnumerable#each_with_indexはkeyを与えるべき。 見ないならばfetchなどがIndexErrorを返すのはおかしい。

    私の結論としては「indexとして見ない」、「IndexErrorを新設のKeyErrorに変更」とした。 ただし、互換性の点からKeyErrorはIndexErrorのサブクラス。

お名前:
E-mail:
コメント:
[]

«前の日記(2004-09-21) 最新 次の日記(2004-09-23)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.