丁稚な日々

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

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

Dec.1,2003 (Mon)

Revision: 1.9 (Dec.02,2003 10:13)

[Changes]

_ もう12月かー。はやい。

_ 11月28日分。

nobu: 本体 [差分1, 2]
exitexit!メソッドがtruefalseを受け付けるようになりました。実行環境に対する成功/失敗の通知を記述するポータブルな方法、ということになります。[ruby-dev:22067]
また、このついでに、EXIT_SUCCESSEXIT_FAILUREに相当する値が0とか1などと直接ソースに書かれていたのが修正されました。
nobu: test/unit [差分1, 2, 3]
上記の変更にあわせて、abortの代わりにexitを使うようになりました。
eban: 2003-11-28
nobu: 本体 [差分]
[ruby-talk:86504]という問題が修正されました。
nahi: lib/soap [差分]
使っていないHTTPパラメータの設定が削除されました。直訳でスマソ
nahi: lib/soap, lib/wsdl [差分1, 2, 3, 4, 5]
ApacheSOAPのmapサポートがWSDLダイナミッククライアント環境下で壊れていた問題が修正されました。直訳でスマソ
nahi: lib/xsd [差分]
dateTimeの精度にまつわる問題が修正されました。ruby添付のtest suiteで、ときたまFailedになってたヤツだと思われます。
akr: lib/pathname [差分]
Pathname#realpathの引数はobsoleteになりました。
seki: lib/drb [差分]
IO#read中に発生する例外は、例外DRb::DRbConnErrorとして投げ直すようになりました。
nobu: 本体 [差分]
ENV.has_value?ENV.indexが、実は環境変数値を完全一致ではなく前方一致で判定していたという問題が修正されました。
今度は僕のせいじゃなかったよ、ほんとだよ〜
seki: lib/rinda [差分]
Rinda::TupleSpaceProxy#readRinda::TupleSpaceProxy#read_allが修正されました。ごめん、わかんない
matz: 本体 [差分]
環境変数PATHのチェックで、sticky bitをいつも尊重するようになりました。[ruby-talk:86273]
matz: 本体 [差分]
GCのマーク時、スタック長でのチェックは信用できないので、真面目に再帰の深さをチェックするようになりました。これで謎のSEGV(の少なくとも一部)が修正されているはずです。
matz: 本体 [差分]
Time#succメソッドが追加されました。Timeオブジェクトを+1秒します。
matz: lib/debug [差分]
うーん、バグが直ってるんだと思いますがよくわかりません。

_ 11月29日分。
なし。ラッキー!

_ 11月30日分。

nobu: 本体 [差分]
文字列操作時の、[ruby-core:1812]にあるようなSEGVが修正されました。
nobu: 2003-11-30
nahi: lib/soap [差分]
リファクタリング。
nahi: lib/wsdl [差分]
リファクタリング。
nagai: ext/tk [差分]
['A', '', 'B']という配列をTkのリストに変換すると"A B"となっていましたが、"A {} B"となるようになりました。[ruby-talk:86746]
eban: 本体 [差分]
configureの、CDLDFLAGSLDFLAGSXLDFLAGSDLDFLAGSLDSHAREDの各マクロに対して、今までは必要になるとこれらの値を置き換えていましたが、そうではなく新しい値を既存の値に追加するようになりました。
マクロXCFLAGSはrubyのコンパイルのみに使用されるものなので、マクロCFLAGSには影響させないようになりました。
マクロARCH_FLAGがconfig.statusに出力されるようになりました。
eban: 本体 [差分]
Makefileで、configureのARCH_FLAGがマクロCFLAGSDLDFLAGSに作用するようになりました。
configureのCPPFLAGSがマクロCPPFLAGSに作用するようになりました。
eban: lib/mkmf [差分]
Config::CONFIG["XCFLAGS"]は使用しなくなりました。代わりに、Config::CONFIG["ARCH_FLAG"]を使用します。

_ ようやっと<dl>つかうようになりました。どうかな?

Dec.2,2003 (Tue)

Revision: 1.1 (Dec.02,2003 10:13)

[Changes]

_ 12月1日分。

