Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ 事後になっちゃいましたけど、7/22(木)の昼前から7/26(月)の夜まで、このサーバ(www.garbagecollect.jp)が停止していました。
とくにるるりん。で日時リンクのnoreferer.rbx経由で各サイトを閲覧している皆さんにはご迷惑をおかけしました。
_ で、何があったかというと、rubyのバグをテストしようとしてメモリ食いつぶしてサーバがご臨終していたという...
rubyこええ!
_ あの「この日記で唯一役に立つ情報」と言われていた、Rubyの全変更をcommit単位で解説する企画「Changes」が帰ってきた!
_ というのは冗談ですが、サーバ停止中にあった変更を私が認識するために、とりあえず全部眺めてみることにしたので、ついでにその結果を吐き出しておきます。
対象はtrunkのみ。期間は7/22(木) 12:00〜7/26(月) 20:00。
dllimport
が使えるかどうか検出しようとしてたんだけど、実はまったく検出できていなかったでござる! というのを直そうとしたんだけど実は直ってないどころか逆に全gccでdllimport
が使えることになってしまったというバグの修正。ruby_close()
関連のプロトタイプの追加。後にこれが問題を引き起こす。inspect
結果がおかしかったというもの。dllimport
の話だけど、やっぱもうこんなもん要らねーようわーん! とばかりに削除。え、要らないの?Complex#to_i
、Complex#to_f
、Complex#to_r
のそれぞれで、従来は虚数部がinexactまたは非ゼロだったら変換に失敗してたのですが、単に非ゼロなら失敗、という風に変更されました。inexactというのは、正確な数学的訳語を知らないんですけど、要するに誤差を含むということだと思います。つまり浮動小数点数はinexactです。RUBY_TRY_CFLAGS
で警告が出ただけでも失敗とみなすようにしてやったぜ、ということらしいです。Mutex_m#sleep
を追加することによって、ConditionVariable
でMutex_m
を使えるようになりました。ってことなのかしら。self
があって、当然markの対象なんだけど、実はnodeのことがあるのでそういうときは構造が違うからmarkしないでね、という話。たぶん。HAVE_CLOSE
が定義されないとビルドできないようになってて、まあVCでもconfig.hに定義してやればいいんだけど、そもそもclose()
がないプラットフォームはサポートしてないんだから、素直に問題のある環境でだけその旨をマクロ定義しろよ、という結論。self
はないけどiseq
自体はもちろんmarkしないとダメよ、という話。たぶん。
_ さて、以上の内容をまとめるのにかかった時間は20分くらいだったんですが、毎日やれば1日あたりは数分で終わるんじゃないかと思います。
というわけで、誰かやってみませんか?
被捕捉アンテナ類
[Ant]
[Antenna-Julia]
[Rabbit's Antenna]
[Ruby hotlinks]