<< 2024-06-23のCコンパイラゼミ | Cコンパイラゼミ2024 | 2024-07-21のCコンパイラゼミ >>

やるぞ

8時間格闘した結果、ソースコードのすべてのファイルが独自コンパイラでコンパイルできるようになった。けれど、それをリンクして動かそうとするとPIE周りのエラーが出る。悩んでも解決できなかったのでとりあえず今回はここで終わり

持っていったほうが良いものなど

PG_MANAさんのアドバイス

セキュリティキャンプ2017参加記 | PG_MANAの雑記

  • 名刺は200枚くらい刷っておくと良い。意外と時間かかるので早めが良い
    • ラクスルで刷るのが良いらしい
  • 洗濯機はあるが、休み時間がないので回すタイミングがない
  • モニタは用意されないので、モバイルディスプレイを持っていくと良いらしい

セキュキャンを終えたときの振り返り

  • 名刺
    • 200枚刷ったら余った。でも100枚以上は配ったっぽいのでちょうどよかった説はある
    • 印刷用紙にレーザープリンターで刷ったけれど、微妙に位置がずれたり厚紙なせいでレーザープリンターによっては入らなかったりと色々苦労した。印刷所に依頼するほうが色々楽
  • 洗濯機
    • ほんとに毎日忙しかったので、服があるなら5日分持ってったほうが良い
  • モニタ
    • ゼミによっては用意されてた。会場側で用意してほしければ講師に聞くのは良さそう?

main.cを自作コンパイラでコンパイルしたい

  • size_tが必要。仮と思ってtypedef int size_tとしたら、エラー出力のあたりでセグフォするようになった
  • size_tにintを使ってるのが悪いんじゃないかと推測。long型の実装を進めることに
  • なぜか (long)18446744073709551616 != 0になってしまうという問題が発生。ついでに(long)4294967296 != 0もバグってるけれど、こっちは理解できる。なぜ???
  • 色々探してたら、Nodeのint_valがint型になってるのを発見。これ関連でバグってるのでは?
  • TokenとNodeは影響範囲が大きくて、修正を見送る。テスト部分は2147483647 * 2を多用することでその場を凌ぐことにする
  • エラーメッセージをよく見てみたらerrnoが悪いらしい。試しにexternを外してみたら動いた。なんだったんだ。
  • longの実装は徒労だったかもしれないけれど、main.cでlongを使ってるところがあるし、とりあえず良しとする