eban: lib/mkmf [差分]
マクロDLDFLAGSARCH_FLAGが、TRY_LINKlink_commandに作用するようになりました。[ruby-dev:22085]
eban: 2003-12-01
usa: 本体 [差分1, 2, 3]
最近のconfigure.inやlib/mkmf.rbの変更に追従し、Windows系プラットフォームでも、再度マクロXCFLAGSの中身をconfig.statusに出力するようになりました。
また、lib/mkmf.rbの変更によってこれらのプラットフォームではビルドできなくなっていたため、新たにマクロARCH_FLAGをconfig.statusに出力するようになりました(たぶん中身は空です)。
aamine: lib/fileutils [差分]
ファイル名を、文字列だけでなくPathnameオブジェクトなども受け付けるように、内部で#to_strを呼ぶようになりました。[ruby-core:1795]
dave: bin/rdoc, lib/rdoc [差分省略]
RDocがインポートされました。
matz: 本体 [差分1, 2]
rb_num2int()rb_fix2int()rb_num2uint()rb_fix2uint()の戻り値がそれぞれintunsigned intからlongunsigned longに変更されました。情報の落ちを防ぐため、だそうです。[ruby-talk:85377]
また、rb_num2uint()rb_fix2uint()で、元の値が負であれば範囲チェックを行わなくなりました。
matz: 本体 [差分]
swap16()swap32()というマクロが追加されました。それぞれ、16bitまたは32bitのエンディアン変換を行うマクロです。旧来、shortが16bitの環境下でのswaps()、longが32bitの環境下でのswapl()と同じものです(というか、これらのマクロはswap16()swap32()を使うように変更されました)。
htov16()htov32()hton16()hton32()というマクロが追加されました。htov*()はリトルエンディアン化、hton*()はビッグエンディアン化を行います。[ruby-talk:85377]
matz: 本体 [差分]
Numeric#singleton_method_addedメソッドが追加されました。このメソッドは、Numericオブジェクトに特異メソッドが定義されたときに呼び出されるわけですが、この中で例外TypeErrorが発生するようになっています。
今までは、Fixnumオブジェクトには特異メソッドが定義できませんでしたが、Bignumオブジェクトには定義できていました。この変更により、Bignumオブジェクトにも特異メソッドが定義できなくなります。

_ というわけで、RDoc キタ━━━━(゚∀゚)━━━━ッ!!
既にsite_rubyにRDocを入れてる人は、忘れずに削除しましょう。

Dec.3,2003 (Wed)

Revision: 1.2 (Dec.03,2003 08:33)

[Changes]

_ 12月2日分。

why: ext/syck [差分]
ポインタ操作の誤りが修正されたようです。[ruby-core:1834]
dave: lib/rdoc [差分]
alias_methodに文字列が渡されている場合を正しく処理するようになりました。ということだと思います。
ntalbott: lib/test/unit [差分]
Test::Unit::Assertions#assert_no_matchメソッドの出力するメッセージが間違っていた問題が修正されました。
ttate: ext/dl [差分1, 2]
今まではcdecl呼び出し規約とstdcall(pascal)呼び出し規約との違いを意識してなかった(cdecl呼び出し規約を暗黙のうちに仮定していた)のですが、どちらでもちゃんと動作するように変更されました。[ruby-dev:21991]
eban: 2003-12-02
nobu: bin/testrb [差分]
bindirにtest runnerが追加されました。[ruby-core:1845]
testrbの読み方募集中(ウソ)
nobu: lib/test/unit [差分1, 2, 3, 4, 5, 6, 7]
Test::Unit::AutoRunner#run内部でexitするのはやめて、呼び出し元に結果を返すようになりました。これにあわせて各test runnerも修正されました。
また、Test::Unit::AutoRunner.runTest::Unit::AutoRunner#process_argsは引数にテストのリストを受け取るようになりました。
aamine: lib/net/http [差分]
内部バージョンが上がりました、が、実はドキュメントの追加のみです。

test

_ 最近流行ってる?
とりあえず、test_env.rbはいろいろ問題を発見するよいテストのようです。てへ。

Dec.4,2003 (Thu)

Revision: 1.2 (Dec.04,2003 12:18)

[Changes]

_ 12月3日分。

