[#20490] [BUG] evalがらみでSIGSEGV — "yamamoto madoka" <dan@...2.so-net.ne.jp>
こんにちは、山本 円と申します。
[#20495] 不正なバイト列とのマッチ — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#20499] Re: [ruby-cvs] ruby/ext/curses: * string.c (rb_str_shared_replace): clear flags before copy. — nobu.nakada@...
なかだです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20525] [BigDecimal] changing rule of coerce — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
小林です。
まつもと ゆきひろです
小林です。
小林です。
前田です。
小林です。
小林です。
小林です。
小林です。
小林です。
[#20570] Marshal upgrade — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
新井です。
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#20580] add library(Re:ruby-dev:20570) — たむらけんいち <sgs02516@...>
たむらです。
なひです。
In message <038d01c349cb$eaad71d0$93222fc0@sarion.co.jp>,
まつもと ゆきひろです
In message <1058171960.400840.10041.nullmailer@picachu.netlab.jp>,
話をそらしてしまうかもしれませんが、
In message <20030714.183104.09092354.taca@back-street.net>,
In message <20030715.013655.424936247.gotoyuzo@kotetsu.does.notwork.org>
In message <20030715.025907.26217115.taca@back-street.net>,
In message <20030715.051853.968499478.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.163444.09092937.taca@back-street.net>,
In message <20030721.191306.60866533.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.211845.20473808.taca@back-street.net>,
In message <20030722.002037.774147317.gotoyuzo@kotetsu.does.notwork.org>
In message <20030722.003236.72433302.taca@back-street.net>,
[#20582] rexmlのuconv依存 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
In article <1057770842.878440.16422.nullmailer@picachu.netlab.jp>,
なかだです。
In article <200307100751.h6A7pLFs003667@sharui.nakada.kanuma.tochigi.jp>,
[#20606] ruby-1.8.0 on BSD/OS — OHARA Shigeki <os@...>
大原です。
[#20613] compiling Ruby on AIX (powerpc-ibm-aix4.3.3.0) and Alpha OSF/1 (alphaev67-dec-osf5.1) — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
なかだです。
西松です. お返事が遅くなり申し訳ありません.
[#20631] SOAP4R in 1.8.0? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20655] frozen ThreadGroup — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
In article <1058719939.886480.22830.nullmailer@picachu.netlab.jp>,
[#20680] 1.8.0 on IA64 etc. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20691] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20716] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20748] [BigDecimal] exception handling — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
[#20765] Re: [ruby-cvs] ruby/lib: * lib/tmpdir.rb: new library to get temporary directory path, — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20780] complex.rb — Masahiro TANAKA <masa@...>
complex.rb についての修正案を[ruby-math:00543]で提案しましたが、その後
まつもと ゆきひろです
けいじゅ@いしつかです.
At Tue, 22 Jul 2003 17:30:31 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
けいじゅ@いしつかです.
At Sat, 26 Jul 2003 06:52:21 +0900, 石塚圭樹 wrote:
[#20791] 1.8.0 preview4 schedule — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
永井@知能.九工大です.
[#20795] warning: terminated thread — Masatoshi SEKI <m_seki@...>
咳といいます。
mput です。こんばんわ。
まつもと ゆきひろです
[#20800] 0**(-1) with rational — Tanaka Akira <akr@...17n.org>
そういえば思い出したのですが、rational を require しているときとしてい
At Wed, 23 Jul 2003 03:30:41 +0900, Tanaka Akira wrote:
[#20810] Rational 始めました。 — Shin-ichiro HARA <sinara@...>
原です。
けいじゅ@いしつかです.
In article <200307241940.EAA14225.keiju@ishitsuka.com>,
けいじゅ@いしつかです.
In article <200307271500.AAA04363.keiju@bc.mbn.or.jp>,
[#20818] ThreadGroup#wait — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#20868] ruby 1.8.0 preview4 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20887] ext/openssl undefined BN_pseudo_rand_range — Kazuhiro Yoshida <moriq@...>
もりきゅうです。
[#20915] [BUG] errno == 0 — Kazuhiro Yoshida <moriq@...>
もりきゅうです。win32だけかもしれません。
まつもと ゆきひろです
もりきゅうです。
[#20932] move ChangeLog — Tanaka Akira <akr@...17n.org>
提案なんですが、1.8.0 が出たらそこまでのぶんの ChangeLog を移動しませ
[#20949] multiple Tk interpreter support — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#20954] ruby 1.8.0 preview5 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
もりきゅうです。
Siena. です。
[#20957] [BigDecimal] conflict between Numeric#div and BigDecimal#div — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
At Mon, 28 Jul 2003 18:26:20 +0900, Tadashi Saito wrote:
まつもと ゆきひろです
At Mon, 28 Jul 2003 21:16:08 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
At Tue, 29 Jul 2003 14:43:19 +0900, Yukihiro Matsumoto wrote:
原です。
[#20989] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#21027] -W option — WATANABE Hirofumi <eban@...>
わたなべです。
[ruby-dev:20853] Re: compare between String and Exception
まつもと ゆきひろです
もう覚えていない人も多いでしょうが、1.8では<=>が型不整合で
nilを返す仕様は良くないと田中さんが指摘した件です。
結論としては1.8.0ではnilのままです。理由は
* これから仕様を変更してテスト・デバッグするには時間がない
* パフォーマンスに影響を及ぼす可能性が高い
の2点です。
将来のバージョンで例外処理のコストが下がったり、あるいはそも
そも例外を捕捉せずスルーしてもかまわないことがはっきりすれば、
今後また仕様変更する可能性はあります。
In message "[ruby-dev:20284] Re: compare between String and Exception"
on 03/05/23, Tanaka Akira <akr@m17n.org> writes:
|
|In article <1053418411.495451.20782.nullmailer@picachu.netlab.jp>,
| matz@ruby-lang.org (Yukihiro Matsumoto) writes:
|
|> 要するに
|>
|> * <=>が成立しないケースは厳密には2種類ある
|> + そもそも型が合わない
|> + 型は合うが順序関係が成立しない
|> * これらを区別するため、前者は例外、後者はnilになるべきだ。
|>
|> ということですよね。
|
|はい。
|
|> 私の考えとしては
|>
|> * 2種類を区別する必要があるのか
|>
|> ほとんどの場合、ユーザが関心あるのは、比較できるかできな
|> いかだけ。
|
|同意できません。ほとんどの場合、ユーザは比較できるときのことしか関心を
|持たないように思います。
|
|したがって、比較できないときに対処するコードが少なくなるような仕様が良
|いと思います。
|
|> 「情報は多い方が良い」とは限らない。むしろ場合分けが多く
|> なるかも。
|
|反論します。普通のプログラムではこの例外はバグを示すため、rescue する
|必要はありません。つまり、場合分けは多くなりません。
|
|そして、例外は nil よりもバグを早期に検出します。nil を返した場合には
|問題を検出するにはユーザが自分で検査しなければいけませんが、例外ならな
|にも書かないで検出されます。
|
|もちろん、多くの場合、正しいプログラムは比較できないものを比較したりは
|しないので、これはユーザがバグを追いかけているといった状況の話です。
|
|例外にしておけば、なにもしなくても検査が入っている状況になり、ユーザは
|無用にプログラムを疑わなくて済みます。
|
|まぁ、<=> を直接使うのは主に sort のブロックで、その場合は nil を返せ
|ば例外になるから、この理由はちょっと弱いかもしれませんが。
|
|> 半順序関係はクラス/モジュールだけだし、理由はともかく順
|> 序関係が成立しないのだから、差別する必要はない。
|
|反論します。この情報の欠落は反対称律の実現を厄介にします。
|
|% ruby -rdelegate -e '
|class C; end
|class D; end
|c = SimpleDelegator.new(C)
|p c < D
|p D < c
|'
|nil
|-e:6:in `<': compared with non class/module (TypeError)
| from -e:6
|
|例外を出すべきかどうかという条件判断を <=> がしてくれないため、その判
|断を <, <=, >, >= に埋め込む必要があります。そして、<, <=, >, >= を
|<=> の呼び出しによって実現するのであれば、比較可能なクラスは相互に相手
|を知っていなければなりません。その結果、比較可能な後からクラスが増える
|状況を扱うのが困難になります。
|
|もちろん、組み込みの中で半順序なのは Module だけで、Module と比較可能
|なクラスを後から付け加えるというのは非現実的ですが、<=> というメソッド
|の使いかたの範を示すという意味でよろしくないと思います。
|
|> * ないとすると、成立しない場合には、例外かnilか
|>
|> 例外だとエラーメッセージに内部利用されている<=>が登場す
|> ることになる
|
|これはまったく考えていませんでした。なるほど。
|
|> これを避けるにはコストのかかる例外補足が必要
|>
|> => nilの方が良い
|>
|> ということで、現状維持を推します。
|>
|> nilから適切なメッセージを持つ例外に変換する方が、例外を補足
|> して適切なメッセージで再発生させるのより安いというのも動機の
|> 一つです。
|
|効率に関しては反論しません。
|
|たしかに、上で述べたような利点を実現するのに引き合うかどうか、というバ
|ランスを考慮する必要はあると思います。
|--
|[田中 哲][たなか あきら][Tanaka Akira]
|
|