今日の雑記

生きることでいっぱいいっぱい

久々に D

を触っている。現状の最新バージョンは 0.162。今回はバグフィックスに終始してるみたいね。
0.161 ではなんらかしらの仕様変更というかなんかがあった(今まで使っていたのはバージョン 0.160)。そのせいかどうかは解らないけど、最新版にしたら挙動が変になった(というか止まる)。0.160 に戻したら動いたのだが。D 触り始めて2年になるけど、コンパイラのバージョンアップで挙動が変わったのは初めての経験だ。今まで C に毛が生えた程度の使い方しかして無かったし。まあ、なんか変な事してるんだろうねボクのプログラムの方が。
しかし久々にはまった。「コンパイラのバージョンアップ」に思い当たるまで結構時間を費やしてしまったよ。ボクの癖で「僕が何か変な事しているに違いない」と思い続けてて、まあ、そのこと自体は今も疑いの余地は無いのだが、「なんか変なソースのいじり方したか?」と思い始めてからがもう。追加した部分を消しても挙動が変わらないし、戻しても変わらないし。その時点で何か気付けよという話でもあるが。
とりあえずの教訓として、「コンパイラのバージョンを上げたらリビルドすべし」だな。本来はこんなこと書かなくても考えずに実践すべきなのだが。油断したよ今回ばかりは。今まで問題が無かっただけに悔やまれる。
しかしなんだなぁ。これからどうしよう?いつかは解明して解決しなければならない問題だしなあ...。
とりあえずの現象として今解ってるのは、

  • 自機移動用のカーソルがなぜか出ない。
  • 敵が弾を撃つタイミングで弾がでない上に一切の情報が更新されない。
  • そしていずれ止まる。下手すれば一発目で。
  • なので当然敵を出さなければ止まらない。

恐らくメモリ関係のバグだねえ。こちらで把握できる限りでは問題なさげなんですが...。
ちなみに、昨日知人に見せたバージョンでのバグは、非常につまらないミスで止まってましたとさ。こういうつまらないバグというかミスをするから、重要なバグが出た時に迷走するのよねぇ...。