nobu: ext/extmk [差分]
各Makefileは、今まで、ext/extmk.rbが変更されている場合に更新されていましたが、lib/mkmf.rbが変更された場合にも更新されるようになりました。
nobu: lib/mkmf [差分]
Config::CONFIG['DLDFLAGS']の内容が最終的にMakefileマクロのDLDFLAGSにだぶって出力されていた問題が修正されました。
eban: 2003-12-03
dave: lib/rdoc [差分1, 2]
抜けてたらしいです。
nobu: 本体 [差分]
lex.c再生成問題ですが、まだOpenBSDでうまくいっていたなかったのが修正されました。[ruby-dev:22123]
大嘘ぴょん。これだとまつもとさんが別のディレクトリでビルドするとまずいですね。の部分の対応です。
nagai: ext/tk [差分1, 2, 3, 4, 5]
formatメソッドの呼び出しが全てKernel.formatと記述されるよう変更されました。たまたまformatというメソッドが定義されて上書きされてしまうという問題への対処らしいです。
matz: 本体 [差分1, 2]
古いyaccを使っている場合、定数YYMAXDEPTHが小さすぎてmake testが通らなかったりする、という問題が修正されました。具体的には、コマンド名がyaccの場合は強制的に定数YYMAXDEPTH10000に変更しています。[ruby-core:1873]
matz: 本体 [差分]
OS/2 emx環境でも、環境変数の大文字小文字を区別するようになりました。[ruby-dev:22119]
seki: lib/drb [差分]
typoの修正です。[ruby-dev:22120]
dave: lib/rdoc [差分]
class << クラス名という宣言が来て、そのクラス名が未知の場合、そのクラス名を暗黙のうちに宣言されたものとみなすようになりました。
あってるかな?

_ 個人的な話をすると、今日初めてformatというメソッドの存在を知りました...
普段はsprintfとかString#%を使ってるのです。

Dec.5,2003 (Fri)

Revision: 1.4 (Dec.05,2003 19:08)

[Changes]

_ 12月4日分。

matz: 本体 [差分]
ARGFからのreadがおかしな挙動を示していた問題が修正されました。[ruby-dev:21969]
matz: lib/delegate [差分]
バグ修正だと思いますがよくわかりません。最近のマーシャラ関連の変更への追従かしら。
akr: lib/pathname [差分]
Pathname#linkPathname#symlinkはobsoleteとなりました(警告が出ます)。かわりに、Pathname#make_linkPathname#make_symlinkの各メソッドが追加されました。
gotoyuzo: lib/webrick [差分1, 2]
WEBrick::GenericServer#startWEBrick::HTTPResponse#start_threadで、素のrescueではなくrescue Exceptionを使って全ての例外を捕捉するようになりました。StandardError以外の例外が発生してもスレッドが黙って死ぬことには変わりはないので、全ての例外を再送すべき、ということのようです。
また、WEBrick::GenericServer#start_threadensure節で、例外の発生タイミングによってはaddrnilの場合もあるので、その対応が追加されました。
いずれも[ruby-core:1853]
gotoyuzo: ext/openssl [差分]
OpenSSL::X509::Certificate.new.inspectというコードがSEGVする問題が修正されました。[ruby-core:1881]
aamine: lib/net/http [差分]
内部バージョン番号が上がりました、が、実はドキュメントが変更されただけです。
usa: ext/dl [差分]
先日以降、VC6でコンパイルできなくなっていた問題が修正されました。
nobu: 2003-12-04
nahi: lib/soap, lib/wsdl [差分1, 2, 3, 4, 5, 6]
SOAP::Envモジュールが追加されました。環境変数HTTP_PROXYに関連する処理を担当するモジュールです。SOAP::WSDLDriverSOAP::RPC::DriverWSDL::Importの各クラスはこれを利用するようになりました。[ruby-dev:22055]あたり?
SOAP::Propertyクラスが追加されました。SOAP::HTTPPostStreamHandlerSOAP::WSDLDriverSOAP::RPC::Driverの各クラスはこれを利用するようになりました。
nahi: lib/soap [差分]
SOAP::NetHttpClientクラスにbasic_authssl_configcookieを扱うインターフェースが追加されました、が、現時点では無効だそうです。
nahi: lib/xsd [差分]
XSD::Charset.encoding=が追加されました。わかっていてutf-8以外を使用したい時に使います。[ruby-list:38857]
nahi: lib/soap [差分]
最新のhttp-access2に対応されました。
shugo: lib/monitor [差分]
Object#sendを使っていた部分が残っていたので、Object#__send__を使うように変更されました。
nobu: lib/drb [差分]
先日IO#read中の例外はDRb::DRbConnErrorとして投げなおすようになりましたが、IO#write中のものも同様に投げなおすようになりました。[ruby-dev:22132]

_ めずらしくSOAP関連を噛み砕いて見てみました。でもまだChangeLogレベル。

[Web] Martin Fowler's Bliki in Japanese

_ 圏外からのひとこと経由。

_ FrontPageにご自由にページの追加、修正、変更を行ってください。文句を言う前に指を動かそう!と書いてあって、じゃあ誤字くらいは直していこう、と思ったのですが、直したいそのページが凍結されてたり。

_ 具体的には、お読みくださいの中のファウラー氏の名前のスペルが間違ってます。

