Quote from: satoshi on August 09, 2010, 06:50:41 PM
SSE2はわずか2%の高速化しか追加せず、互換性の問題に見合わないと判断した。より安全なオプションを選ぼうとしていた。
Crypto++が実行時にSSE2を使用するかどうかを決定しているようには見えない。ブロックカウントパラメータを決定するためにSSE2を検出する箇所が1つあるが、SSE2関連の部分はすべてコンパイル時の#ifdefであり、実行時にどのように切り替わるかわからない。見ている場所が間違っているのかもしれない。
すべてのmakefileでSSE2を有効にすべきだろうか? 64ビットでコンパイルする人がいる場合はそうしなければならないようだ。
Linux 0.3.8リリースの64ビット部分を再コンパイルする。
非SSE2マシンではクライアントがクラッシュするから、その点は理解できる。 実際にはどちらが簡単かによる。互換性を壊すような機能を有効にすると、痛い目に遭うのは非技術系のクライアントユーザーだけだ。彼らの視点からすると、なぜか動かないとしか思えない。
ビルドのメモを充実させた方がいいと思う。例えば(64ビットシステムでコンパイルする場合は、この部分を必ず行うこと)のように。
一つのソースブランチで複数のオペレーティングシステムにクロスコンパイルするのは常に厄介な話だ。 Grin