または私は如何にして残当したか

こちらの放置がひどく、情けないことです。研究室でやってることは基本的にイミフというか、文章に起こしにくいというか…。未発表の研究なるものを言ってしまうのもまずいっぽいし…。


研究室配属の件ですが、ilabで絶賛希望状況調査中です。私の予想に反して(爆笑)第1希望が5/8人もいるようなのですが…。私は煽り(爆笑)の可能性を否定できないでいるのですが…。
※直前期に更新が止まり、自分の希望変更だけできるようになる


アラインメントミス*1するという謎の挙動を調査するためごちゃごちゃしていたところ、一度VMの部分だけを普通にPCのLinux GCCで(-Dprintk=printfなどして半ば無理やり)コンパイルして調査しようと思ったのです。

gcc -O0 -g ...

-gでデバッグ用情報をつけ、-O0(オーゼロ)で最適化を切ります。が、すると…

Segmentation Fault

そして…-O2(最適化オン)だと普通に動く。……これはまずい。非常に良くない。騒いだりしてもなにも好転しないことは知っているので気分だけは落ちついているが…。
gdbで見ると(VMの)スタックからpopしたunionのポインタがぶっ壊れている、スタックが正しく戻せていない様子。
仕方ないので-gをつけて-O0と-O2の部分だけ変えたバイナリを生成する.PHONYターゲットをMakefileにやっつけで作成。2つの端末からgdbで同時実行…。
そしてついに変数vmStackPtrの値が最終的に1ずれていることを突きとめた(最適化かけると変数がメモリから削除されてたり、メモリへの反映が遅くなったりしてgdbで追いかけるのがつらい…)。そしてvmStackPtrの宣言にvolatileをつけ(ヘッダのextern宣言も合わせないといけなくて面倒だった)てvmStackPtrに対する最適化を止めてやると…。-O2でも死んだ。
vmStackPtrが同じところと違うところで挟みこんで数えると20行程度。

gccにバグがあるか、このコードが実は未定義動作のアレかの二択だが、ほぼ間違いなく後者だろう…。
twitterより

vmStackPtrを使っており、かつ未定義の動作を引き起こすような部分をガン見して探す。幸いターゲット量は少ない。

vmStackPtr -= vmStack[--vmStackPtr].intValue;

アッー!

vmStackPtr -= vmStack[vmStackPtr - 1].intValue;
vmStackPtr--;

どうやらこういうことがしたかったらしい。
そう、同じコンパイラ(gcc)でも最適化レベルによって挙動が変わることがあるのが未定義動作の怖いところ…。言語がクソともいえるし、何がどうとでも言える。
※かいつまんで書いてますが、5時間くらいかかってます。


…これって研究室の宣伝になるの?

*1:例えば4の倍数でないアドレスに4バイトロード・ストア命令を実行するとCPU例外が発生する。実はx86系では遅くなるだけでなんとかしてくれてしまうからなじみがないかもしれないが、そういう対応の方がまれ。

あれ?

は?


D
D
祝日の上級者大会勢、選ばれるランセレようむ、すべてのフラグは整った。
帝王の拳、南斗人形拳に構えはない
「絶対台風なんかに負けたりしない!」
D


やはり初心者だった。


ネットがぶっ壊れてる間にしたためた振起のテキスト、一通り完成したらアリスwikiにでも寄稿しようかね。あとはダブル振起と、追加するなら立ち回りでの人形の設置位置かな…。めくり狙いに偽装した折り返し振起は状況と相手が限られすぎるからいいや…。

ネット復活?

なんだか水曜日の夜からネットがまったくつながらなくなって今日帰ったら普通に直ってた。謎。
なので、金曜の夜の、明日のミーティングは9:30からにしますというマジキチメールを華麗にスルーすることに成功(爆笑)。
今日はB3向け研究室説明会後の懇親会に行ってきました。どうやら今年はハードウェア系が大変人気が無いらしい…。8人*1とかほんとどういうことなの…。ここからが本番だが果たして…。


Y研のB3向けページが今日公開されたようです。変な崎の字が害悪すぎてLinuxのエディタで残当しやがる。

  • 11/8(火)5限終了後 18:10〜@ディスカッションルーム1(14-211)
    • 説明会&見学会@K2(教室集合後、18:30矢上発のバスで移動)
    • 見学会後にピザ会  
  • 11/10(木)5限終了後 18:10〜@ディスカッションルーム2(14-212)
    • 説明会
  • 11/11(金)5限終了後 18:10〜@ディスカッションルーム2(14-212)
    • 説明会&見学会@K2(教室集合後、18:30矢上発のバスで移動)
  • 11/15(火)5限終了後 18:10〜@ディスカッションルーム3(14-213)
    • 説明会
  • 上記日程以外の場合は随時メールにてK2の研究室見学受付

入るつもりのない人でも神棚は拝んでおくべし。
やべえおれのB3へのメッセージ書いてねぇ。


ここにも研究室での様子を書きたいと思うんだけどねえ。なんというかよく分からず動かないというかくそい状況が多くて書く気になれないことも多いんだよねえ。

  • Gitでブランチ切ってどうのこうのくらいまでやっと慣れてきた
  • JVMやってます
  • USBのデバドラ書けって言われてる

こんな感じ?

  • ロボット班のページを送られてきたのに差し替える
  • 自分のメッセージを書く
  • 月曜日にICPCのナントカ届けのために10:00までにはんこを持っていく

*1:去年5人。

B3向け懇親会のお知らせ

家のネットが残当して前日になってしまいましたが告知。


15:45〜 懇親会受付
16:00〜18:00 懇親会@生協食堂1F


Y研究室のソフト班代表で私が行くことになりました。わろすだね☆
今年は松谷先生が来たからか8人だそうだけど、これは実際どうなのか…。

睡眠調整してたらこんなことに…

ということで毎週土曜日開催のつもりなんですが、前日じゃねーか。部室集合ってやつですね。


先週は2人の要望を断固却下して大根を拒否しましたが、今回は味噌タイプのレシピを持ち出してもいいでしょう。いや、やっぱタケノコ鍋やな…。


MHP2ndG始めました(爆笑)。
前から言ってますが2ndのGでない方までしかやったことなかったんですよね。ナルガ知らなかったってやつ。アカムトルムも知らなかったってことは多分上位まで行って1人だとだるくなって詰んだのかな…。
やはりこちらのランスは3rdとは別物だと考えた方がよさそうやな…。火力はあるけどアクションは弱いっていうか。斬撃・打撃のダメージの大きい方が適用ってやつで、カニの殻壊せるくらいかとおもってたら、実は金銀の頭をポコスカいけるっていうのを知って歓喜
キリン「俺との闘いは避けてきたのではなかったのか?」
「驕るなキリン!貴様の弱点などとうに知っておる!」
→上位装備で薬が尽きかけるくらいにボコボコにされました☆