月報について
ここ数年、月の初めに前月の月報を書いてたんだけど、今年はやめにしようかと思う。
あまり深い理由はないのだけど、面倒になってきたというのが一つで、やめたらどうなるか実験してみたいというのがもう一つ。
代わりに、もっと短いスパンで投稿していきたい。
ここ数年、月の初めに前月の月報を書いてたんだけど、今年はやめにしようかと思う。
あまり深い理由はないのだけど、面倒になってきたというのが一つで、やめたらどうなるか実験してみたいというのがもう一つ。
代わりに、もっと短いスパンで投稿していきたい。
今年書いたブログを見つつ振り返りを。
イベントというと今年はまあオリンピックかなあ。なんかずっと前のような感じがするが。ワクチン打ったのも今年か。
Shiikaについてはパターンマッチ、enum、Maybe型を実装した。処理系ミートアップのみなさまにはお世話になりました。
今月はコンパイラ全体が一つのRust crateになっていたのを、いくつかのcrateに分割した。依存関係が各ディレクトリのCargo.tomlに明示されるので、だいぶ構成がわかりやすくなったんじゃないかな。
その過程で、一部のメソッドをRustで実装するように変更した。前は「LLVM IRのコードを生成するRustのコードで実装する」というややこしいことをしていたので、これもわかりやすくなったはず。
引き続き放置ゲームのブームが来てる。11月はFE000000とCalculator Evolutionを完走した。FE000000、一貫してクールで格好良かったなあ。Calculator Evolutionは終盤がちょっとだるかったけど、閾値を超えたときのフィーバー感はピカイチ。
Hash#[]
などがMaybeを返すようになった。これがやりたかっただけなのに、enum入れたりパターンマッチ入れたり大変だったなあ。やれやれだぜ。empty?
みたいにメソッド名に?
をつけられるやつ、やっぱ欲しいなと思ったので入れた。パターンマッチの実装をしていた。ようやくバグが取れて、あともう少し整理したらマージできるかなというところ。いやー時間かかったなあ。なんでこれだけのことがこんなに時間かかるんだろう、と時々思うが、思っててもしょうがないので、一つ一つやっていくしかない。まあ9月は仕事が忙しかったし、体調も良くなかったし、そういう時もあるよね。
引き続き処理系Slackのみなさまには隔週で話を聞いてもらっている。ありがたいことです。
毎年夏の間だけチャレンジしている構文木マクロの実装だが、ようやく「なんとかなりそう」な感じになってきた。
方針を立てたので、あとはぼちぼちやっていくだけ…ではあるけど、あくまでShiikaの方が優先なので、数年後くらいに形になればいいなあ、くらいに思っている。
先週の土日にこのオンラインセミナーに参加してみた。
定理証明は、名前は聞くけど触ったことはなくて、興味はあるけど本を買うほどのモチベーションはないし、誰か詳しい人が要点だけ教えてくれたりしないかな〜。と思っていたところ、まさにぴったりのイベントが。なんていうか、昔ならこういうのは東京まで行かないと参加できなかった気がするけど、家からオンラインで参加できるようになったのは嬉しいね。
日程は5時間 x 2日という長丁場で、説明だけでなく練習問題もあるのでとっても疲れた!でもこういうのって自分で手を動かさないと「わかったような気になった」だけで終わりがちだから、演習があるのはとてもありがたい。
近況です。
今月はenumを実装した。ようやく念願のOption型が使えるようになるぞ…と思いきや、パターンマッチがないのでメソッドが書けないことが判明。道は長い。
ちなみにクラス名はOptionじゃなくてMaybeにする予定。HaskellとRakuくらいでしか見たことないけど、コンピュータぽくなくて好きなんですよね。あとOptionという名前はCLIアプリで普通に使いそうとか、Maybeの方が(日本人にとっては?)初学者に意味がわかりやすいとか。
近況です。
今月は定数まわりの実装を整理した。これでenumが実装できる…と思ったんだけど、その前に「スーパークラスに型パラメータを書けるようにする」が必要であることが判明した。yak shavingだなあ。しかしまあ先に気づけてよかった。ミートアップのおかげだ。