CHECKING DNA CORNER CASE: INTEGER OVERFLOW FAILED

ICFPプログラミングコンテストの題材でまだちまちま遊んでますよ、と。
いっしゅう遅れでようやく実用的なスピード*1で動くhaskell版のexecuteができた。Ruby/SDLで線画しかしないへぼへぼなBuildを作って出力されたRNAをかけてみたら、一応出てくるヒントは読めるようになった。確かにこの最初のヒントはへぼいBuildじゃないと気がつかないかもしれない。実力者はここでハードルを上げられる、ということだろうか…。
そんなこんなで地味に喜んでいたところに、某Tくんに「CHECKING DNA CORNER CASE: INTEGER OVERFLOW FAILED」が出た*2よ、と指摘されたので修正。あっさり修正できたのはHaskell型推論のおかげな気がする。
なんだかBuildを作るのには飽きてしまったので、Tくんが作ってたCとSDLなBuildをもらって続行。PDFに載ってるプレフィックスや最初のヒントから何枚か画像を生成すると、k.inabaさんが5時間かかったところに到達した。inabaさんの答えは読んじゃってたんだけど、何故にそれでいいのかをわからないまま進むのは嫌だったのでしばし悩む。DNAインタプリタのダンプを眺めたり、endo.dna自体を眺めたりしつつ試行錯誤を散々繰り返した*3末にようやくなんとなく見えてきて、カタログに到達することができた。今は得られた情報を元に、さらにがばっと画像を抽出中。こういう時にRubyスクリプトは便利だな。
これで、ようやくスタート地点に近づける段階に来たってとこなのかな。絵の修正なんてまだ全然やってないしな。
画像できてた。真っ黒なやつとか意味わからないやつとか妙なやつとかあるなあ。さあどうしよう…。

*1:それでもendo.dnaの最後まで3、4分かかるけど

*2:去年も思ったけどバグ入りの処理系の上で、そのバグを検査するプログラムってのはそうとう格好いい。作れるようになりたい

*3:まさかここでもブルースクリーンを見るはめになるとは思わなかった。いっぱい見てげんなり