丁稚な日々

Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...

[直前] [最新] [直後] [Top]

Oct.21,2003 (Tue)

Revision: 1.5 (Nov.10,2003 15:39)

[Changes]

_ 10月20日分。

  • usa: lib/debug.rb。昨日書いたデバッグプリントの削除。
  • matz: ある種のスクリプトで無限にメモリを消費していってしまうバグがたぶん修正されました。[ruby-dev:21633]
    内部的には... ChangeLog参照(よわっ)。
  • matz: Solaris2.8ではextendedというキーワードがtypedefされてることがあって、marshal.cのコンパイルに失敗するという問題が修正されました。[ruby-bugs:PR#1198]
  • matz: ext/socket。Socket.gethostbyname(Socket.gethostname)でSEGVるこがあったという問題が修正されました。[ruby-bugs:PR#1195]
  • usa: 2003-10-20
  • matz: eval.cで、ruby_frameuniqというメンバが増えて、frameの比較にはこれを使うようになりました。
    ... とか私が説明するのはいまいちだなあ。ChangeLog参照としておいて、詳しい人の説明を期待。
  • nobu: eval.cのrb_catch()内でのpushとかpopがなくなってすっきりしました。
    たぶん、直上の変更の結果、不要になったのだと思いますが、自信なし。
  • nobu: proc{|s|}.callがSEGVしていたバグが修正されました。[ruby-dev:21632]

_ gc.cとeval.cがメインで難度の高い日でした。
つまりいまいちわかってねー。

てすと、てすと、てすと

_ 現時点でmswin32でtest/runner.rbを実行すると、drbを除くと(今はまだ調子悪いので)、0F3Eになります。

_ この3Eのうち、一つ目の1Eはtest/soap/calc/test_calc_cgi.rbで発生しているもので、前にも書いたように、native win32なrubyで、execの挙動がUNIXライクな環境のそれと異なるのが原因です。
この件については、このnative win32なrubyの挙動をどうすべきか(どうあるべきか)というのが問題なので、とりあえずは保留(*1)状態です。

_ このとき、execされたrubyインタプリタはそのまま居残って(時間が経てば終了する)、CGIの使う17171番ポートを掴みっぱなしにします。
ところが、続くtest/soap/helloworldのテストも同じ17171番ポートを使用しようとするため、ここでもテストが失敗してしまいます、というか、setup(とteardown)でエラーが出てテストが実行されません。これが残り2E。

_ test/soap/helloworldを単体でテストするとか、この二つのテストで使用するポートを変えるかすれば、test/soap/helloworldのテストは通ります。
つまり、現状、まとめて実行すると、test/soap/calcの失敗のせいで、test/soap/helloworldも失敗してしまう(というかテストされない)わけです。

_ この場合、テストというものの考え方からは、「test/soap/calcが通るようになるまでtest/soap/helloworldがテストされないのは仕方ない」のか、「test/soap/calcがどうであれ、test/soap/helloworldに影響があるべきではないので、どちらかのテストを修正すべき」なのか、どっちなんでしょう? またはそれ以外?

[mswin32] exec

_ この件
えいや、で待つように変えちゃいました。

付記

(*1) とりあえずは保留
内部で子プロセスの終了を待つように変えるべき(つまりこのテストはこのまま)という方向に傾きつつあります。

Oct.22,2003 (Wed)

Revision: 1.1 (Oct.22,2003 10:02)

[Changes]

_ 10月21日分。

  • nobu: ext/syck。C++/C99スタイルのコメント(つまり//)のせいで、環境によってはコンパイルが通らなかった問題が修正されました。[ruby-bugs:PR#1184]
  • shigek: ext/bigdecimal。BigDecimal::verの返す値が"1.0.0"から"1.0.1"に変わりました。
    ところでprec(s)はどうなるのかしら?
  • eban: 2003-10-21
  • usa: native win32な環境で、execは子プロセスが終了するまで自プロセスの終了を待って、子プロセスの終了ステータスを親プロセスに返すようになりました。
    今までは、子プロセスを起動したら親プロセスに0を返してさっさと終了していました。
  • nobu: test/unit。実行されるテストファイルの存在するパスを、ライブラリのロードパス($:)に一時的に加えるようになりました。
    具体的には、test/drbがtest/drb以外のディレクトリで実行可能になりました。
  • matz: 終了(ruby_cleanup())時、各スレッドを消してしまう前にファイナライザ群(ruby_finalize_0())を呼ぶようになりました。
  • matz: CygwinでFile.readable?メソッドがtrueを返すべきときでもfalseを返すことがあった問題が修正されました。[ruby-bugs:PR#1189]
    PR#1189では、同様の問題がCygwinだけでなくSolarisなどにもあるはずだと示唆されていますが、今回はとりあえずCygwinだけの対応となったようです。

Oct.23,2003 (Thu)

Revision: 1.3 (Oct.23,2003 17:48)

[Changes]

_ 10月22日分。

  • matz: 昨日の変更の結果、ENDブロック内のexitの引数が無視されるようになってしまっていた問題が、修正されました。[ruby-dev:21670]
  • eban: 2003-10-22
  • nobu: test/unit。Test::Unit::Collector::Dir#collect_fileで、LoadErrorが発生したテストに関しては単に無視するようになりました。
  • ttate: ext/dl。's'でSEGVすることのあったバグの修正、かなあ。[ruby-bugs:PR#1196]

[mswin32] IPv6

_ 横道にそれてIPv6対応について再確認してみる。
1.9では、winsock2を必須にして、mswin32でも真面目にIPv6に対応するつもり。

[mswin32] dl.so

_ 宿題消化中。
VC5は事実上VC6と同じということを確認。

_ でも、今日の分のChanges(つまりたぶん明日書くはず)の冒頭に来るであろう、--enable-dlstackの強制化によって、long15個分の余裕がスタックに生まれたので、結果として何も対策しなくてよくなるんではないかという噂が...

Oct.24,2003 (Fri)

Revision: 1.3 (Oct.27,2003 10:50)

[Changes]

_ 10月23日分。

  • ttate: ext/dl。昨日もちらっと書きましたが、extconf.rbのオプション(ということはconfigureの引数)である--enable-dlstackが常に指定されていることになりました。
  • nobu: parse.y内のコード重複がちょっと減らされました。{ML ruby-dev,21681]
  • nobu: Rubyを組み込んだアプリケーションのため、eval.cのruby_cleanup()内でInit_stack()を呼ぶようになりました。[ruby-dev:21686]
  • nobu: ext/dl。dependファイルにあったマクロ定義の一部がextconf.rbに移動されました。
  • nobu: 2003-10-23
  • gotoyuzo: lib/webrick。WEBrick::GenericServer#startで、IO.acceptIOErrorを出した場合もrescueするようになりました。[ruby-dev:21692]
    10/27追記: IO.acceptIO.selectの間違いだろうとなかださんから指摘を受けました。そうかも。そもそもIOクラスにacceptなんてクラスメソッドはない...

[Web] 原発の話

_ 一片たりとも信じるべきではない」ってことはないでしょう。
あの文章も嘘やでたらめばかりではなくて、真実もたくさん書かれているはずです。
なにが信じられてなにが信じられないか、というのは、真摯な目で読めばだいたいわかるもんではないかと思います。

_ 私があの文章でいちばん気にいらないのは、風評による差別を広げてしまっている点です。
他は百歩譲って全部許せても、これだけは許せません。
てゆーか、お前らも「ああそうか、原発の近所じゃ子供も産めないんだなぁ」とか納得してんじゃねー。んなわけねーだろ!
...
取り乱してしまいました。すみません。

_ 国民に不審と不安を抱かせるような現在の原発行政には、私も不満でいっぱいです。
また、将来に渡って蓄積し続ける環境コストという面から、できることなら原発以外のエネルギー源で将来の需要をまかなっていくようになっていって欲しい、とも願っています。
ですが、「今の原発は常時放射能を撒き散らしてて、周囲は人間も含めてみんな被爆してる。だから原発をやめよう」なんていう、根拠のない、嘘とでたらめに基づく意見には断固として反対します。

Oct.25,2003 (Sat)

Revision: 1.2 (Oct.25,2003 22:21)

[Changes]

_ 10月24日分。

  • matz: File#pathで、すでにファイルがクローズされていた場合にIOErrorが発生していましたが、単にnilを返すようになりました。おそらく[ruby-dev:21701]絡み。
  • matz: Hash#eachは、ハッシュのキーと値のペアをブロックに渡しますが、二つのオブジェクトをブロックに渡すのではなく、assocした結果のオブジェクトをブロックに渡すようになりました。[ruby-talk:84420]
    1.6では、Hash#eachのブロックは一つのパラメータを受け取るように書けましたが、1.8.0では警告が出るようになっていました。警告を避けるためには、明示的に*を付けるなり二つのパラメータを受け取るように書き変えるなりする必要があったわけです。今回の修正で、1.6と同じコードが1.8.1でも警告なしに使用できるようになりました。
    なお、Hash#each_pairは、1.8.0と同様に、1.8.1でも二つのオブジェクトをブロックに渡します。よって、一つしかパラメータを受けないように記述すると、今まで通り警告が出ます。
  • matz: lib/cgi.rb。multipartなデータを受け取るとき、boundaryの終端がEOLで終わっているときにエラーとなる問題が修正されました。[ruby-dev:21702]
  • eban: 2003-10-24

Oct.26,2003 (Sun)

Revision: 1.1 (Oct.26,2003 17:51)

[Changes]

_ 10月25日分。

  • matz: #inspectが例外を起こす場合に無限再帰してしまう問題が修正されました。[ruby-bugs:PR#1204]
  • matz: 2003-10-25・ruby 1.8.1

_ 1.8.1キター!

[関西O+F2003]

_ 現在の進捗: 6/11 ページ
これで15分は埋まるのかどうか。
プロジェクターとの相性問題とかが発生すればあっという間に15分くらいつぶせそうだ。

Oct.27,2003 (Mon)

Revision: 1.1 (Oct.27,2003 09:47)

[Changes]

_ 10月26日分。

  • nagai: ext/tk。TkRoot.destroyメソッドが追加されました。
  • eban: 2003-10-26

Oct.28,2003 (Tue)

Revision: 1.3 (Oct.28,2003 20:10)

[Changes]

_ 10月27日分。

  • nagai: ext/tcltklib。Windowsで終了時にエラーが出ることがある問題の対応。[ruby-list:38656]
  • eban: 2003-10-27
  • nobu: -dオプションを付けると$SAFE >= 4の時にexitがfatal errorとなる問題が修正されました。[ruby-dev:21730]
    が、本来$SAFE >= 4ではexitはInsecure operationとして禁止されるはずなのですが、この変更では成功してしまいます。それを修正するパッチも既に[ruby-dev:21734]に出ていますので、たぶん近いうちにcommitされるでしょう。

[関西O+F2003]

_ 現在の進捗: 9/11 ページ
うーん、15分じゃやっぱりページが足りないかもなあ。
あと、オチが決まらない。むう。

Oct.29,2003 (Wed)

Revision: 1.2 (Oct.29,2003 15:54)

[Changes]

_ 10月28日分。

  • matz: yield [1, 2]12という二つのオブジェクトをブロックに渡すのではなく、[1, 2]という一つのオブジェクトをブロックに渡すようになりました。[ruby-dev:21726]
  • eban: 2003-10-28

_ テストを見る限りでは、人によっては影響が大きい変更のような気もするのですが、はてさて。

_ なかださんの予定によると、少なくとも11/4までは戻ってこないらしい。どうも車のようなので、11/5・11/6あたりもいないかも。
てなわけで、[ruby-dev:21734]のパッチはどうなるのかしらん?

[関西O+F2003]

_ 私の発表はどうでもいいといえばどうでもいいんだけど、宴会の人の集まりがいまいちだなあ。これも人徳か。
宴会に興味のある方は、[ruby-list:38546]を参照の上、急いでメーリングリストに参加されたし。
おっと、宴会は10/31の夜なので、お間違えなく。

_ オチの話
マーシャとライザは... ごにょごにょ。
ぷろ子とぴろ子はなんか何も思い浮かばねー。ところで「ぷろ子」は「ぷろし」と読むんですじゃよ?(ウソ)

_ 現在の進捗: 12/12 ページ
というわけでいちおう資料の作成は終了。これでちゃんと持ち時間埋まるかしら?
なお、結局オチは用意してないのであしからず。

Oct.30,2003 (Thu)

Revision: 1.1 (Oct.30,2003 10:23)

[Changes]

_ 10月29日分。

  • matz: ruby -e 'next()'がSEGVするバグが修正されました。[ruby-talk:84530]
    ただし、このスレッド中の[ruby-talk:84539]で紹介されているバグはまだです。
  • matz: lib/cgi.rb。CGI#paramsは、一瞬初期値をブロックで与えるようになりましたが、すぐに元([])に戻された上でfreezeされるようになりました。[ruby-list:38689][ruby-list:38695]
  • usa: 2003-10-29
  • matz: sysstack_errorはtaintされるようになりました。[ruby-talk:84534]
    不勉強につき、これがなぜ問題の修正になるのかは不明。
  • matz: 先日来ここで書いていた、-d指定時に$SAFE >= 4exitできるようになっちゃった問題が修正されました。[ruby-dev:21733]
  • akr: Regexp.unionメソッドが追加されました。[ruby-dev:21187]
  • akr: lib/pathname.rb。Pathname#realpathで、環境によってはDir.pwdがシンボリックリンクを含むことがあるのに、それに対応していなかった問題が修正されました。
  • usa: ext/tcltklib。Tcl 8.3以前と8.4でCONSTの有無が異なるのにCONSTありに決め付けていた問題が修正されました。

Oct.31,2003 (Fri)

Revision: 1.3 (Oct.31,2003 23:25)

[Changes]

_ 10月30日分。

  • gotoyuzo: ext/openssl。OpenSSL::SSL::SSLContext@extra_chain_certが追加されました。
  • gotoyuzo: ext/openssl。ext/openssl/lib/openssl/buffering.rbで、Buffering#initialize@sync@io.syncから設定するようになりました。よって、ext/openssl/lib/openssl/ssl.rbのOpenSSL::SSL::SSLServer#acceptやext/openssl/lib/net/protocols.rbのNet::SSLIO#ssl_connectでは@syncはいじらなくなりました。
    例によってよくわかってないので、間違ってたらごめんなさい。
  • matz: 単一の配列を、普通の(例えばlambda経由でない)Proc#callに渡す場合、yield相当として扱うようになりました。[ruby-dev:21726]
    28日の変更を元の仕様にあわせたことになります。
  • matz: lib/cgi.rb。CGI::Session#to_aが配列を返さないことがあった問題が修正されました。[ruby-dev:21766]
  • matz: lib/optparse.rb。Optparse#initializeの第一引数にArrayを渡すと、その時点で例外を投げるようになりました。[ruby-bugs:PR#1207]絡み?
  • usa: native win32版で、systemの引数が安全かどうかチェックされないことがあった問題が修正されました。[ruby-talk:84555]
  • usa: 2003-10-30
  • nahi: lib/test/unit。FOX版のテストランナーがうまく動かなくなっていた問題が修正されました。
  • matz: () and 1などがSEGVする問題が修正されました。[ruby-talk:84539]
    このとき、一時的にNODE_WHENを処理するコードも不要ということで削除されましたが、これは間違いだと判明し、後で修正されました。
  • matz: Solarisでファイルを読み込めるかどうかの判定を誤る場合があったのが修正されました... だったと思うのですが、元ネタはどこでしたっけ?
    内部的には、file.cにREAD_DATA_BUFFEREDというマクロが追加されています。
    [ruby-dev:21778]でした。
  • matz: Fileのパス名はrb_io_fptr_cleanup()ではなくrb_io_fptr_finalize()で解放されるようになりました。
  • 1.8.1 preview1
  • why: ext/syck。内部で使用している定数HASHが無駄に長かったのが短くなりました。
  • nahi: lib/soap。XML出力がきれいになりました。
  • nahi: lib/soap。encodingStyle属性を持つエレメントに余計なnamespaceを付加していたのを削除し、arrayType属性を持つエレメントに必要なnamespaceを付加していなかったのを付加するようになりました。
  • seki: lib/drb。DRb::DRbArrayクラスが追加され、yield周りの仕様変更に追従しました。[ruby-dev:21773]
  • seki: lib/drb。Hash#each問題が修正されました。[ruby-dev:21773]
  • seki: lib/drb。drb/unixをrequireする際、socketライブラリでUNIXServerクラスが定義されないとLoadErrorが発生するようになりました。[ruby-dev:21743]

_ ふう、多かった。

1.8.1 preview

_ というわけで、昨日はpreview1が出ましたが、今日はpreview2が出てます。はやっ。
preview1は粗忽者人気者のwhyがMANIFESTを修正し忘れたのでコンパイル通りません。preview2は大丈夫ですのでそっちをどうぞ。


被捕捉アンテナ類
[\ay antenna (testing)] [Ant] [Antenna-Julia] [LayserあんてなV2] [nAntenna] [nuance de Antenna] [Rabbit's Antenna] [Read List] [Ruby hotlinks 五月雨版 (るるりん。)] [してたま (私的アンテナ with たまてばこ)] [ただのあんてな] [ちゃらんぽらん] [でこぽんリンク] [なよろアンテナ] [にっきトレーサー] [偽善者あんてな - 2nd season -] [湘南日記放送局(SDB)] [はてなの各アンテナ]