30947-31824

30726-31445 subjects 31145-32166

Problem in installing the last Ruby 1.9
30947 [vincent.isam] This morning I had an error during the installation of Ruby 1.9
30948 [vincent.isam] MLを間違っちゃってすみません。

Re: [ruby-cvs:19732] Ruby:r12496 (ruby_1_8): import OpenSSL from trunk
30949 [usa@ga ba ec] のcommitのあと、make test-allで4件Failureするようになっていま

Random
30954 [akr@fs j. rg] rand の 4文字という短さには勝てないって...
+ 30957 [zn@mb .n ft ] 追加メソッドというのを見て思い出したのですが、
| 30961 [nakahiro@sa ] どんな場面で便利です? rand(Range.new(1.1, 3.1))とかで解釈が揉めそうなの
| + 30962 [shyouhei@ru ] あたりの議論を思い出しました。
| + 30964 [zn@mb .n ft ] 便利というか、例えば、1から10までの乱数がほしいときに
+ 30960 [nakahiro@sa ] と言いつつありがとうございます。
  + 30963 [akr@fs j. rg] 勝つことはできないが相手を負かすことはできる、と考えると、
  | 31006 [nakahiro@sa ] この辺の移行に関する議論は、認識があってるかどうか私も判断できてません。
  | + 31008 [akr@fs j. rg] もちろん integer もあったほうがいいとおもいます。
  | + 31171 [nakahiro@sa ] [ruby-dev:30950]の中田さんのをベースに、実装しました。MT部分は全て中田
  |   31173 [akr@fs j. rg] 種を生成する Random.seed はいいアイデアだと思っていたのです
  |   31174 [nakahiro@sa ] 田中さん、詳細にありがとうございます。
  |   + 31175 [akr@fs j. rg] 想定用途は、他の PRNG です。種は何かと質の悪いのを使いがちな
  |   + 31178 [nakahiro@sa ] 修正しました。
  |     + 31179 [akr@fs j. rg] Ruby currently uses a modified Mersenne Twister with a
  |     | 31183 [nakahiro@sa ] 再度修正しました。うささん修正もマージしてあります。
  |     | + 31184 [usa@ga ba ec] 実は漏れがあって、init_genrand冒頭付近の
  |     | | 31187 [usa@ga ba ec] これを入れて、LLP64な環境で試したところ、test_random.rbが全部
  |     | + 31185 [akr@fs j. rg] ./miniruby -e 'r = Random.new(0x00000456000003450000023400000123)
  |     |   31192 [nakahiro@sa ] おお。上記はテストに入れましょう。
  |     |   31193 [nobu@ru y- a] 出遅れた感がありますが、警告の抑制とか細かいミスの修正とか。
  |     |   31201 [nakahiro@sa ] ありがとうございます。というわけで修正版。もう終わりだろう、たぶん。
  |     |   31204 [nobu@ru y- a] あれ? パッチが壊れてたようです。
  |     |   31206 [nakahiro@sa ] では更新。[ruby-dev:31201]版との違いは1行だけです。
  |     |   31515 [akr@fs j. rg] 最近、IO に bytes メソッドができていることに気がついたのですが、
  |     |   31516 [matz@ru y- a] 出自が違うので違ってもよいような気もします。IOらしい挙動が欲
  |     |   31543 [nakahiro@sa ] まつもとさんからの積極的な反対がなければ入れましょう。で、積極的な反対が
  |     |   31545 [matz@ru y- a] あれ、srandってなくすんでしたっけ。引数なしのものは残すとい
  |     |   31555 [nakahiro@sa ] あのpatchでは完全になくします。グローバルな(*)状態を変更するものは削除、
  |     |   31824 [nakahiro@sa ] ごとけんさん、どう? (名指し)
  |     + 31180 [usa@ga ba ec] なかださんじゃなくて恐縮なんですが、素直にseedをVALUEにしてみ
  |       31181 [usa@ga ba ec] ついでに[ruby-dev:31179]で指摘されている問題も直してみました。
  + 30967 [nakahiro@sa ] 保留してたやつ。

exceptions that Fiber#yield raises
30970 [sheepman@sh ] Fiber#yield が投げる例外が、バックトレースに情報を含んでないので
30979 [ko1@at ot ne]  問題がよくわからなかったのですが、今の Fiber の例外伝播は変

