月報について
ここ数年、月の初めに前月の月報を書いてたんだけど、今年はやめにしようかと思う。
あまり深い理由はないのだけど、面倒になってきたというのが一つで、やめたらどうなるか実験してみたいというのがもう一つ。
代わりに、もっと短いスパンで投稿していきたい。
ここ数年、月の初めに前月の月報を書いてたんだけど、今年はやめにしようかと思う。
あまり深い理由はないのだけど、面倒になってきたというのが一つで、やめたらどうなるか実験してみたいというのがもう一つ。
代わりに、もっと短いスパンで投稿していきたい。
今年書いたブログを見つつ振り返りを。
イベントというと今年はまあオリンピックかなあ。なんかずっと前のような感じがするが。ワクチン打ったのも今年か。
Shiikaについてはパターンマッチ、enum、Maybe型を実装した。処理系ミートアップのみなさまにはお世話になりました。
去年はHazy IPAを初めて飲んだということもあり海外ビールをいろいろ試してたのだが、海を超える都合上お値段が張るわりに「普通に美味いが、リピートするほどではないかな」というパターンが多く、今年は国内のを選ぶことが多かった。
今年のベストビール。美味しかったな〜。スタウト以外もぜんぶ美味しかった。伝統に敬意を表しつつ、新しい試みも取り入れるというバランス感覚がとても好みです。わがふるさと滋賀県のブルワリーなのも推しポイント。
しばらくHazyとかサワーエールに寄っていたのを、「やっぱ苦いビールっていいな…」と思わせてくれた一本。うまいもんはなんぼあってもいいですからね〜。
今月はコンパイラ全体が一つのRust crateになっていたのを、いくつかのcrateに分割した。依存関係が各ディレクトリのCargo.tomlに明示されるので、だいぶ構成がわかりやすくなったんじゃないかな。
その過程で、一部のメソッドをRustで実装するように変更した。前は「LLVM IRのコードを生成するRustのコードで実装する」というややこしいことをしていたので、これもわかりやすくなったはず。
引き続き放置ゲームのブームが来てる。11月はFE000000とCalculator Evolutionを完走した。FE000000、一貫してクールで格好良かったなあ。Calculator Evolutionは終盤がちょっとだるかったけど、閾値を超えたときのフィーバー感はピカイチ。
Hash#[]
などがMaybeを返すようになった。これがやりたかっただけなのに、enum入れたりパターンマッチ入れたり大変だったなあ。やれやれだぜ。empty?
みたいにメソッド名に?
をつけられるやつ、やっぱ欲しいなと思ったので入れた。Twitterを見てたら、自作キーボード界隈からなにやら可愛いものの写真がRTされてきた。
なにこれかわいい。プラモ?いや、ガレージキットというものらしい。なるほど、パーツが送られてきて組み立ては自分でやると。「ピンバイス」なる工具が必要らしいが、ちょっと面白そうだな。
パターンマッチの実装をしていた。ようやくバグが取れて、あともう少し整理したらマージできるかなというところ。いやー時間かかったなあ。なんでこれだけのことがこんなに時間かかるんだろう、と時々思うが、思っててもしょうがないので、一つ一つやっていくしかない。まあ9月は仕事が忙しかったし、体調も良くなかったし、そういう時もあるよね。
引き続き処理系Slackのみなさまには隔週で話を聞いてもらっている。ありがたいことです。
自作言語の開発中、LLVMが以下のメッセージを吐いて死ぬのを調査したメモ。
./bin/llvm-dis: error: Invalid instruction with no BB (Producer: 'LLVM12.0.1' Reader: 'LLVM 12.0.1')
このメッセージで検索すると lib/Bitcode/Reader/BitcodeReader.cpp がヒット
if (!CurBB) {
I->deleteValue();
LLVMのエラーメッセージはあまり親切でない。Rustの異常な親切さに慣れてきたのでそう思うのかもしれないが。
例えばllvm-disの出したエラーがこれ:
Assertion failed: (InitVal->getType() == getValueType() && "Initializer type must match GlobalVariable type"), function setInitializer, file /Users/yhara/research/llvm-12.0.1.src/lib/IR/Globals.cpp, line 405.
型が違うことはなんとか分かるが、せめて何と何だったのかくらいは教えてくれないとデバッグのしようがない。