25038-25371

24840-25168 subjects 25273-25791

Continuation protection (Re:  Re: IO#flush dumps core again)
25038 [nobu@ru y- a] スレッドを考慮してませんでした。

BasicSocket#setsockopt dumps core
25039 [akr@m1 n. rg] 次のようにすると core を吐きます。

temporal locking already locked string on simultaneous write
25041 [akr@m1 n. rg] 同じ文字列をほぼ同時に IO に書き込むと、temporal locking already
25042 [matz@ru y- a] どうしたもんでしょうかねえ。カウントロックにすればよいのかも
25043 [akr@m1 n. rg] どう実装するかはさておき、ロックの方向性で進めるのであれば、カウンタを
25047 [matz@ru y- a] 前者の代わりに、いつの間にかうやむやにして忘れ去ってしまった
25049 [akr@m1 n. rg] [ruby-dev:24441] と似ているのはたしかなのですが、rb_str_shared_replace
25050 [matz@ru y- a] あ、そうでしたね。そうか、これから変更する文字列は書き換わっ
+ 25052 [nobu@ru y- a] [ruby-dev:24441]が参照だけの場合に対応していないのは、そういう
+ 25091 [tietew-ml-ru] [[ruby-dev:25050] Re: temporal locking already locked string on simultaneous write]
  25092 [tietew-ml-ru] [[ruby-dev:25091] Re: temporal locking already locked string on simultaneous write]
  25094 [matz@ru y- a] すみません。関数名を教えてください。
  25097 [tietew-ml-ru] [[ruby-dev:25094] Re: temporal locking already locked string on simultaneous write]
  25098 [matz@ru y- a] コミットしました。これでどうでしょう?
  25102 [tietew-ml-ru] [[ruby-dev:25098] Re: temporal locking already locked string on simultaneous write]

UDPSocket#connect dumps core
25045 [akr@m1 n. rg] 次のようにすると core を吐きます。

optparse: -L VS --line
25048 [aamine@lo er] optparse で --lines オプションを定義すると -L も

ライブラリのテストにバージョンチェック追加希望
25053 [zn@mb .n ft ] 自分でmake installしているruby 1.8の環境の1つでtest/runner.rbを
25106 [kou@co mi ng] RSS Parserのテストにはバージョンをチェックするテストを追加し

rexml
25054 [taca@ba k- t] こんばんは。
25055 [nobu@ru y- a] rexml/encoding.rbでは、クラス変数を介してコードをevalする、とい
25058 [taca@ba k- t] おぉ、なるほど。loadしてるファイルの中で require されても効果ないわけ
25059 [matz@ru y- a] えーと、で、結局どういうアクションを取るべきでしょうか。
25060 [taca@ba k- t] pkgsrcの方では、そのままパッチを採用しました。
25061 [matz@ru y- a] requie -> load も含めて、ですよね。
25062 [taca@ba k- t] はい、そうです。
25063 [matz@ru y- a] ruby-coreにレポートしておきました。
25069 [taca@ba k- t] ありがとうございます。

UDPSocket#bind dumps core
25057 [akr@m1 n. rg] 次のようにすると core を吐きます。
25073 [nobu@ru y- a] 三つまとめて。

CVSのrubybugsサポート
25075 [shugo@ru y- ] RubyのCVSのcommit logに"[ruby-dev:0123456]"のような文字列を入れておく

Process.groups= dumps core
25081 [akr@m1 n. rg] 次のようにすると core を吐きます。

Re: [ruby-cvs] ruby/ext/socket, ruby: * process.c
25085 [akira@ar ka ] これについて以下が抜けているのではないかと思います。

Re: [ruby-cvs] ruby/ext/socket, ruby: * process.c	(proc_setgroups):
25087 [matz@ru y- a] あーっ、すいません。1.9で直したのに1.8の方を忘れてました。
25114 [zn@mb .n ft ] hash.cの方はcommit logだけではなくChangeLogの方でも
25115 [matz@ru y- a] ご指摘どうも。

double free problem
25096 [knu@iD em ns]  ご無沙汰しております。
25099 [matz@ru y- a] ふうむ。linux + valgrind では発見できませんでした。
25157 [akr@m1 n. rg] なんとなく boron で試した所、Invalid free() が出て来ましたが、これは違
25169 [matz@ru y- a] なんで私のところで検出できないのかというのは謎として残ります
+ 25171 [ttate@tt ky ] すいません。すっかりこの話題を見逃していました。
| 25177 [matz@ru y- a] 減るんだけど、double freeは起きてるみたいに見えます。
| 25194 [ttate@tt ky ] すいません。relpath自体は第一引数がconstですね。
+ 25195 [ttate@tt ky ] これについて、意見を伺いたいと思っています。現状の実装では、戻り
  25196 [akr@m1 n. rg] 引数のポインタと返値のポインタを比較して、引数に渡したものが返ってきた
  + 25197 [matz@ru y- a] ctime(3)とかでうまくいかないような。
  + 25199 [ttate@tt ky ] realpath()などの場合にはうまくいきそうです。strtok()なども範囲を確認する
    25201 [akr@m1 n. rg] 返値を free すべき場合ってどういうのがありましたっけ?
    25202 [ttate@tt ky ] # すいません、その質問の先が掴めないのですが...
    25203 [akr@m1 n. rg] どこまで実現するとどのくらい嬉しいのかという点と、仮に付加情報を与える
    25260 [ttate@tt ky ] # メールを紛失していたようで、間が空いてしまいました。

non-stdio buffering
25101 [akr@m1 n. rg] えぇと、今回 1.9 でなにが起きたのかを私が把握している範囲でまとめてお
+ 25109 [gotoyuzo@no ] はい。ここについてはfdopen()を使うように変更しました。
+ 25117 [akr@m1 n. rg] すばらしい。
| + 25120 [eban@os ri .] fork(2)がないのはDJGPPだけじゃないので、DJGPPに限るのはちょっ
| | 25122 [akr@m1 n. rg] なるほど。
| | 25128 [akr@m1 n. rg] とりあえずこの方針で実装しました。
| + 25121 [don@na ri .o] 捨てられるのはかなり悲しいのでフォローします。
|   25123 [akr@m1 n. rg] ふむ。read/write 関数は unistd の関数と考えていいですか?
|   + 25125 [akiyoshi@hp ] はい,VMSのporterです。
|   | 25127 [akr@m1 n. rg] 手間をかけていただけるというのはありがたい限りです。
|   + 25129 [don@na ri .o] はい、read関数とwrite関数の中でテキストモードの処理が行われます。
|     25130 [akr@m1 n. rg] とすると text mode に関しては Windows とおなじかんじなので、Windows 以
|     25139 [akiyoshi@hp ] 田中さん,
+ 25164 [akr@m1 n. rg] この話を調べているのですが、手元の ncurses は FILE 構造体内にバッファ
  25179 [matz@ru y- a] そうだったのか。
  25183 [akr@m1 n. rg] やはりこういうときは由緒正しいものも調べないと、と思って 4.3BSD の
  25371 [akr@m1 n. rg] しばらく考えた末、これを復活させ、rb_read_check などを元の動作に戻しま

ruby_xrealloc dumps core
25103 [tietew-ml-ru] スレッドのコンテキストスイッチで core dump しました。
25119 [matz@ru y- a] 残念ながら。

sprintf dumps core
25104 [akr@m1 n. rg] 次のようにすると core を吐きます。

pipe on win32 (Re: non-stdio buffering)
25110 [usa@ga ba ec] 昨晩、この方向で、Win32版での双方向パイプを復活させました。
25112 [kimura.koich] socketとは関係ないと思うのですが、以下のスクリプトが終了しません。
25116 [usa@ga ba ec] 関係あるみたいです orz
25124 [usa@ga ba ec] いちおう直りました。

[BUG] in parser
25113 [zn@mb .n ft ] irb19が[BUG]で落ちるので原因となったところを調べてみると

DBM#select dumps core
25132 [akr@m1 n. rg] 次のようにすると core を吐きます。

test_socket failed on Tru64UNIX
25133 [aamine@lo er] Tru64UNIX で CVS HEAD の test_socket が失敗しました。
25142 [taca@ba k- t] Linux specificだったりしませんか。NetBSDにもありません。
25145 [nobu@ru y- a] SO_LINGERに変えました。

Set/test_eq failed on Tru64UNIX
25134 [aamine@lo er] Tru64UNIX + ccc の ruby で Set のテストが失敗しました。
25137 [nobu@ru y- a] これはそもそもSetがHashベースで実装されているのに、mutableな要
25138 [matz@ru y- a] 要素自身をkeyにするので問題になるので、object_idをkeyにすれ
25140 [nobu@ru y- a] Set["a"].include?("a")は、やっぱりtrueが期待されるんじゃないで
25141 [matz@ru y- a] inspectやhashにコンテキストをオプショナルな引数で渡す、とか。
25143 [nobu@ru y- a] それが一番いいんですが。
25146 [matz@ru y- a] arityって簡単にチェックできましたっけ。funcall_rescueを使っ
25147 [nobu@ru y- a] method_arity()から分離すればそう大変ではないと思いますが。
25148 [matz@ru y- a] じゃあ、そうしましょうか。コミットしてください。

1.8 Socket#listen dumps core
25149 [akr@m1 n. rg] 次のようにすると core を吐きます。

1.8 IO#reopen dumps core
25150 [akr@m1 n. rg] 次のようにすると core を吐きます。

[ ruby-Bugs-1187 ]  環境変数HOMEの展開がおかしい
25151 [matz@ru y- a] rubyforge.orgに日本語でレポートされてもって感じですが、
25153 [usa@ga ba ec] うーん、再現しません。困ったな。

1.8 reopen problem with duplex popen
25152 [akr@m1 n. rg] 次のように、1.8 で双方向 popen な IO を reopen するとエラーになること
+ 25154 [akr@m1 n. rg] う、1.8 最新版では挙動が変わっていました。次のように core を吐きます。
+ 25155 [nobu@ru y- a] こういうのはどうでしょうか。
  + 25262 [matz@ru y- a] 忘れてました。コミットしてください。
  + 25263 [akr@m1 n. rg] そういえば、ここで fclose してますけど、popen だった場合も fclose でい
    25264 [nobu@ru y- a] popen(3)を使うのは、djgpp, human68k, VMSでしたっけ? VMSは分かり
    25265 [eban@os ri .] djgppの場合、popenで"r"のときはそうですが、popenで"w"のとき
    25266 [akr@m1 n. rg] そういえば、pclose はプロセスの終了を待つ効果がありますが、ここではプ
    25268 [nobu@ru y- a] たしかに。
    25269 [akr@m1 n. rg] ふむ。この挙動が fork がないシステムで通用するものなのかどうかはいまひ
    25279 [akr@m1 n. rg] ちょっと考え直したのですが、IO#reopen に IO を渡したときはそうでなくて

core dump on NetBSD 2.0
25158 [akr@m1 n. rg] NetBSD 2.0 で次のようにすると core を吐きます。
25159 [akr@m1 n. rg] 得られた知見から、GNU/Linux でも次の変更を行うと怪しげなことが起こるはずです。
25163 [akr@m1 n. rg] これどうやら別の話なようです。
25165 [nobu@ru y- a] これは実質的にはalloca(1)とほぼ同等だと思います。ということで、
+ 25166 [matz@ru y- a] alloca()の実装が信用できるならそうですが。gccの環境ならC
+ 25167 [akr@m1 n. rg] __builtin_frame_address の導入の経緯を調べると [ruby-dev:11180] みたい
  25170 [matz@ru y- a] 結局、allocaの実装が(GCに使う目的としては)信頼できなかったと
  25172 [akr@m1 n. rg] うぅむ。それだけの情報からは「alloca は使わないほうがいい」という以上
  + 25173 [shugo@ru y- ] たしか、[ruby-dev:11180]の環境だと、alloca()が返すアドレスがなぜかフレー
  | 25176 [akr@m1 n. rg] ふむ。alloca を普通の変数に変換するとか、なんらかの最適化を行っていた
  | + 25178 [matz@ru y- a] それはよかった。
  | | 25181 [akr@m1 n. rg] 私も同じような感覚です。
  | | + 25182 [matz@ru y- a] 賛成。コミットしていただけませんか?
  | | | 25185 [akr@m1 n. rg] 入れました。
  | | + 25184 [taca@ba k- t] この辺りの話は殆んど何も言えませんが、
  | + 25180 [shugo@ru y- ] -O0だったらOKという話だったような気がするので、最適化がらみで何かあった
  |   25186 [akr@m1 n. rg] まぁ、それはそうなのだとは思います。
  + 25174 [matz@ru y- a] 私が持っているのもalloca(1)というやり方ではうまくいかないプ

ripper in snapshot.tar.gz
25160 [akr@m1 n. rg] ふと、とある autoconf も bison も入っていない環境で Ruby をコンパイル
25175 [matz@ru y- a] そのようにしてみました。
25191 [akr@m1 n. rg] snapshot.tar.gz に ripper.c が入ったのですが、それだけでは ripper は作
25214 [aamine@lo er] ripper.c が存在するときは bison チェックを無視するようにしました。

Curses::Window#subwin dumps core
25161 [akr@m1 n. rg] 次のようにすると core を吐きます。
25162 [shugo@ru y- ] HEADで修正しました。

OpenSSL::Digest::Digest.new dumps core
25187 [akr@m1 n. rg] 次のようにすると core を吐きます。
25188 [matz@ru y- a] ossl.cの286行目でvsnprintf()の戻り値をチェックしていないから
25192 [gotoyuzo@no ] 先程、修正をコミットしました。

ruby_eval_tree
25189 [akr@m1 n. rg] [ruby-dev:25159] の話のつづきですが、ruby_eval_tree っていまはどういう
25190 [matz@ru y- a] ruby_eval_tree_beginを全面的に無くした時に、うっかり

1.8.2 release schedule
25193 [matz@ru y- a] 私の心づもりでは1.8.2は(例によって)クリスマスにリリースしま
+ 25200 [akr@m1 n. rg] そーいや、[ruby-dev:24905] のセーフレベルの話はあれっきりになっちゃっ
| 25205 [matz@ru y- a] ですね。でも、元々1.8にすぐ反映させるつもりの話ではありませ
+ 25204 [maki@ru yc l] おお。
+ 25206 [akr@m1 n. rg] そうそう、1.8 でも set.rb のテストが失敗します。
+ 25221 [usa@ga ba ec] ええと、できれば時刻をある程度指定していただけませんか?
  25222 [matz@ru y- a] そうですか。じゃあ、12月20日(月)から21日に日付が変わる頃(日

OpenSSL::Digest::Digest.new dumps core again
25198 [akr@m1 n. rg] 次のようにすると core を吐きます。

Re: [ruby-cvs] ruby/lib/cgi/session, ruby/lib/cgi, ruby/lib, ruby/ext/openssl, ruby: * lib/set.rb (Set#==):
25207 [akr@m1 n. rg] もしかしたら計算量なんて気にしないのかも知れませんが、Set#== のオーダ
+ 25208 [akr@m1 n. rg] う、これはちゃんと問題を示していませんでした
+ 25209 [matz@ru y- a] これは気がついています。hash keyが変化してしまった場合に対応

ruby-quota fix
25210 [taca@ba k- t] こんばんは。
25211 [taca@ba k- t] こちらへのパッチが抜けてました。
25217 [ttate@tt ky ] ありがとうございます。そのままパッチを使わせてもらいます。

HTTPHeader#basic_encode differs between HEAD and 1.8.2 (Re: 1.8.2 release schedule)
25212 [root@mp t. i] その BTS をメンテナンスしていて発見した(というかハマった)のですが、
25213 [aamine@lo er] コミットしました。

test_readline.rb blocks on BSD
25218 [shugo@ru y- ] # 忘れそうなのでここに書いておきます。
25223 [gotoyuzo@no ] NetBSDだとio_reopenの
25228 [shugo@ru y- ] BSDな方がこの対応で幸せ(あるいは妥協できる)とおっしゃるならcommitします。
+ 25229 [matz@ru y- a] コミットすることはOKです。あとはBSDな人の判断を待ちます。
+ 25232 [gotoyuzo@no ] その後、以下のようにしても動くことがわかりました。
  25244 [shugo@ru y- ] commitしました。

STDIN.reopen(STDOUT).reopen(STDOUT)
25225 [nobu@ru y- a] という件ですが、STDINなどは特別扱いにして、modeの変更を禁止して
25247 [matz@ru y- a] そうするしかないでしょうかね。あとはprep_stdioを完全に捨てる
25267 [nobu@ru y- a] stdin/stdout/stderrをを直接使うライブラリのラッパーですかねぇ。
25295 [matz@ru y- a] 確かに。とりあえず[ruby-dev:25225]のパッチをコミットしてくだ

Zlib::Deflate.deflate dumps core
25226 [akr@m1 n. rg] 次のようにすると core を吐きます。
25227 [nobu@ru y- a] inflateもでしょうか。
+ 25234 [akr@m1 n. rg] いまのところ、inflate で core を吐かせることには成功していません。
+ 25246 [matz@ru y- a] コミットしてください。

File#flock blocks
25230 [shugo@ru y- ] ruby_1_8ブランチで以下のコードがささるのですが、HEADから
25231 [matz@ru y- a] 1バイトの修正だけですからね。コミットしてみますので、様子を

snapshot build failure in different build directory on BSD
25233 [akr@m1 n. rg] 例の autoconf も bison も gmake もないとある BSD の環境で、

1.8 TestSDBM#test_select_with_block failure in ext/sdbm/testsdbm.rb
25235 [akr@m1 n. rg] % ./ruby -v ext/sdbm/testsdbm.rb

BSD/OS rlim_t
25236 [os@ii .a .j ] BSD/OS 4.1 で CVS 先端を make しようとすると、
+ 25237 [taca@ba k- t] 関係ない話題ですが、BSD/OSでの共有ライブラリの扱いはどうなってるのでしょ
| 25238 [os@ii .a .j ] ELF ベースですね。
+ 25239 [akr@m1 n. rg] 基本的には取り入れようと思うのですが、quad_t が本当に 4byte (long) な
  25240 [os@ii .a .j ] 申し訳ありません。その通りでした。

net/https.rb and server identity (RFC2818)
25241 [sheepman@tc ] net/https.rb と net/http.rb で RFC2818 の 3.1 に定められた
25254 [gotoyuzo@no ] ええと、チェックしないことを意図しているわけではありませんが、

Dir.foreach dumps core
25242 [akr@m1 n. rg] 次のようにすると core を吐きます。
25245 [shugo@ru y- ] 名前が今一つかもしれませんが、こんなマクロを用意してはどうでしょうか。
25248 [matz@ru y- a] タイプチェックがいつも必要だとは限らないわけですよねえ。

Net::HTTP#key_file and Net::HTTP#cert_file in net/https.rb
25243 [sheepman@tc ] こんばんは sheepman です。何度もすいません。
25256 [gotoyuzo@no ] ずいぶん前のことですが、鍵や証明書をファイル名でしか指定でき

Struct.new dumps core
25249 [akr@m1 n. rg] 次のようにすると core を吐きます。
25250 [nobu@ru y- a] make_struct()の引数をIDにしちゃうというのはどうでしょうか。

1.8 IO#eof? dumps core
25251 [akr@m1 n. rg] 次のようにすると core を吐きます。
25253 [nobu@ru y- a] 他のclearerr()は大丈夫そうです。
25259 [matz@ru y- a] コミットしてください。

core dump if local_append_gen invokes GC
25252 [akr@m1 n. rg] 先程 1.9 を make test-all したところ、
25255 [nobu@ru y- a] なぜか再現できてないので未確認ですが、special_local_set()が、作っ
+ 25257 [akr@m1 n. rg] なるほど。パッチを当てると症状が消えました。
+ 25258 [matz@ru y- a] 抜本的な改善はあおきさんに任せるとして、当面はこのパッチで行
  25368 [aamine@lo er] いちおう修正しましたが、中田さんのパッチ以上にきれいには

OpenSSL::ASN1.traverse dumps core
25261 [akr@m1 n. rg] 次のようにすると core を吐きます。

BSD/OS LDSHARED
25270 [os@ii .a .j ] BSD/OS 4.1 で CVS 先端を make しようとすると、
25272 [os@ii .a .j ] LDSHARED には DLDFLAGS を使った方が適切そうなのと、
25274 [nobu@ru y- a] 他の環境では、$(LIBRUBY_SO)のために-rpath(あるいは-R)には
+ 25276 [taca@ba k- t] ELFということでしたから、特殊な理由がない限り指定した方が良いと思いま
| 25277 [nobu@ru y- a] いや、なんで$(libdir)じゃなくて$(archdir)なのか、が気になって。
| 25278 [taca@ba k- t] おぉ、これは失礼しました。;-)  確かにそうですねぇ...。
+ 25280 [os@ii .a .j ] すいません、必要があるというわけではなくて、
  25281 [nobu@ru y- a] bsdi* ではずっと前から$(archdir)相当を-rpathに指定してるようで
  25282 [os@ii .a .j ] 気になって調べてみましたが、 1.4.0 から 1.4.1 にかけて、

DL::Symbol.new dumps core
25271 [akr@m1 n. rg] 次のようにすると core を吐きます。
threads.html
top