_ とだけ書いとくと紹介としては最悪やな。
えーと、「面白かった、ためになった、すばらしい」と思ったから、誤字修正くらいは手伝おう、と思ったわけなのですよー。
ぜひとも一読すべし。

Dec.7,2003 (Sun)

Revision: 1.1 (Dec.07,2003 16:31)

[PC] HDD死亡

_ 金曜の夜くらいからおうちメインマシンのHDDがおかしくなった。
負荷をかけると沈黙してしまう。

_ いろいろ手を尽くしてみたけれど、どうもダメっぽいので、諦めて交換用のHDDを買ってきた。
最近のHDDは120GB 7200rpm 8MBキャッシュで1万円しないのかー。しかもヨドバシ価格なのに!

_ びくびくしながらNorton Ghostで中身をコピー。
どうにかコピー中くらいは元のHDDももってくれた(というか、リニアなアクセスなら大丈夫なんだろう、きっと)ので、問題なくデータの移行も完了。Ghost萌え。

_ 教訓。
Ghost(か、それに類するもの)は持っとけ。
早め早めにバックアップ。

Dec.8,2003 (Mon)

Revision: 1.5 (Dec.08,2003 10:55)

1.8.1-preview3

_ 書くの忘れてたけど金曜日に1.8.1-preview3が出てますね。
mswin32のバイナリも土曜日の朝に出てます。

_ 前にリリースにまつわるさまざまなことというのを書いたけど、これは「リリースされた後で必要な作業」ですね。
では実際にリリース作業そのものには何が必要なのかを推測すると、必須事項と必須でない(かもしれない)事項を取り混ぜて書くと、

  1. (正式版の場合は、ミラーの募集?)
  2. 事前アナウンスと最終確認
  3. MANIFEST確認
  4. cvs tag打ち
  5. パッケージング
  6. ftp準備
  7. (正式版の場合は、ミラーへの通知?)
  8. md5sumつきでリリースアナウンス

くらいなのかなぁ。

[Changes]

_ 12月5日分。

dave: lib/rdoc [差分]
パース中にエラーが発生した場合、エラーの出たファイル名・行番号・カラム位置などが出力されるようになりました。
nobu: lib/test/unit [差分]
Test::Unit::Assertions#assert_raisesは複数の例外を受け付けるようになりました。[ruby-core:1884]
Test::Unit::Assertions#assert_nothing_raisedは、メッセージ以外の引数が実際にExceptionクラスの子孫かどうかを確認するようになりました。
matz: 本体 [差分]
AIXではerrnoがマクロであるため、dln.cのコンパイルがうまくいかなかった問題が修正されました。(実際にコンパイルエラーだったのかコンパイル自体は通っていたのかは不明)
matz: 本体 [差分]
例外をrescue節で捉えて再送する場合、$!が完全には保存されていなかったという問題が修正されました。[ruby-talk:86697]
matz: 本体 [差分]
IO#read時、現在のファイルポインタ位置によって処理を変えるのをやめました。[ruby-dev:22026]
nobu: 2003-12-05
nobu: ext/stringio [差分]
StringIO#readの処理が上記のio.cの修正に追従しました。
matz: 本体 [差分1, 2]
at_exitの実行中にGCが走ると(走らなくても?)SEGVしていた問題が修正されました。[ruby-dev:22144],[ruby-dev:22154]
Module#extendedというフックメソッドが追加されました。モジュールでこの名前のメソッドを定義しておくと、このモジュールがextendされたときに呼び出されます。[ruby-list:38866]
1.8.1-preview3 リリース
nahi: lib/soap [差分]
proxyサポートがうまく動いていなかった問題が修正されました。
nahi: lib/soap, lib/wsdl [差分1, 2, 3, 4, 5]
SOAP::Property.loadメソッドが追加されました。IOストリーム・ファイル・プロパティファイルのいずれかからプロパティを読み込みます。なお、プロパティファイルは$:のどこかに置いてください。
また、SOAP::WSDLDriverSOAP::RPC::DriverWSDL::Importerの各クラスもこれに追従しました。
nobu: lib/test/unit [差分]
Test::Unit::Assertions#assert_raisesTest::Unit::Assertions#assert_nothing_raisedは、引数リストの最後にメッセージを指定することもできるのですが、Classじゃなければメッセージだとみなすようになりました。先の変更の時点では、Exceptionの子孫でなければメッセージだとみなしていました。

_ 12月6日分。