Linux/ia64で'ucontext_t' undeclared
30971 [akira@ar ka ] 最近のRuby 1.9をLinux/ia64上でmakeしようとすると
30973 [matz@ru y- a] とりあえずmatzrubyブランチからコードをコピーしました。
30974 [akira@ar ka ] ありがとうございます。試したところ以下のようになりました。
30975 [matz@ru y- a] うーん、なぜこんなエラーになるのかかいもく見当がつきません。
30976 [akira@ar ka ] 手元のソースをいじってしまっていたようです。
30981 [matz@ru y- a] それは良かった。
+ 30982 [akr@fs j. rg] マルチスレッドになったんだから各スレッドの register stack を
| + 30984 [matz@ru y- a] コンテキストスイッチ時にセーブするんでしょうね。うわぁ、面倒
| | 30985 [akr@fs j. rg] 普通のスタックについてはやっているんだからそれほどでも。
| + 30989 [ko1@at ot ne]  えーと、すみません。鋭意デバッグ中です。って合宿で言ってた
|   30992 [akr@fs j. rg] その時にはすでにしばらく SEGV してたわけで、SEGV が表出して
|   30994 [ko1@at ot ne]  「できないやつは何をやってもダメ」というのはRuby会議2007で笹
|   30995 [akr@fs j. rg] 先のパッチにも混ざってますが進めてはいます。
+ 30987 [akira@ar ka ] さきほどのcommit(r12538)で試してみましたところ

eval_jump.h、eval_method.hのrdocが処理されない
30972 [akira@ar ka ] Ruby 1.9でeval_jump.hとeval_method.hにある
30977 [nobu@ru y- a] # 今ヘッダにあるものが本当にずっとヘッダにあったほうがいいか、
30980 [ko1@at ot ne]  *.h に関数の実態があるのは、私が機能ごとにファイルを分けた
31054 [ko1@at ot ne]  eval.c に混ぜ混ぜに戻してみたら、やっぱり見通しが悪いような

new block parameter rule
30996 [ko1@at ot ne]  |v| は |v,| の意味として扱うというように、ブロックパラメータ
30997 [akr@fs j. rg] Hash#each は 2要素の配列をひとつの値として yield するように
30998 [ko1@at ot ne]  r12546 の変更で大丈夫ですか。
31001 [akr@fs j. rg] test/ruby/test_yield.rb で k を kv に戻し忘れてますかね。

trap(sig, "SYSTEM_DEFAULT")
30999 [akr@fs j. rg] ときおり、デバッグの都合により、SIGSEGV や SIGBUS に対する
31003 [matz@ru y- a] なるほど。

("a".."f").step(2) {|x| p x}
31002 [akr@fs j. rg] string の range の step で引数が効かないように思います。
31004 [matz@ru y- a] rb_iterate()になんらかの問題があって、bl_procに渡した関数で
31009 [ko1@at ot ne]  問題があるというか、ひとつのスタックフレームには 1 つのブ
+ 31011 [akr@fs j. rg] よくわかっていませんが、rb_iterate() は YARV では実現されな
+ 31012 [matz@ru y- a] ごめんなさい。「ひとつのスタックフレームには 1 つのブロック渡
  + 31015 [naruse@ai em] range_stepの場合 str_step -> step_i -> block でなければいけないのに、
  + 31016 [ko1@at ot ne]  成瀬さん、ソースを読んでくれてありがとうございました。ここで
    + 31017 [akr@fs j. rg] そういう疑問を持ったときはコード検索ではないでしょうか。
    | 31024 [ko1@at ot ne]  とりあえず、現在 trunk 中では、rb_iterate 自身を利用している
    + 31019 [naruse@ai em] rb_call0 は 1.9 では存在しませんが、th_call0 ですよね。なるほど、本来は
      31023 [ko1@at ot ne]  「Ruby層」の定義がないのでわかりませんが、とりあえず VM のス

reverted gc.c modification
31005 [akr@fs j. rg] ふと、以前行った以下の変更が Merge YARV のときになくなってい
31010 [ko1@at ot ne]  すべての変更を正しく把握し、適切にマージすることは出来ていな

^C on system()
31007 [akr@fs j. rg] 以下のようなプログラムを実行すると、^C でプログラムを終了す

full stack trace on exception
31014 [akr@fs j. rg] Ruby は例外が捕捉されない場合、スタックトレースを表示してく
31027 [matz@ru y- a] 妥当だと思います。しばらく試してみましょう。コミットしてください。

'ruby_source_filename' undeclared
31020 [matz@ru y- a] trunkでr12570以降、
31022 [Tetsuya.WATA] 私も昨日の夜からエラーで止まっています。

