丁稚な日々

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

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

Dec.25,2003 (Thu)

Revision: 1.4 (Dec.26,2003 00:17)

ruby-1.8.1

_ 出ましたよ

_ 今回はうちにもいちおうミラーしときました。
あと、例によってmswin32版のバイナリもあります。

[Changes]

_ すらどからお越しの皆さんこんにちは。
ごめんなさい、ここ1週間ばかし、忙しくてChangesは書いてないのです。

ruby-1.9ブランチ

_ キター!
厳密には、1.8側が別ブランチになったので、1.9はMAINです。

_ いやまだほとんど変化はないんだけどね。
この日記はruby 1.9.0 (2003-12-25) [i386-mswin32]で生成しています。

Dec.26,2003 (Fri)

Revision: 1.11 (Oct.29,2004 18:49)

[Changes] 1.8

_ では再開しますよ。とりあえず1.8の分。

_ 12月19日分。

gotoyuzo: lib/webrick [差分]
WEBrick::HTTPUtils.parse_form_dataで、引数ionilの場合、空のハッシュを返すようになりました。
dave: 本体 [差分1, 2, 3, 4, 5, 6]
RDocドキュメント追加。
dave: bin/ri, lib/rdoc [差分1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
きっちりChangeLog書け>dave
pagerサポートが改善されたのだと思われます。
また、includeされたモジュールのメソッドも報告されるようになったようです。
また、ブートクラス関連の記述もパース可能になったようです。
たぶん他にも変更されてると思いますが、ちと追いきれませんね。
eban: 2003-12-19
akira: lib/runit [差分]
test/unitのrunit互換層が動かなくなっていた問題が修正されました。[ruby-dev:22302]
nahi: lib/soap [差分]
SOAP::Property#loadというメソッドが追加されました。
gotoyuzo: lib/webrick [差分]
WEBrick::HTTPRequest#meta_varsメソッドで、Content-TypeContent-Lengthselfからは拾ってこないようになりました。
gotoyuzo: lib/webrick [差分]
WEBrick::HTTPRequest#parseメソッドで、httpsを実際に使用するかどうかは、ソケットがcertメソッドを持っているかどうかを見るようになりました。今まではソケットがOpenSSL::SSL::SSLSocket(の子孫)のインスタンスかどうかをみていました。

_ 12月20日分。

dave: 本体 [差分1, 2]
RDocドキュメント追加。
dave: lib/telnet [差分]
例外メッセージが修正されました。
dave: lib/rdoc [差分]
Cソースコード中のコメント検索で、Document-class:という文字列もクラス名の検索に用いるようになりました。
matz: 本体 [差分]
[ruby-dev:21899]で報告されている問題の対策が入っています、が、未完了。
matz: lib/mathn [差分]
Rational#**で、self < 0の時、Complex(self, 0)ではなくComplex.new!(self, 0)に対して処理を行うようになりました。
eban: 2003-12-20
gotoyuzo: lib/webrick [差分]
不要な条件の削除。
nobu: lib/yaml [差分, 2]
Marshalのバージョンを4.6決めうちで出力していたのをやめました。
nobu: lib/yaml [差分]
何箇所か、不用意にinstance_evalする代わりにinstance_variable_getを使うようになっています。
nobu: lib/optparser [差分]
OptionParser::Completion::completeで、単語境界の見方が間違っていた問題が修正されました。
また、OptionParser::make_switchで、no-プレフィクスを忘れていた問題が修正されました。
gotoyuzo: lib/webrick [差分]
WEBrick::CGI#startで、NPHスクリプトではStatus:フィールドではなくステータス行そのものを出力するようになりました。
また、WEBrick::CGI::Socketクラスの幾つかのメソッドの条件文が修正されました。
gotoyuzo: lib/webrick [差分]
WEBrick::HTTPRequest#meta_varsメソッドで、Content-TypeContent-Lengthの正規表現が修正されました。

_ 12月21日分。

nagai: ext/tk [差分]
メソッドTkScrollbar#assignTkScrollbar#assign_listが追加されました。
matz: 本体 [差分1, 2, 3, 4]
Cray X1サポートが追加されました。[ruby-core:2032]
matz: 本体 [差分1, 2]
proc実行中のコンテクスト切り替えが禁止されました。[ruby-dev:21899]で報告されている問題の対策の続きです。
これに伴って、12月19日付のhash.cへの変更は巻き戻されました。
matz: ext/tcltklib [差分]
デバッグ出力フォーマットの修正。
dave: 本体 [差分1, 2, 3, 4]
RDocドキュメント追加。
dave: bin/ri, lib/rdoc [差分1, 2, 3, 4, 5]
file.cに入ったRDocドキュメントのサポート、らしいんですが、それだけにとどまらないように思えます。でもまだまだ先は長いので深入りしないことにしよう。
akr: lib/pathname [差分]
Pathname#+で、引数先頭の".."の解決が再実装されました。
Pathname#joinは、後ろから順に結合していくようになりました。
Pathname#parentは、Pathname#+を使用するようになりました。
nobu: 本体 [差分1, 2, 3, 4]
新しいAPI関数rb_check_inheritable()が実装されました。引数であるクラスが継承を許さない場合、例外が発生します。
eval.cのsuperclass()内にあった同様のチェックはこれを利用するように変更されました。
また、Class.newに継承元になれないものを引数として与えた時にSEGVしていた問題も、これを利用してチェックすることにより修正されました。[ruby-dev:22316]
eban: 2003-12-21

_ 12月22日分。

matz: ext/syck [差分]
大きな文字列を出力しようとするとSEGVしていた問題が修正されました。[ruby-dev:22307]
nahi: lib/soap [差分]
SOAP::Propertyのフック系メソッドは、ブロックを参照で受け取るようになりました。
eban: 2003-12-22
dave: 本体 [差分]
RDocドキュメント追加。
nobu: 本体 [1, 2, 3, 4, 5, 6, 7, 8]
幾つかのプラットフォームでは、defines.hの中でHAVE_SETTIMERマクロが定義されていましたが、configureスクリプトにその指定は移動されました。これ合わせて、一部のファイルで直接プラットフォーム単位でsettimer()の有無をハードコードしていた部分が修正されました。
ヘッダintrinsics.hはconfigureスクリプトでチェックされるようになりました。また、このヘッダは(存在すれば)ruby.hでインクルードされるようになりました。
幾つかのソースファイルではieeefp.hを(存在すれば)インクルードするようになりました。
eban, nobu, usa: 本体 [差分1, 2, 3, 4, 5
昨日のCray X1サポートに伴うisinf()絡みの変更とそれに対する追従など。
matz: 本体 [差分]
12月21日付の変更に、さらに修正が加わりました。[ruby-dev:21899]で報告されている問題の対策の続きです。今回の修正でこの問題は解決した模様です。
ruby-1.8.1-preview4
nobu: lib/cgi [差分]
添付ファイルをフォームで送ると、サイズによってはエラーとなる問題が修正されました。[ruby-list:38883]
akira: lib/uri [差分]
ホスト名部分のないURIも受け付けるようになりました。
nobu: 本体 [差分1, 2]
Module#initialize_copyで特異メソッドもコピーするようになりました。[ruby-dev:22325]
また、Class#initialize_copyが、実装されてるのになぜかメソッド定義されていなかったのですが、ちゃんと定義されるようになりました。
nobu: ext/iconv [差分]
関数map_charset()が常に文字列を返すように修正されました。
akira: lib/uri [差分]
URI::Generic::check_opaqueのtypoが修正されました。

_ 12月23日分。
読んでる人も疲れただろうけど、書いてる人ももうへろへろです。

gotoyuzo: lib/webrick [差分1, 2]
WEBrick::CGIにmod_rubyサポートが追加されました。
https絡みの処理の際は必ず定数OpenSSLの有無をチェックするようになりました。
WEBrick::CGI::Socket#cipherは、OpenSSL::SSLSocket#cipherに似た値を返すようになりました。
gotoyuzo: lib/webrick [差分]
HTTPクライアントに対する返答では、keep aliveではない場合には必ずConnection: closeヘッダを出力するようになりました。今まではkeep aliveでないときはConnectionヘッダを出力していませんでした。
akira: lib/uri [差分]
URI::Generic#check_userURI::Generic#check_passwordは共に@registry@opaqueの少なくとも一方がnilの場合は例外InvalidURIErrorを投げるようになりました。
これに合わせて従来URI::Generic#user_infoにあった同様のチェックはなくなりました。
URI::Generic#check_passwordは第二引数にユーザコンポーネントを受け取るようになりました。この引数のデフォルト値は@userです。
nahi: lib/rexml [差分]
typoのために、iconvもuconvもない環境ではUS-ASCIIですら利用できなかった問題が修正されました。[ruby-talk:88650]
usa: 本体 [差分]
bccwin32版でコンパイルが通らなくなっていた問題が修正されました。[ruby-dev:38940]
matz: 本体 [差分]
typoのためにAIX版がうまくコンパイルできなかった問題が修正されました。
matz, nobu: 本体 [差分]
読み込みではなく書き込み後にIO#ungetcすると環境によっては誤動作する問題が修正されました。そんなことしようとすると例外が発生するようになっています。[ruby-dev:22330]
matz: 本体 [差分]
Array#packでの、不要な負数チェックが取り除かれました。
eban: 2003-12-23
gsinclair: lib/optparse [差分]
RDドキュメントの代わりにRDocドキュメントが追加されました。

_ 続きは後ほど。

[Web] 1.9.0

_ なんで戻すのん?
休まずたゆまずCVS HEADを追い続けてこそ漢です!

Dec.27,2003 (Sat)

Revision: 1.2 (Dec.28,2003 01:38)

perl

_ perl 5.8.1だとCVSwebがうまく動作しないことが判明。
久しぶりにperlスクリプトを読んだよ。

_ どうも、-T指定時のexecのtaintチェックが厳しくなっているらしい。
従来は一つ目の引数がtaintedならはねていたのが、他の引数がtaintedでもはねるようになったみたい。

_ というわけで、しばらく前から動かなくなっていたjarpのPorting Libraries to Win32 CVS Repositoryも直りました。
例の問題ばっちりですよカテジナさん!

Dec.28,2003 (Sun)

Revision: 1.3 (Dec.29,2003 06:47)

readline

_ というわけで、バイナリも更新されますた。

[Changes] 1.8

_ まだまだ溜まってるよ。

_ 12月24日分。

dave: 本体 [差分1, 2]
RDocドキュメント追加。
dave: lib/rdoc [差分]
おそらく、riデータ生成中にエラーで止まってしまう問題の修正。
matz: 本体 [差分]
内部的に例外を再送する際、元の例外をそのまま投げるのではなく、dupしたものを投げるようになりました。
matz: 本体 [差分]
IOのように振舞うオブジェクトについて、read時にEOFだった場合、nilではなく""を返すようになりました。というわけで、まずIOARGFがそのように変更されました。[ruby-dev:22334]
matz: 本体 [差分]
64bit環境ではエンディアンによってはpack/unpackがうまく動かない場合があったのが修正されました。[ruby-dev:22344]
nobu: 本体 [差分]
constant re-assignment警告発生後、SEGVしていた問題が修正されました。[ruby-dev:22360]
usa: 2003-12-24
nobu: ext/stringio [差分]
上記のIOARGFの変更に追従し、EOF時のread""を返すようになりました。[ruby-dev:22334]
また、StringIO#readIO#readのように第二引数を受け付けるようになりました。[ruby-dev:22350]
dave: bin/ri, lib/rdoc [差分1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
バッファを保存するのを忘れてました、てへ。...だそうです。
dave: 本体 [差分]
RDocドキュメント追加。
失敗したなあ。RDocドキュメントの追加ごときいちいちここに載せる必要なかったかも。
shugo: lib/net/imap [差分]
認証時、単純に受信文字列末尾をchompしていましたが、"\n"を選択的に取り除くようになりました。
nobu: lib/test/unit [差分]
Test::Unit::Assertions#assert_raiseTest::Unit::Assertions#assert_nothing_raisedで、例外がクラスとは限らない(モジュールかもしれない)場合にも対応しました。
nobu: lib/test/unit [差分]
autorunner使用時のヘルプメッセージで、output levelがいまいちな具合にソートされてしまっていた問題が修正されました。
nobu: lib/test/unit [差分]
$:の操作にちょっと気を使うようになりました。余計な重複がなくなるようになっています。
nobu: ext/stringio [差分]
StringIO#readnilを返すシチュエーションで、第二引数が与えられている場合、IO#readと同様に第二引数の中身を空にしてから返るようになりました。[ruby-dev:22363]
gotoyuzo: ext/openssl [差分]
OpenSSL::SSL::SSLSocket#sysreadOpenSSL::SSL::SSLSocket#syswriteで、実際のソケットに対する読み書きでエラーが返されたとき、そのエラーを確認して、必要ならばリトライするようになりました。 この結果、一部の環境でむやみにエラーが出ていた問題が修正されました。って具体的には私んちの環境です。
matz: 本体 [差分1, 2]
デッドロックを避けるため、catch_timer()の中でrb_thread_schedule()は呼ばれなくなりました。システムコール中の割り込みは、TRAP_ENDの中でEINTRによって検出されます。これもpthread対応です。
また、それと全然関係ありませんが、余計なメソッド上書きチェック(とエラー)が取り除かれました。[ruby-dev:22366]
matz: 本体 [差分]
たぶんungetc()絡みの修正。[ruby-dev:22364]かな。
fflush()前後のTRAP_BEGTRAP_ENDの除去は上の変更絡みかもしれません。
matz: 本体 [差分]
特定の正規表現パターンで、バッファ境界を越えたアクセスが発生する場合があった問題が修正されました。[ruby-dev:22372]
こういうのどうやって見つけてるんでしょ...
eban: 本体 [差分]
単純なtypoの修正ではあるのですが、Rhapsodyでconfigureできなくなっていた問題が修正されました。[ruby-core:2060]

_ 12月25日。運命の日。

matz: 2003-12-25
matz: 本体 [差分]
flock()前後のTRAP_BEGTRAP_ENDが取り除かれました。前日のfflush()と似てます。
matz: ext/zlib [差分]
昨日のIOシリーズの仕様変更にZlib::GzipReader#readも追従しました。
dave: lib/rdoc [差分]
=begin/=end絡みでなんかバグがあったのが直ったそうです。
matz: 本体 [差分]
Solarisではnanosleep()を使うのにrtライブラリをリンクする必要があるのに対応しました。[ruby-core:2059]
matz: 本体 [差分]
nanospleep()がない環境ではselect()を使うようになりました。
また、getcontext()などを使用するとリンク時になってエラーを出すプラットフォームもに対応しました。[ruby-list:38984]
ruby-1.8.1 release
これと同時に、開発版と安定版が分離し、CVSでは安定版をメンテナンスするためのブランチruby_1_8が切られました。以後、main trunkは1.9.0系列となります。
matz: 本体 [差分]
拡張ライブラリがruby本体にスタティックにリンクされているとき、そうしたライブラリと同名のスクリプトをrequireしようとすると既に読み込まれているものとみなされていた問題が修正されました。この修正は1.9.0からのマージです。
matz, usa: 本体 [差分]
rb_str_update()は内部でrb_modify()を呼ぶようになりました。[ruby-dev:22417]
差分が巨大なのは、1.9からRDocドキュメントがマージされたせいです :)

_ 12月26日。

dave: lib/rdoc [差分]
ルール計算のバグ修正、だそうです。1.9.0からのマージです。
nobu: 本体 [差分1, 2]
getcontext()setcontext()が使えるかどうかをconfigureで判定するようになりました。1.9.0からのマージです。
eban: 2003-12-26

_ 12月27日。

dave: 本体 [差分]
RDocドキュメントが追加されました。
matz: 本体 [差分]
quad intに範囲チェックが追加されました。1.9.0からのマージです。
matz: 本体 [差分]
実はSolarisで結局rtライブラリがリンクされていなくてnanosleep()を使えないままだったという問題が修正されました。1.9.0からのマージです。
matz: 本体 [差分]
ARGF.readが引数としてnilを受け付けなくなっていた問題が修正されました。[ruby-dev:22433]
また、in-place editが権限の問題などで失敗した場合、本来はそのファイルの編集をスキップして処理を継続するはずだったのですが、それ以降のARGFからの読み込みがエラーとなってしまっていた問題が修正されました。[ruby-dev:22434] あってるかな...
また、IO#readの第二引数が文字列かどうかをちゃんとチェックするようになりました。
以上、いずれも1.9.0からのマージです。
matz: 本体 [差分]
Array#packで、'I'の時に、MSBが立っていると例外が発生していた問題が修正されました。この条件では、従来、'i''I'で例外が発生し、'l''L'では例外が発生していなかったのですが、今回の修正によって、'i''l'で例外が発生するようになっています。[ruby-dev:22427] 1.9.0からのマージです。
eban: 2003-12-27
dave: 本体 [差分1, 2, 3, 4]
RDocドキュメントが追加されました。
eban: 本体 [差分]
configure時にちょこちょこエラーが出ることがある問題が修正されました。

Dec.29,2003 (Mon)

Revision: 1.6 (Jan.02,2004 00:35)

[Changes] 1.8

_ 終わる前にやっときましょう。まずは1.8の分。

_ 12月28日分。

dave: lib/rdoc [差分]
Init_process()のように、クラス名・モジュール名とInit_xxx()関数のアンダーバー以降で大文字小文字が異なる場合があることに対応しました。1.9.0からのマージ。
dave: 本体 [差分1, 2, 3]
RDocドキュメント追加。
dave: lib/rdoc [差分]
Document-method:指定に対応しました。1.9.0からのマージ。
dave: lib/rdoc [差分1, 2]
ri出力ルールをサポート、かなあ。1.9.0からのマージ。
eban: 2003-12-28
dave: 本体 [差分1, 2, 3, 4, 5]
RDocドキュメント追加。
dave: lib/rdoc [差分1, 2]
わからーん。1.9.0からのマージ。
Daveさん、RDocドキュメントの追加については触れなくていいから、lib/rdocの変更についてChangeLogに書いてください。前者は見りゃ誰でもわかるけど、後者はあなたしかわかんないんだから。
akr: ext/stringio [差分]
StringIO.new.sysreadとしても例外EOFErrorが発生していなかった問題が修正されました。[ruby-core:2078] 1.9.0からのマージ。
akr: ext/stringio [差分]
gzfile_read_all()""を返したとき、行番号カウンタがインクリメントされていなかった問題が修正されました。[ruby-core:2078] 1.9.0からのマージ。

よく「1.9.0からのマージ」とか書いてありますが、実際には、1.8と1.9.0に同時にcommitされているのがほとんどです。今のところほとんど差がないですからね。
個人的にはもっともっと差を増やして欲しいところ。そうでないと複数のChangesを記述する意味がない1.9.0を追っかける意味がないですもんね。

[Changes] 1.9.0

_ そしてこっちが本命1.9.0の分。
なんで1.8はmajor.minor表記で、1.9.0がmajor.minor.teeny表記かというと、1.9からバージョン命名ルールが変わるからです。
いちおうおさらいしておくと、

1.8まで
minorが奇数なら開発版、minorが偶数なら安定版。
1.9から
teenyが0なら開発版、teenyが1以上なら安定版。

ということになってます。
開発版に細かいバージョン番号を振る意味はほとんどないので、新しいルールの方が貴重なバージョン番号という資源を浪費しなくて合理的です。

_ 12月25日分。1.9.0はこの日の途中から生まれたので、当然記述も途中から。

nobu: 本体 [差分]
拡張ライブラリがruby本体にスタティックにリンクされているとき、そうしたライブラリと同名のスクリプトをrequireしようとすると既に読み込まれているものとみなされていた問題が修正されました。
dave: 本体 [差分1]
RDocドキュメントが追加されました。
eban: 2003-12-25
ここからバージョンが1.9.0になります。
matz: 本体 [差分]
太古の忘れ去られた理由により、NetBSDではなぜかdlfcn.h#includeされていなかった問題が修正されました。
matz, usa: 本体 [差分]
rb_str_update()は内部でrb_modify()を呼ぶようになりました。[ruby-dev:22417]
matz: ext/tcltklib [差分]
CLASS_OFマクロがrb_obj_class()関数呼び出しに置き換えられています。なんででしょう?

_ 12月26日分。

dave: lib/rdoc [差分]
ルール計算のバグ修正、だそうです。
akiyoshi: 本体 [差分1, 2, 3]
VMSサポート改善。
usa: 2003-12-26
nobu: 本体 [差分1, 2]
getcontext()setcontext()が使えるかどうかをconfigureで判定するようになりました。

_ 12月27日分。

matz: 本体 [差分]
quad intに範囲チェックが追加されました。
matz: 本体 [差分]
実はSolarisで結局rtライブラリがリンクされていなくてnanosleep()を使えないままだったという問題が修正されました。
matz: 本体 [差分]
ARGF.readが引数としてnilを受け付けなくなっていた問題が修正されました。[ruby-dev:22433]
また、in-place editが権限の問題などで失敗した場合、本来はそのファイルの編集をスキップして処理を継続するはずだったのですが、それ以降のARGFからの読み込みがエラーとなってしまっていた問題が修正されました。[ruby-dev:22434]
また、IO#readの第二引数が文字列かどうかをちゃんとチェックするようになりました。
matz: 本体 [差分]
Array#packで、'I'の時に、MSBが立っていると例外が発生していた問題が修正されました。この条件では、従来、'i''I'で例外が発生し、'l''L'では例外が発生していなかったのですが、今回の修正によって、'i''l'で例外が発生するようになっています。[ruby-dev:22427]
dave: 本体 [差分]
RDocドキュメントが追加されました。
eban: 2003-12-27
dave: 本体 [差分1, 2, 3, 4]
RDocドキュメントが追加されました。
eban: 本体 [差分]
configure時にちょこちょこエラーが出ることがある問題が修正されました。

なんか1.8とごっちゃになってきました。

_ 12月28日分。

dave: lib/rdoc [差分]
Init_process()のように、クラス名・モジュール名とInit_xxx()関数のアンダーバー以降で大文字小文字が異なる場合があることに対応しました。
dave: 本体 [差分1, 2, 3]
RDocドキュメント追加。
dave: lib/rdoc [差分]
Document-method:指定に対応しました。
dave: lib/rdoc [差分1, 2]
ri出力ルールをサポート、かなあ。
eban: 2003-12-28
dave: 本体 [差分1, 2, 3, 4, 5]
RDocドキュメント追加。
dave: lib/rdoc [差分1, 2]
わからーん。
akr: ext/stringio [差分]
StringIO.new.sysreadとしても例外EOFErrorが発生していなかった問題が修正されました。[ruby-core:2078]
akr: ext/stringio [差分]
gzfile_read_all()""を返したとき、行番号カウンタがインクリメントされていなかった問題が修正されました。[ruby-core:2078]

事実上1.8からのコピペです。ごめんねー。

_ 暇な人は[Changes] 1.8と[Changes] 1.9.0を比較して、何が1.8にマージされてないか確認しておきましょう。


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