2021年9月 (Shiika パターンマッチ)
Shiika
パターンマッチの実装をしていた。ようやくバグが取れて、あともう少し整理したらマージできるかなというところ。いやー時間かかったなあ。なんでこれだけのことがこんなに時間かかるんだろう、と時々思うが、思っててもしょうがないので、一つ一つやっていくしかない。まあ9月は仕事が忙しかったし、体調も良くなかったし、そういう時もあるよね。
引き続き処理系Slackのみなさまには隔週で話を聞いてもらっている。ありがたいことです。
パターンマッチの実装をしていた。ようやくバグが取れて、あともう少し整理したらマージできるかなというところ。いやー時間かかったなあ。なんでこれだけのことがこんなに時間かかるんだろう、と時々思うが、思っててもしょうがないので、一つ一つやっていくしかない。まあ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.
型が違うことはなんとか分かるが、せめて何と何だったのかくらいは教えてくれないとデバッグのしようがない。
LLVMのフルビルドは長い。とても長い。
LLVM、.bcの間違いは.llを見ればわかることが多いんですが(基本的に等価なものだから)、今回は.bcがエラーになって.llがエラーにならないというケースを踏んでいて困っています pic.twitter.com/wplDsO84wu
— yhara (Yutaka HARA) (@yhara) September 30, 2021
こういうことがあったのでbcをデコードするツール(llvm-dis)だけ自前ビルドしたかった。
結論からいうとこれでいけた。
githubのreleasesから.src.zipを取ってきて解凍
Corne and chocolate
— yhara (Yutaka HARA) (@yhara) July 18, 2021
Keyboard: Corne Chocolate v2.1
Switch: Kailh Choc v1 Blue (+ Red Pro)
Keycap: MBK Choc Low Profile Black/Violet Blue/Light Blue#KEEB_PD #KEEB_PD_R53 pic.twitter.com/9KaOuUWVWa
Corne Chocolateを組み立てた。Corneシリーズのうち、Kailh Chocスイッチに対応した薄型バージョン。ChocだけにChocolateなのかな。
現在の仕事用メインキーボードとして使っている。オフィスではレツプリなんだけどテレワークなので、、、
Corneシリーズを組み立てたのは初めてだけど、よく出来てるなあ…と思った。洗練されてるというか。例えばOLEDに押したとこのキーコードが出るんだよね。完成後はそんなに意味のない機能だけど、組み立て中の動作確認にはとても便利だった。
毎年夏の間だけチャレンジしている構文木マクロの実装だが、ようやく「なんとかなりそう」な感じになってきた。
方針を立てたので、あとはぼちぼちやっていくだけ…ではあるけど、あくまでShiikaの方が優先なので、数年後くらいに形になればいいなあ、くらいに思っている。
メモです。
いいこと聞いた。
BiwaSchemeはTS使ってないけど、JSDocの記法で型を書けばtscで型チェックできるってことか。
先週の土日にこのオンラインセミナーに参加してみた。
定理証明は、名前は聞くけど触ったことはなくて、興味はあるけど本を買うほどのモチベーションはないし、誰か詳しい人が要点だけ教えてくれたりしないかな〜。と思っていたところ、まさにぴったりのイベントが。なんていうか、昔ならこういうのは東京まで行かないと参加できなかった気がするけど、家からオンラインで参加できるようになったのは嬉しいね。
日程は5時間 x 2日という長丁場で、説明だけでなく練習問題もあるのでとっても疲れた!でもこういうのって自分で手を動かさないと「わかったような気になった」だけで終わりがちだから、演習があるのはとてもありがたい。