Method#to_procと多値
31021 [masahiro.sak] Method#to_procの説明として、1.9のmethod_proc()のソースには以下のような
31037 [akr@fs j. rg] てきとうにいじってみると、こんな感じでしょうか。
31053 [ko1@at ot ne]  考えてみたら、だいたい似たような感じのコードになりました。

Thread#value when thread is killed
31025 [sheepman@sh ] リファレンスマニュアルの編集をしていて気になったのですが、
31026 [matz@ru y- a] JRubyの人たちは「そもそもkillをなくしたい」と言ってたような

rb_get_interned
31028 [nobu@ru y- a] 以前追加されたrb_sym_interned_p()は結局、intern.hに宣言だけ残し
31029 [matz@ru y- a] 気持ちはわかります?
31030 [nobu@ru y- a] 引数はOK?
31032 [matz@ru y- a] うーん、それだったら純粋に元々のrb_sym_interned_p()を復活させ
31033 [nobu@ru y- a] となるとrb_intern2()はどうなるんでしょう。rb_str_intern()を代替

Re: [ruby-cvs:19815] Ruby:r12579 (trunk): * parse.y (rb_intern2): name may not be NUL-terminated.
31034 [usa@ga ba ec] mをnameと関係ないポインタに変えていますが、後ろの方のwhileル
31035 [matz@ru y- a] ありがとうございます。別の形でパッチを当てちゃいました。
31036 [usa@ga ba ec] 実質的には元のに戻したような感じですね。

deadlock dumps core
31038 [sheepman@sh ] つぎのような deadlock を起こすコードを実行すると、
31044 [nobu@ru y- a] 再現できないのですが、どこで落ちているかわかりますか。

deadlock detection when main thread calls Thread.stop
31039 [sheepman@sh ] 細かい話ですが。結果的にメインスレッドだけが Thread.stop している状態に
31041 [matz@ru y- a] 基準は、

0**2 causes division by zero
31040 [mame@ts .n .] ruby 1.9 で 0**2 を評価すると SIGFPE で落ちます。
31043 [nobu@ru y- a] すいません。チェックを後回しにして忘れてました。
31045 [matz@ru y- a] うむ、徹底してますね。こっちの方がよさそうですからコミットし

SAVE_ROOT_JMPBUF
31042 [akr@fs j. rg] これですが、x86 でも cycle じゃないんですが、起きます。
31052 [ko1@at ot ne]  その通りだと思います。初期化するようにします。

