Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
exit・exit!メソッドがtrueとfalseを受け付けるようになりました。実行環境に対する成功/失敗の通知を記述するポータブルな方法、ということになります。[ruby-dev:22067]EXIT_SUCCESSやEXIT_FAILUREに相当する値が0とか1などと直接ソースに書かれていたのが修正されました。abortの代わりにexitを使うようになりました。Pathname#realpathの引数はobsoleteになりました。IO#read中に発生する例外は、例外DRb::DRbConnErrorとして投げ直すようになりました。ENV.has_value?・ENV.indexが、実は環境変数値を完全一致ではなく前方一致で判定していたという問題が修正されました。Rinda::TupleSpaceProxy#read・Rinda::TupleSpaceProxy#read_allが修正されました。ごめん、わかんないPATHのチェックで、sticky bitをいつも尊重するようになりました。[ruby-talk:86273]Time#succメソッドが追加されました。Timeオブジェクトを+1秒します。['A', '', 'B']という配列をTkのリストに変換すると"A B"となっていましたが、"A {} B"となるようになりました。[ruby-talk:86746]CDLDFLAGS・LDFLAGS・XLDFLAGS・DLDFLAGS・LDSHAREDの各マクロに対して、今までは必要になるとこれらの値を置き換えていましたが、そうではなく新しい値を既存の値に追加するようになりました。XCFLAGSはrubyのコンパイルのみに使用されるものなので、マクロCFLAGSには影響させないようになりました。ARCH_FLAGがconfig.statusに出力されるようになりました。ARCH_FLAGがマクロCFLAGS・DLDFLAGSに作用するようになりました。CPPFLAGSがマクロCPPFLAGSに作用するようになりました。Config::CONFIG["XCFLAGS"]は使用しなくなりました。代わりに、Config::CONFIG["ARCH_FLAG"]を使用します。DLDFLAGSとARCH_FLAGが、TRY_LINKやlink_commandに作用するようになりました。[ruby-dev:22085]XCFLAGSの中身をconfig.statusに出力するようになりました。ARCH_FLAGをconfig.statusに出力するようになりました(たぶん中身は空です)。Pathnameオブジェクトなども受け付けるように、内部で#to_strを呼ぶようになりました。[ruby-core:1795]rb_num2int()・rb_fix2int()・rb_num2uint()・rb_fix2uint()の戻り値がそれぞれint・unsigned intからlong・unsigned longに変更されました。情報の落ちを防ぐため、だそうです。[ruby-talk:85377]rb_num2uint()・rb_fix2uint()で、元の値が負であれば範囲チェックを行わなくなりました。swap16()・swap32()というマクロが追加されました。それぞれ、16bitまたは32bitのエンディアン変換を行うマクロです。旧来、shortが16bitの環境下でのswaps()、longが32bitの環境下でのswapl()と同じものです(というか、これらのマクロはswap16()・swap32()を使うように変更されました)。htov16()・htov32()・hton16()・hton32()というマクロが追加されました。htov*()はリトルエンディアン化、hton*()はビッグエンディアン化を行います。[ruby-talk:85377]Numeric#singleton_method_addedメソッドが追加されました。このメソッドは、Numericオブジェクトに特異メソッドが定義されたときに呼び出されるわけですが、この中で例外TypeErrorが発生するようになっています。Fixnumオブジェクトには特異メソッドが定義できませんでしたが、Bignumオブジェクトには定義できていました。この変更により、Bignumオブジェクトにも特異メソッドが定義できなくなります。
_ というわけで、RDoc キタ━━━━(゚∀゚)━━━━ッ!!
既にsite_rubyにRDocを入れてる人は、忘れずに削除しましょう。
alias_methodに文字列が渡されている場合を正しく処理するようになりました。ということだと思います。Test::Unit::Assertions#assert_no_matchメソッドの出力するメッセージが間違っていた問題が修正されました。Test::Unit::AutoRunner#run内部でexitするのはやめて、呼び出し元に結果を返すようになりました。これにあわせて各test runnerも修正されました。Test::Unit::AutoRunner.run・Test::Unit::AutoRunner#process_argsは引数にテストのリストを受け取るようになりました。Config::CONFIG['DLDFLAGS']の内容が最終的にMakefileマクロのDLDFLAGSにだぶって出力されていた問題が修正されました。これだとまつもとさんが別のディレクトリでビルドするとまずいですね。の部分の対応です。
formatメソッドの呼び出しが全てKernel.formatと記述されるよう変更されました。たまたまformatというメソッドが定義されて上書きされてしまうという問題への対処らしいです。YYMAXDEPTHが小さすぎてmake testが通らなかったりする、という問題が修正されました。具体的には、コマンド名がyaccの場合は強制的に定数YYMAXDEPTHを10000に変更しています。[ruby-core:1873]class << クラス名という宣言が来て、そのクラス名が未知の場合、そのクラス名を暗黙のうちに宣言されたものとみなすようになりました。
_ 個人的な話をすると、今日初めてformatというメソッドの存在を知りました...
普段はsprintfとかString#%を使ってるのです。
ARGFからのreadがおかしな挙動を示していた問題が修正されました。[ruby-dev:21969]Pathname#link・Pathname#symlinkはobsoleteとなりました(警告が出ます)。かわりに、Pathname#make_link・Pathname#make_symlinkの各メソッドが追加されました。WEBrick::GenericServer#start・WEBrick::HTTPResponse#start_threadで、素のrescueではなくrescue Exceptionを使って全ての例外を捕捉するようになりました。StandardError以外の例外が発生してもスレッドが黙って死ぬことには変わりはないので、全ての例外を再送すべき、ということのようです。WEBrick::GenericServer#start_threadのensure節で、例外の発生タイミングによってはaddrがnilの場合もあるので、その対応が追加されました。OpenSSL::X509::Certificate.new.inspectというコードがSEGVする問題が修正されました。[ruby-core:1881]SOAP::Envモジュールが追加されました。環境変数HTTP_PROXYに関連する処理を担当するモジュールです。SOAP::WSDLDriver・SOAP::RPC::Driver・WSDL::Importの各クラスはこれを利用するようになりました。[ruby-dev:22055]あたり?SOAP::Propertyクラスが追加されました。SOAP::HTTPPostStreamHandler・SOAP::WSDLDriver・SOAP::RPC::Driverの各クラスはこれを利用するようになりました。SOAP::NetHttpClientクラスにbasic_auth・ssl_config・cookieを扱うインターフェースが追加されました、が、現時点では無効だそうです。XSD::Charset.encoding=が追加されました。わかっていてutf-8以外を使用したい時に使います。[ruby-list:38857]Object#sendを使っていた部分が残っていたので、Object#__send__を使うように変更されました。IO#read中の例外はDRb::DRbConnErrorとして投げなおすようになりましたが、IO#write中のものも同様に投げなおすようになりました。[ruby-dev:22132]
_ FrontPageにご自由にページの追加、修正、変更を行ってください。文句を言う前に指を動かそう!
と書いてあって、じゃあ誤字くらいは直していこう、と思ったのですが、直したいそのページが凍結されてたり。
_ 具体的には、お読みくださいの中のファウラー氏の名前のスペルが間違ってます。
_ とだけ書いとくと紹介としては最悪やな。
えーと、「面白かった、ためになった、すばらしい」と思ったから、誤字修正くらいは手伝おう、と思ったわけなのですよー。
ぜひとも一読すべし。
_ 金曜の夜くらいからおうちメインマシンのHDDがおかしくなった。
負荷をかけると沈黙してしまう。
_ いろいろ手を尽くしてみたけれど、どうもダメっぽいので、諦めて交換用のHDDを買ってきた。
最近のHDDは120GB 7200rpm 8MBキャッシュで1万円しないのかー。しかもヨドバシ価格なのに!
_ びくびくしながらNorton Ghostで中身をコピー。
どうにかコピー中くらいは元のHDDももってくれた(というか、リニアなアクセスなら大丈夫なんだろう、きっと)ので、問題なくデータの移行も完了。Ghost萌え。
_ 書くの忘れてたけど金曜日に1.8.1-preview3が出てますね。
mswin32のバイナリも土曜日の朝に出てます。
_ 前にリリースにまつわるさまざまなことというのを書いたけど、これは「リリースされた後で必要な作業」ですね。
では実際にリリース作業そのものには何が必要なのかを推測すると、必須事項と必須でない(かもしれない)事項を取り混ぜて書くと、
Test::Unit::Assertions#assert_raisesは複数の例外を受け付けるようになりました。[ruby-core:1884]Test::Unit::Assertions#assert_nothing_raisedは、メッセージ以外の引数が実際にExceptionクラスの子孫かどうかを確認するようになりました。errnoがマクロであるため、dln.cのコンパイルがうまくいかなかった問題が修正されました。(実際にコンパイルエラーだったのかコンパイル自体は通っていたのかは不明)rescue節で捉えて再送する場合、$!が完全には保存されていなかったという問題が修正されました。[ruby-talk:86697]StringIO#readの処理が上記のio.cの修正に追従しました。at_exitの実行中にGCが走ると(走らなくても?)SEGVしていた問題が修正されました。[ruby-dev:22144],[ruby-dev:22154]Module#extendedというフックメソッドが追加されました。モジュールでこの名前のメソッドを定義しておくと、このモジュールがextendされたときに呼び出されます。[ruby-list:38866]SOAP::Property.loadメソッドが追加されました。IOストリーム・ファイル・プロパティファイルのいずれかからプロパティを読み込みます。なお、プロパティファイルは$:のどこかに置いてください。SOAP::WSDLDriver・SOAP::RPC::Driver・WSDL::Importerの各クラスもこれに追従しました。Test::Unit::Assertions#assert_raises・Test::Unit::Assertions#assert_nothing_raisedは、引数リストの最後にメッセージを指定することもできるのですが、Classじゃなければメッセージだとみなすようになりました。先の変更の時点では、Exceptionの子孫でなければメッセージだとみなしていました。SOAP::NetHttpClient#proxy=メソッドで、proxyとして指定されたものが有効な内容かどうかをチェックし、そうでない場合は例外を投げるようになりました。SOAP::Env.getenvメソッドは、指定された環境変数名を全小文字化したものも探していましたが、全大文字化したものも探すようになりました。O_NONBLOCKを指定された場合に例外が発生していたのが修正されました。URI.regexpメソッドが追加されました。[ruby-dev:22121]ARGFからの読み込み時にバッファオーバーフローしていた問題が修正されました。Test::Unit::AutoRunnerから各test runnerからの依存性が(必要になるときまで)排除されました。[ruby-core:01901]・[ruby-list:38869]runメソッドが第二引数に出力レベルを受け取るようになったりしています。Test::Unit::Assertions#assert_raiseメソッドが追加されました。Test::Unit::Assertions#assert_raisesの別名ですが、後者はRuby 2.0までに段階を追って廃止される予定です。[ruby-core:1890]Document::DECLARATIONの使用は廃止されます。新しいデフォルトの宣言の取得はXMLDecl::defaultを利用してください。stringが、適切にElementノードを取り扱うようになりました。NEED_IO_SEEK_BETWEEN_RWが定義されるプラットフォームで、io_seekによってEOFがクリアされてしまうことがあった問題が修正されました。
被捕捉アンテナ類
[\ay antenna (testing)]
[Ant]
[Antenna-Julia]
[LayserあんてなV2]
[nAntenna]
[nuance de Antenna]
[Rabbit's Antenna]
[Read List]
[Ruby hotlinks 五月雨版 (るるりん。)]
[してたま (私的アンテナ with たまてばこ)]
[ただのあんてな]
[ちゃらんぽらん]
[でこぽんリンク]
[なよろアンテナ]
[にっきトレーサー]
[偽善者あんてな - 2nd season -]
[湘南日記放送局(SDB)]
[はてなの各アンテナ]