molecular coordinates

/var/log/coord_e.log

セキュリティ・キャンプ全国大会2019に参加しました

昨日(2019/8/17)までセキュリティ・キャンプ全国大会2019に参加していました。私は集中開発コースの「Y-Ⅱ Cコンパイラを自作してみよう!」ゼミに参加しました。

セキュキャンとは?とか応募用紙*1についてはここに書いてあるよ↓

セキュリティ・キャンプ全国大会2019に参加してきます - molecular coordinates

全体を通してCコンパイラを書いていたんですが、それ以外にも色々あったので時系列で書いていきます*2

1日目 8/13

開会式などの後、LT大会がありました。尖った人たちの尖った話が聞けて楽しかったです。 kintoneを全く見ておらずLT希望を取っていたことに気づかなかったのが悔しいですね...

グループワークがあり、キャンプ終了後に活動する仲間を見つけてグループを組むといった趣旨のものでした。有志4人でチームを組み、プログラミング言語処理系に高度な言語機能を実装するための知見を一般に普及させる取り組みをやろうとなりました。

この日は講義の時間がなかったのでCコンパイラのコードが書けなかったです。正直5日間コードが書けると思っていたので拍子抜けでした(プログラムはちゃんと読もうな) (でもグループワークもLT大会もめちゃー楽しかったのでいい1日でした)

2日目 8/14

初期化子*3を実装しました。初期化子しんどくて、見た目が似ていても{グローバル,ローカル}な{値,配列}でどれも全然違うことをやらねばならんのですよ

でもこの日は一日中コードを書ける日でした。幸せの具現化ですね。

一方で1日が終わるにつれて「これ期間中にセルフホストできないんじゃね?」みたいな焦りがひどく、部屋に帰ってからは暗黙の型変換をガーッと実装していました

3日目 8/15

講義時間中はstructを実装しました。部屋に帰ってからtypedefを実装しました。enumが生えたのもここら辺じゃないかな

期間中のセルフホストを諦めて*4、明日からは別のことをやろうと思っていました。

この日と4日目に"会員企業のお仕事紹介"があったのですが、kintoneを全く見ておらず希望を取っていたことに気づきませんでした。そういうこともあってどこの部屋にいけばいいのかわからずあたふたしてしまった。

4日目 8/16

色々やった。

  • sanitizerを噛ませると発生しなくなる気味の悪いのバグを潰した*5
  • ruiさんに再配置について*6事細かに教えてもらった。今までずっと疑問だった部分が晴れて本当によかった。
  • レジスタ割り当てのバグを取るための方法を考え、作業を始めた。

Yトラック内で発表会がありました。YトラックにはOS開発ゼミとCコンパイラゼミがありますが、そこの全参加者が一人二分で全員話しました。ほんわかした雰囲気で進捗が報告されており楽しかったです。

その後ラストナイトイベントというやつがあり、本を得ました。ありがとうございます。

部屋に帰ってからは発表資料を作ったりレジスタ割り当ての改善を続けたりしていました。

5日目 8/17

荷物をどうにかしなければいけなかったので朝飯が食べられませんでした。そもそも八時起床をやめろ

講義の成果報告のLTをしました。

その後閉会式などがあって終了*7です。

思うこと

いい環境で好きなことをできるのは本当に楽しい

コーディングに集中できる環境(ディスプレイ、水分、お菓子)がありつつ実装で困ったことがあればすぐ講師の方々に相談できる最高の空間がありました。そこで作業している時間がとても楽しかったです、あの環境を用意してくださった運営やチューター、そして講師の方々には心から感謝しています。

また、コンパイラや言語処理系が好きな人たちと話すのは楽しかったしいい刺激になりました。1日目に部屋に帰った時は「おれが見ていた世界は狭かったんだな...」みたいな謎の感情をやっていた

飯の時間に多種多様な分野の人々と話したのも楽しかったです。めっちゃ面白い人だな〜と思って話していた人が、聞けば有名なプロだった、なんてことも

一方で、参加前はセキュリティキャンプについて5日間のコーディング合宿みたいなもんだと思っていたのですが、その認識は間違いでした。書ける期間は実質3日だし、2日目以外は夜に色々と他のイベントがある

なのでもっとコード書きたかったというのはあります*8 いやそれは趣旨と違うやろ せやね

来年以降参加する人へのアドバイスですが、参加前はプログラムとkintoneをよく確認した方がいいです。特にkintone、結構大事なアンケートが来ていたりするので日常的なチェックを忘れずに...

進捗はどうですか

満足したらまた別にブログ書くから待ってね

成果報告時点の進捗はこんな感じ↓

まとめ

五日間ありがとうございました!

*1:そういえばあれ紙じゃないじゃん

*2:語調が統一できなくて、日本語は難しいなと思っている

*3:int a[] = {1, 2, 3}; みたいなやつの右辺っぽい部分

*4:? https://twitter.com/coord_e/status/1161630222422122496

*5:結局初期化忘れ

*6:GOTやPLT、PICとPIEについて

*7:終了

*8:コーディング合宿とか知ってる人いたら教えてください