From: Yukihiro Matsumoto Date: 2008-09-17T07:55:11+09:00 Subject: [ruby-dev:36339] Re: [patch] performance improvement patch for benchmark/bm_so_count_words.rb まつもと ゆきひろです In message "Re: [ruby-dev:36337] Re: [patch] performance improvement patch for benchmark/bm_so_count_words.rb" on Wed, 17 Sep 2008 03:12:49 +0900, "masayoshi takahashi" writes: |最近のメール[ruby-core:18616]の、case.patとcasecmp.patなんかは |同趣旨のものと思われます。 最新のtrunkではおおむね取り込んでます。 |で、成瀬さんご指摘の[ruby-core:18532]によれば、rb_str_modify()で |CODERANGEをクリアしているのが問題で、それがなければ再度 |判別する必要がないのでは、ということでした。確かに計ってみると |それっぽいです。 | | * この認識はあってますか? あってます。 | * rb_str_modify()の、 ENC_CODERANGE_BROKENじゃなければ | クリアしない版をstr_modify()という名前で作る、がいいですか? str_modify_keep_cr()という名前で導入しました。 |(個人的にはrb_str_modify()との違いが分かりにくいというか、そもそも | rb_str_modify()を変えてしまっていいのではないかという気も | するんですが、やっぱりクリアする版も必要なんでしょうか?) rb_str_modify()を呼ぶということは文字列を変更する予定があると いうことで、それはつまり一般論としてはCODERANGE情報が維持され ることも期待できないということではないかと思います。