Conditional jump or move depends on uninitialised value(s) in TOPLEVEL_BINDING
31046 [akr@fs j. rg] valgrind をかけたところとりあえず最初のが
31051 [ko1@at ot ne]  以前は初期化していたような気がするんですが、はて。
31055 [akr@fs j. rg] 微妙によくわかっていないので勘違いかもしれないんですが、スタッ
31057 [ko1@at ot ne]  そういえば、スタックを使うときには(スタックフレーム拡張時に

block parameter complete?
31047 [ko1@at ot ne]  ブロックパラメータについて、自分が把握している分については実
+ 31048 [akr@fs j. rg] とりあえず、
| 31050 [ko1@at ot ne]  今回の postarg の対応、といったのはブロックパラメータについ
+ 31049 [matz@ru y- a] そうか、Procモードではエラーにならないからですね。p1への代入

lambda for block
31056 [akr@fs j. rg] 以下のように、ブロックに lambda を渡すと、引数の数が違ってい
31091 [ko1@at ot ne]  Proc オブジェクト (A) で渡されたブロックを Proc オブジェクト
31129 [ko1@at ot ne]  素朴な疑問なんですが、
31130 [matz@ru y- a] 一瞬悩みましたが、実利の方が大きそうなので「それでよい」とし

proposal: merge x64-mswin64 port
31060 [usa@ga ba ec] だらだらと時間をかけて作業してきましたが、どうやら目処が立っ
31061 [matz@ru y- a] いいんじゃないでしょうか。Fixnumが31bitはちょっともったいな
31067 [usa@ga ba ec] 入れました。

"".clear dumps core
31062 [mame@ts .n .] 1.9 で以下のようにすると落ちます。

make error at bcc32
31063 [tnebata@u. m] 1.9 で、久しぶりに、bcc32 で make しようとしたら、以下の
+ 31090 [usa@ga ba ec] 公式にはメンテナは小西さんなのですが、お忙しいらしく反応がず
| 31098 [konishih@fd ] メール自体はみているのですが、最近の変更について行けないことと、実際まと
| 31099 [tnebata@u. m] 小西さんはじめ、皆さん方、いろいろとありがとうございました。
+ 31092 [subscriber.j] によると、複数ターゲットと単独ターゲットの順序の問題のようですね。
  31106 [nobu@ru y- a] よくそんなのを見付けましたね。書いた当人もすっかり忘れていたと
  31122 [tnebata@u. m] なかださん、わざわざ調査ありがとうございます。さすが早いですね。

string allocation in rb_intern
31064 [akr@fs j. rg] rb_intern が毎回、(すでにシンボルがあっても) String オブジェ
31065 [matz@ru y- a] こういう「ふざけた」コードは大好きなのでコミットしていただけ

consts for gdb support
31066 [nobu@ru y- a] プリプロセッサのマクロは-g3をつけないとgdbから見えないので、
+ 31084 [akr@fs j. rg] デバッグが楽になるので、ぜひ。
+ 31133 [akr@fs j. rg] 1週間ほど経ちましたが反対するひとは誰もいないようなので、入
  31135 [nobu@ru y- a] 田中さんが夢枕に立ってうったえてきそうな気がしたので、入れてし
  31137 [akr@fs j. rg] ありがとうございます。

$&;[] dumps core
31068 [mame@ts .n .] 1.9 で以下のようにすると落ちます。
31069 [ko1@at ot ne]  ご指摘ありがとうございました。そんな感じで対応しました。
31071 [mame@ts .n .] コミットされたものを拝見しましたが、まだ直っていないような気がします。
31073 [ko1@at ot ne]  ありゃ。まだ治ってませんでしたか。どういう例でしょう。さっき
31075 [mame@ts .n .] あれ、さっき svn update したら変なことになった気がしたんですが、
31076 [ko1@at ot ne]  いい機会なのでまとめておきます。
+ 31078 [nakahiro@sa ] 元はsample/test.rbを、test/ruby/test_*として移植したんですよ。しかし、
| 31081 [ko1@at ot ne]  おお、そうだったんですか。
+ 31097 [akr@fs j. rg] そのせいか、^C 一発で止まらないのですが、そんなことはありませんか?
  31111 [ko1@at ot ne]  止まりません。
  + 31114 [matz@ru y- a] rb_syswait()がSIGHUP, SIGQUIT, SIGINTをSIG_IGNに設定している
  + 31117 [akr@fs j. rg] 止めようと思って ^C を入力しているのに、止まらないのは不幸です。
    31207 [matz@ru y- a] そうだったのか。

Use of uninitialised value by /\s/u
31070 [akr@fs j. rg] valgrind の結果をまた調べると、/\s/u で未初期化メモリを使用

{*0} dumps core
31072 [mame@ts .n .] 1.9 で以下のようにすると落ちます。
31074 [ko1@at ot ne]  ありゃ。これは一体何をするべきなんだろう。パーサで弾く話では
31079 [matz@ru y- a] 1.8まではパーサではねてましたが、splatがどこにでもこれるよう
31080 [ko1@at ot ne]  IRC では前者を推している人が多いような感じでした。私はどっち
31082 [matz@ru y- a] では、前者で。
31086 [ko1@at ot ne]  ああ、またやってしまった。IRC で多そうだったのは「後者(許さ
31087 [matz@ru y- a] そうなのか。
31088 [matz@ru y- a] argsがsplatを含むようになったので、{args}の文法を許す限り

Conditional jump or move depends on uninitialised value(s) in StringIO.new("a").gets("\n")
31077 [akr@fs j. rg] valgrind 下で StringIO.new("a").gets("\n") とすると、

trunk compile error position (Re:  Re: {*0} dumps core)
31083 [matz@ru y- a] というわけでやっておきました。

0..:" dumps core
31085 [mame@ts .n .] 1.8.6 、1.9 共に以下のようにすると落ちます。

SEGV with -Ku
31089 [akr@fs j. rg] -Ku で test を動かすと SEGV します。

line number in Proc#inspect
31093 [akr@fs j. rg] lambda を表示した時、行番号が 0 になるのですがこれは意図せざ

[][1,&nil] = 2
31094 [akr@fs j. rg] 以下のように [][1,&nil] = 2 とすると、nil に []= がないとい
31112 [ko1@at ot ne]  これは、多分パーサエラーかコンパイルエラーになるべきだと思う
31115 [matz@ru y- a] そうなんですか?
31116 [ko1@at ot ne]  ああ、意図的でしたらいいです。積極的に「エラーにするべき」と

@0..0 dumps core
31095 [mame@ts .n .] 1.8.6 、1.9 共に以下のようにすると落ちます。
31113 [ko1@at ot ne]  テストの妥当性は、parse.y はよくわからないので他の人を待つこ

: compile error (SyntaxError)
31096 [akr@fs j. rg] 以下のように、yield を実行すると、compile error となりますが、

$00..0 dumps core
31100 [mame@ts .n .] 1.8.6 、1.9 共に以下のようにすると落ちます。

exception when converting block arg
31101 [mame@ts .n .] 1.9 でブロック引数に proc 以外の値を与えたときの例外が、値によらず
31128 [ko1@at ot ne]  ありがとうございます。対応しました。

[*0];0 dumps core
31102 [mame@ts .n .] 1.9 で以下のようにすると落ちます。
31125 [ko1@at ot ne]  ありがとうございます。修正しました。ついでに、[*0]; 0 は
31126 [ko1@at ot ne] あ。これで例外が発生しなくなるのはまずいかなぁ。
31131 [matz@ru y- a] どういう理屈でこれが例外が発生しなくなったのかちょっとわから

v0,(*,v1,) = 0 dumps core
31104 [akr@fs j. rg] 以下のようにすると SEGV します。
31105 [nobu@ru y- a] POSTARGの前の無名のsplatが未対応?

*v1,(*) = 0: Stack consistency error
31107 [akr@fs j. rg] 次のようにすると Stack consistency error になります。
31108 [akr@fs j. rg] 原因が同じかどうかはわかりませんが、以下も異常終了します。
31123 [ko1@at ot ne]  とりあえず、全部通すようにしました。結果があってるかはあんま

assignment syntax
31109 [akr@fs j. rg] 思ったのですが、*,v = 0 が syntax error なのは意図されたもの

ary[]+=1 dumps core
31110 [mame@ts .n .] 1.9 で以下のようにすると落ちます。
31121 [ko1@at ot ne]  ありがとうございました。たぶん、問題ないような気がするので取

0..$1=0 dumps core
31118 [mame@ts .n .] 1.9 で以下のようにすると落ちます。
31158 [ko1@at ot ne]  私はパーサはなるべく触らないようにしているんですが(今回の話
31161 [matz@ru y- a] 私の担当なんで待ってていいです。でも、読んでくれてもいいです。

loop{x+=1&&next} dumps core
31119 [mame@ts .n .] 1.9 で以下のようにすると落ちます。
31120 [ko1@at ot ne]  たとえば、1.times{1+(1&&next)} でも起きます。つまり、何らか
31124 [matz@ru y- a] うーむ。
31127 [ko1@at ot ne]  先ほどのメールは「and などが式の中に含まれていたらエラー」を

(v,) = [[]]
31132 [akr@fs j. rg] が、これは意図されたものでしょうか。
31134 [akr@fs j. rg] うぅむ。これは [ruby-dev:29584] で変わったようですね。

*a = *nil
31136 [akr@fs j. rg] *a = *nil で a が [nil] になることに気がついたのですが、これっ
31139 [ko1@at ot ne]  バグでした。

nil.to_splat
31138 [akr@fs j. rg] 以下のように、nil.to_splat を再定義しても効かないことがあります。

ripper.y:3235: error: syntax error before '}' token
31140 [subscriber.j] trunk で ext/ripper がコンパイルエラーになります。

SEGV by m {|(*,v)|}
31141 [akr@fs j. rg] m {|(*,v)|} で SEGV します。

yield :k=>:v, *[]
31142 [akr@fs j. rg] yield :k=>:v, *[] という記述が、1.8 では許されていましたが
31144 [matz@ru y- a] はい。これは1.9での非互換性です。展開したハッシュは一番最後

m {|(*,(*)),|}
31143 [akr@fs j. rg] m {|(*,(*)),|} で SEGV します。
31152 [ko1@at ot ne]  パーサ部分は正直よくわかんないんですが、こんな感じでしょう
31154 [akr@fs j. rg] このへん、そもそも syntax からして変な気がしますね。
31156 [ko1@at ot ne]  どう変なんでしょう。この辺の議論はまつもとさんの結論を待って
+ 31157 [matz@ru y- a] いいんじゃないでしょうか。
+ 31159 [akr@fs j. rg] [ruby-dev:31153] とか。
threads.html
top