nahi: lib/soap [差分]
SOAP::NetHttpClient#proxy=メソッドで、proxyとして指定されたものが有効な内容かどうかをチェックし、そうでない場合は例外を投げるようになりました。
nahi: lib/soap [差分]
SOAP::Env.getenvメソッドは、指定された環境変数名を全小文字化したものも探していましたが、全大文字化したものも探すようになりました。
eban: 2003-12-06
eban: 本体 [差分1, 2]
全てのプラットフォームで、IOのシークの前にバッファをフラッシュするようになりました。
gotoyuzo: ext/openssl [差分]
実際にSSL経由の通信を始める際、まだハンドシェイクの過程が終了してないのに戻ってくる場合がありましたが、この場合はリトライするようになりました。具体的には、一部のプラットフォームで、O_NONBLOCKを指定された場合に例外が発生していたのが修正されました。

_ 12月7日分。

dave: lib/rdoc [差分1, 2]
Kilmerテンプレートで--inline-sourceがサポートされました。
akr: ext/iconv [差分1, 2]
charset名の大文字小文字を区別しなくなりました。[ruby-dev:22173]
eban: 2003-12-07
akr: ext/iconv [差分]
charset_alias.rbの出力はaliasをソートするようになりました。

Dec.9,2003 (Tue)

Revision: 1.2 (Dec.09,2003 10:51)

[Changes]

_ 12月8日分。

matz: 本体 [差分]
OpenBSDでのコンパイル時に警告が出ていた問題が修正されました。[ruby-dev:22181]
eban: 2003-12-08
aamine: lib/uri [差分]
URI.regexpメソッドが追加されました。[ruby-dev:22121]
nobu: ext/syck [差分]
ARGFからの読み込み時にバッファオーバーフローしていた問題が修正されました。
nubu: lib/test/unit [差分1, 2, 3, 4, 5, 6, 7]
Test::Unit::AutoRunnerから各test runnerからの依存性が(必要になるときまで)排除されました。[ruby-core:01901][ruby-list:38869]
平たく言ってしまうとこれで終わりなんですが、その関連で定数の定義が引っ越したり、標準添付の全test runnerのrunメソッドが第二引数に出力レベルを受け取るようになったりしています。

Dec.10,2003 (Wed)

Revision: 1.5 (Dec.10,2003 14:19)

[Changes]

_ 12月9日分。

ntalbott: lib/test/unit [差分]
Test::Unit::Assertions#assert_raiseメソッドが追加されました。Test::Unit::Assertions#assert_raisesの別名ですが、後者はRuby 2.0までに段階を追って廃止される予定です。[ruby-core:1890]
ser: lib/rexml [差分1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
まとめてcommitすんなー。どうやらREXML 2.7.2相当になったようですが、中身は見ないでcommit logの(適当な)翻訳でお茶を濁します。本当はChangeLogへのリンクでごまかしたかったけど、なかったのでやむをえずこういう形で。
エンコーディングサポートライブラリに、小文字を含むファイル名でのShift-JISファイルが追加されました。大文字名のファイルは廃止してしまうべきなのですが、廃止の前にテストが必要です。[訳注: 現在、CVS上には全大文字名のファイルと、大文字小文字混在名のファイルがあるわけですが、ひょっとして大文字と小文字の区別が付かないシステムの存在を忘れてますか? また、区別が付くシステムだと、全大文字名のファイルを廃止しちゃったらrequireできなくなりますよ?(lib/rexml/enconding.rb参照)]
Added support for maintaining external entity occurances in DTDs [訳注: occuranceという単語が私の辞書には載ってません。]
Document::DECLARATIONの使用は廃止されます。新しいデフォルトの宣言の取得はXMLDecl::defaultを利用してください。
エンコーディングサポートのコードはリファクタリングされました。いまやこのコードはより頑丈なものとなり、いくつかのバグが修正されています。 [訳注: 上記Shift-JISの話題を参照されたし。]
XPathのstringが、適切にElementノードを取り扱うようになりました。
出力対象オブジェクト付きのシリアライズが期待通りに動くようになりました。
いろんなコードがクリーンアップされ、Ruby 1.8での警告がだいぶ解消されました。
eban: 2003-12-09
akr: 本体 [差分]
NEED_IO_SEEK_BETWEEN_RWが定義されるプラットフォームで、io_seekによってEOFがクリアされてしまうことがあった問題が修正されました。
akira: lib/uri [差分]
ホスト名部分の大文字小文字の違いは区別しなくなりました。
nagai: ext/tk [差分1, 2, 3, 4, 5, 6]
現状のrubyでは、親クラスでprivateなインスタンスメソッドを子クラスでオーバーライドするとpublicになってしまいます。ということに気づいてなくて親クラスのprivateメソッドをpublicにしてしまっていた問題が修正されました。[ruby-dev:22190]

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