丁稚な日々

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

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

Dec.11,2003 (Thu)

Revision: 1.4 (Dec.12,2003 00:11)

[Changes]

_ 12月10日分。

eban: 本体 [差分1, 2]
native win32なプラットフォームで、未だにランタイムライブラリのexecv()を直接呼び出している部分があったのが修正されました。[ruby-bugs:PR#1239](からの派生ネタ)
eban: 2003-12-10
usa: ext/pty [差分]
BSD系プラットフォームで、ext/pty/expect_example.rbが正常に動作していなかった問題が修正されました。[ruby-bugs:PR#1211]・[ruby-dev:22204]
nobu: ext/stringio [差分]
EOFの取り扱いについて、IOクラスとの互換性が向上しました。[ruby-dev:22205][ruby-dev:22214][ruby-dev:22223][ruby-dev:22224]
matz: 本体 [差分]
IO#readの第二引数が指定されて、かつ、読み込んだデータの長さが0の場合、今までは新しいStringオブジェクトを生成して返していましたが、第二引数のオブジェクトの長さを0バイトに縮めるようになりました。[ruby-dev:22207]
matz: ext/curses [差分]
Curses.ungetmouseが間違ったメソッド呼び出しとなっていた問題が修正されました。
Curses::Window#attroffCurses::Window#attronCurses::Window#attrsetCurses::Window#bkgdsetCurses::Window#bkgdCurses::Window#getbkgdの各メソッドが、実装はあるのに定義されていなかった問題が修正されました。[ruby-core:1920]あたり
matz: 本体, ext/iconv [差分1, 2, 3]
未使用の自動変数の定義が削除されたりprintf系関数のフォーマットのl指定漏れだとかが修正されたりしました。[ruby-core:1914]あたり
matz: lib/weakref [差分]
クラス変数の代わりにクラス定数を利用していたコードがクラス変数を利用するように変更されました。
aamine: lib/erb [差分]
ERB#filenameERB#filename=メソッドが追加されました。後者を使ってファイル名を指定しておくと、エラー時に(eval)と出て何がなにやらわからなかったのが、ファイル名がわかるようになります。なお、指定しなかった場合も(erb)と出るようになっています。[ruby-dev:22208] たぶんこれでtDiaryのデバッグが楽になるんじゃないかと。

[生活] マクド

_ 東日本のマクドナルドと西日本のマクドナルドは違うんだ、と思えば、グラコロ問題もさほど腹もたたなくなりますね。そういや省略形もマックとマクドと違うしな!

_ というわけで、昨日の晩御飯はモツァレラチキンカツえびチキでした。後者は東日本にはないぞざまーみろ!

_ ふむ(2003.12.11)
というわけで軽く調べてみたところ、えびチキはもともとは愛知・岐阜・三重のご当地メニューだったようです。
ところでひょっとして先月は全国で売ってたのかしら? ぜんぜんマクドに行ってなかったから知らなかっただけぽ。

mkdir

_ NetBSD 1.6.1で末尾に/のあるmkdirが失敗するという話。そしてゆぞさんの指摘

_ 実は今年の9月にcurrentでは末尾に/があってもいいことになったのでした。
カーネル側の変更がこれこれで、mkdir(1)の変更がこれ(ゆぞさんが引用した部分とかぶってます)。
同じ頃にtech-kernとかで議論してたようです。

Dec.12,2003 (Fri)

Revision: 1.2 (Dec.12,2003 16:24)

[Changes]

_ 12月11日分。

nobu: 本体, ext/bigdecimal, ext/dl, ext/iconv, ext/pty, ext/socket, ext/syck [差分1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
いっぱいあるので個別の詳細は避けますが、[ruby-core:1921]のコンパイル時警告関連の修正です。
eban: 2003-12-11
aamine: lib/fileutils [差分1, 2]
差分1の方はスタイルの変更なので気にしなくていいです。
差分2の方ですが、FileUtils#mkdir_pで、今までは実際にmkdirする前にそれがディレクトリかどうかをチェックしていたのですが、mkdirに失敗してからチェックするようになりました。そうしないと、別プロセスと競合した時に問題が発生することがあるためです。[ruby-talk:87730]
eban: lib/ftools [差分]
上記のfileutilsの変更にftoolsも追従しました。
aamine: lib/fileutils [差分]
FileUtils#mkdir_pで、指定したディレクトリ名末尾に/があった場合、NetBSDではエラーになっていた問題が修正されました。ちなみに、昨日書いたように、NetBSDの最近のcurrentではこの問題は発生しません。
FileUtils#fu_listの全ての引数(パス)に対して、#to_strを呼ぶようになりました。Pathnameオブジェクト対応の一環だと思います。
gotoyuzo: ext/openssl [差分1, 2, 3, 4]
OpenSSL::PKCS12クラスが追加になりました。

_ さて、そろそろpreview4だったりするんですかね。

[Web] ChangeLogマニア

_ 前から気になってたんですが、もしかして NetBSD も全部 ChangeLog 見てるんですか?」って、もちろん見てません。
たまたまこれは踏んだことがあるので知ってるだけです。
NetBSDの変更で追っかけてるのは、自分が地雷を踏んでいる場合だけですね。

_ あと、実はRubyのChangeLogもほとんど読んでません(ぉぃ)。
Changesはcommit logを元に書いていることが多いので、commit logに説明が書いてなくて、かつ、ChangeLogに説明が書いてある場合、よく見落とします。だめじゃん。
というわけで、ChangeLogをしっかり書いて、それをcommit logにコピペするのが推奨です。と勝手に推奨してみる。

Dec.15,2003 (Mon)

Revision: 1.4 (Dec.15,2003 13:59)

[Changes]

_ 12月12日分。

nobu: 本体 [差分]
define_method時の警告中のクラス名が正しくなかった問題が修正されました。[ruby-dev:22235]
eban: 2003-12-12
aamine: lib/fileutils [差分]
FileUtils#mkdirFileUtils#rmdirFileUtils#rmdir_rで、指定されたディレクトリ名末尾に/があったばあいはこれを取り除くようになりました。先日のmkdir_pの修正(下)と同じです。[ruby-dev:22238]
FileUtils#fu_copy_dirで、ディレクトリを作成した後でチェックを行うようになりました。これも先日のmkdir_pの修正(上)と同じです。
nahi: lib/csv [差分]
CSV::Cell#to_strCSV::Cell#to_sの各メソッドが追加されました。

_ 12月13日分。

why: lib/yaml [差分]
無名構造体周りのバグが修正されました。[ruby-core:1946]
ser: lib/rexml [差分1, 2, 3, 4, 5, 6, 7]
REXML 2.7.3になりました。
小文字を含むエンコーディングライブラリ(Shift-JIS.rb・Shift_JIS.rb)が削除されました。
幾つかのエンコーディングライブラリにあったバグが修正されました。
nobu: 本体 [差分1, 2]
ucontext.hを持っていて、かつ、IA64または--enable-pthread環境では、setjmp()longjmp()の代わりにgetcontext()setcontext()を利用するようになりました。
nobu: 2003-12-13
nobu: 本体 [差分]
Procオブジェクトをメソッドに渡したとき、&付きで渡すと__id__が変化してしまう問題が修正されました。[ruby-talk:61288][ruby-dev:22240]
もともとは、ブロックからProcオブジェクトを生成するたびに新しいオブジェクトを生成していたのですが、最近はなるべく同じものを返すようになっていました。今回はその漏れ分です。
matz: 本体 [差分]
Rubyのスレッドが複数あるとき、内部でタイマーを生成してスレッド切り替えに利用していたのですが、--enable-pthreadの時、このタイマーを別ネイティブスレッドで回すようになりました。[ruby-talk:87519]
matz: 本体 [差分]
以前に入れられた、--enable-pthread時の、スタック使用量を1/4にしてみるという対応コードが削除されました。
nobu: ext/iconv [差分]
charsetのaliasマップは、当初は順番ばらばらで、先日ソートするようになっていたのですが、元の順番を保存するようになりました。

_ 12月14日分。

eban: ext/socket [差分]
INET6#defineされていたらAF_INET6PF_INET6が定義されているとみなすようになりました。MinGWでAF_INET6が定義されるのにINET6は定義されていないためです。
eban: lib/ipaddr [差分]
Socket::AF_INET6が定義されていなかった場合、自前でこれを定義し、さらにIPAddr.getaddressメソッドも再定義するようになりました。
eban: 2003-12-14

Dec.17,2003 (Wed)

Revision: 1.1 (Dec.17,2003 14:52)

[生活] 風邪

_ 風邪引いた。

_ なんか今回の風邪はやけに薬が効くなあ。
鼻水・発熱・喉の痛み、などの首から上の症状はほとんど薬で抑えられる。代わりに吐き気がひどいけど。

[Changes]

_ 12月15日分。

usa: ext/openssl [差分]
関数ポインタのキャストで引数型宣言が抜けていた(ので一部環境で警告が出ていた)問題が修正されました。
nobu: 本体 [差分1, 2]
新API関数rb_path_next()rb_path_skip_prefix()rb_path_last_separator()rb_path_end()が追加されました。それぞれ、元々はfile.cの内部関数だったnextdirsep()skipprefix()strrdirsep()chompdirsep()が名前を変えた上で開放されたものです。[ruby-dev:22281]
nobu: 本体 [差分]
find_dirsep()rb_path_next()の別名になりました。
また、指定されたディレクトリ名が安全な文字列かを確認し、さらに末尾の/(または\)を取り除くための内部ヘルパ関数check_dirname()が新設されましました。[ruby-dev:22281]
nobu: 2003-12-15

_ 12月16日分。

nobu: 本体 [差分]
--enable-pthread時、(Rubyの)スレッドをたくさん作ると(?)ブロックしてしまうことがあった問題が修正されました。[ruby-core:1959]
これで--enable-pthread問題はほぼ解決したのかしら?
why: lib/yaml [差分]
文字列中のコメントがサポートされた、のかな?
eban: 2003-12-16
nagai: ext/tk [差分]
TkWindow::pack_propagateTkWindow::grid_propagateifの判定が誤っていた問題が修正されました。
dave: bin/rc, lib/rdoc [差分1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
riが取り込まれました。
akr: lib/pp, lib/prettyprint [差分1, 2]
ローカル変数にppという名前を使うのをやめました(ちなみに代わりにはqを使っているようです)。
まあ、紛らわしいし。

_ riが入るならやはりRDtoolも入って欲しいところ。せめてライブラリ部だけでも。

Dec.19,2003 (Fri)

Revision: 1.4 (Dec.19,2003 14:00)

[Changes]

_ 12月17日分。

dave: 本体 [差分]
array.cにRDocドキュメントが挿入されました。ふへー。
dave: bin/ri, lib/rdoc [差分1, 2, 3, 4, 5, 6, 7, 8, 9]
修正されていますがよくわかりません。
eban: 2003-12-17
dave: bin/ri, lib/rdoc [差分1, 2]
pagerサポートが追加されました。要するにlessとかmoreとかの類のサポートということです。
matz: 本体 [差分1, 2]
FreeBSDでの-lc_rのサポートがいまいちだったのが改善されたようです。
matz: 本体 [差分]
実行上、差異はないはずですが、eval.c内にあったマクロruby_signalはなくなりました。
matz: ext/curses [差分]
なぜかinit_color()のチェックが失踪していた問題が修正されました。[ruby-list:38905]
matz: lib/cgi [差分]
CGI::QueryExtension::ValueStringの子ではなく、Stringのdelegatorになりました。
CGI::QueryExtension::Value#[]は、複数の引数があってもStringっぽく動作するようになりました。
matz: lib/delegate [差分]
@objというインスタンス変数名はあまりにありふれているので、@_sd_objまたは@_dc_objに変更されました。

ところで、delegator? delegater?

_ 12月18日。

eban: lib/ipaddr [差分]
OSがIPv6をサポートしない環境下でも、IPv6アドレスをいちおう扱えるようになりました。元ネタは[ruby-dev:21678]
eban: 2003-12-18
nobu: 本体 [差分]
先日find_dirsep()が廃止されてrb_path_next()が導入されましたが、非互換部分(*1)があったので、それに対処されました。
usa: 本体 [差分]
VC7での最適化でstack_extend()がインライン化されないように対応が入りました。[ruby-dev:22289]
usa: 本体 [差分]
mswin32版で、コンパイル時に、RTOSLDFLAGSなどが上書き可能になりました。
また、VC7での警告を取り除いた結果、pdbファイルを生成するようになりました。[ruby-dev:22289]
usa: lib/mkmf [差分]
拡張ライブラリのMakefileのdistcleanターゲットに.defファイルが確実に含められるようになりました。

付記

(*1) 非互換部分
find_dirsep()NULLを返すことがあるが、rb_path_next()NULLを返すことはない。


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