2004-03 << 2004-04 >> 2004-05

2004-04-11 (日)

  • 天気:曇り

ぼちぼちと溜まったメールの返事を出し始めました.その前にWebページを整理した方が良いかなぁ…という内容のメールが何通か.やっぱり,何処に何があるか分かりづらいですか….

TGCがSafiiの部屋を見たがってたので,Safiiのところに夕食を食べにいく(笑).

RSA暗号の素数判定関数がなぜかLinux上だと上手く動かない….OSに依存する部分なんか無いはずなので,どこか条件がおかしくてメモリを壊しているか,変なところを参照している可能性が高い.そう思って,ソースを読み直して,処理を追ってみると,条件文を高速化するために理論積じゃなくてビット積を使うように書き換えた箇所で,&の右の式の中で変数の操作をしている部分を見つけた.本来なら左側の条件が成り立つときは実行されないことを期待したものなので,おかしいはず….でも,なぜこれがVC++でコンパイルすると正常に動作するのが不明….で,そのあと色々実験してみて,面白いのを見つけたのだけど…「for(i=1;(i<10) & (i++ > 0););」って実行が終わった後のiの値はコンパイラに依存するんでしょうか?.gccでコンパイルすると予想通り11になるのですが,VC++だとi=10になる.元のプログラムは,条件ももっと複雑で,初期値も変化するのですが,どうもループが実行される回数自体がおかしいので気付きました.でも,「for(i=1;(i<10) & (i++ | 1););」と式の右側をいじると回数が一回増えます.VC++もなかなか奥が深いです(爆).

セグメンテーションエラーが出ると思って色々調べたら,libpthreadをリンクし忘れてただけだったり.というか,なんでライブラリが足りなくても警告も無くリンクできちゃうんだろうか….さらに,大学の某サーバに入ってるGCCが中途半端に日本語が混ざったエラー吐くので意味が分かりにくい….とりあえず,Windowsの他にFreeBSDとLinuxで動くっぽい.あまりこの日記に書いてると,公開されたときに私の関与がばれそうなのでこれ以上はやめよう….なんかすでに遅い気もするけど….

2004-03 << 2004-04 >> 2004-05