<< 前 ホーム 次 >>

bakaid: 20051213

--- gc.c.~1.216.~	2005-10-25 14:30:10.000000000 +0900
+++ gc.c	2005-12-13 10:46:58.000000000 +0900
@@ -589,7 +589,7 @@
     MEMCPY(tmp_arry, mark_stack, VALUE, MARK_STACK_MAX);
 
     init_mark_stack();
-    while(p != tmp_arry){
+    while (p != tmp_arry) {
 	p--;
 	gc_mark_children(*p, 0);
     }

--

static void
mark_source_filename(char *f)
{
    if (f) {
	f[-1] = 1;
    }
}

このコード、動くんですね。Cの配列のインデックスで-1を使うというのは初
めて見ました。どんな理屈なんでしょうか。

--

http://www.tokyo-np.co.jp/00/kei/20051212/eve_____kei_____000.shtml

みずほがヘタ打ったのかと思ったんだけど、そうでもないみたいですね。当初
から注文の取り消しが利かなかったっていうのは報道されてたんですけど、そ
れはどうやら東証のシステムのバグだったみたいで。

まぁ、いろんなミスが重なってるわけですけど。自分なんかは特に『人間はバ
カじゃない』っていう前提でコードを書くことが多いし、1円で売ろうがそれ
はその人の意図なんだろうと思っちゃう。逆に、『人間は過ちを犯す』ってい
う前提でコードを書く人もいるんだけど、そうすると条件が複雑になり過ぎちゃ
いますよね。1円はダメでも2円だったらいいのかとか。

こういうのは``rm *''の問題と似てて。プログラマからすると、やっぱり『テ
メーのケツはテメーで拭いてね』ってことになっちゃうでしょ。

そうすると、やっぱり取り消しが利かなかったっていうのがすっごく痛い。
``rm *''にしても、すぐC-cで止められれば被害は少なくて済むし (消えちゃっ
たファイルを復活できればもっといいんだけど)。

やっぱ、取り消しが割り込みできない設計っていうのがマズかったということ
ですよね。これ対応するとなると大変なんでしょうけど。テストもしにくいし。
多分、作ってるほうの頭からスッポリ抜け落ちてたんでしょうね。だから、割
り込みできないのは仕様って言い張ることもできるんですけど、でも『それっ
て人道的にどうよ?』ってことになっちゃうでしょ。

400億なんていう途方もない額だけに、裁判になってもかしくないですけどね。
そうしたら東証の責任が問われるわけで。それはそれで興味深い。『取り消し
の割り込みが利かない』っていうのは、どうせ明文化されてないでしょうから、
東証に責任がまったくないということにはならないでしょう。そうすると、東
証の責任は400億のうちのどれくらいを占めるのか。プログラマとして知りた
いところではあります。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails