今月の活動 (ミローネ言語など)
- 前回 (2022-10-31) https://vain0x.github.io/blog/2022-10-31/diary/
ミローネ言語
- 間を空けてコードを眺めていたらいろいろとおかしいことに気づいた
- charをbyteにキャストしてはいけなかった (.NET版のcharは2バイトなため)
DocId
(テキストドキュメントにつけるID) を相対パスのようなものにしていたせいで、URIとの相互変換に支障をきたしていた
- never型を足した
- 返り値型を
'T
にする方式は単相化と相性が悪かった _Noreturn
属性を出力できるようになった
- 返り値型を
- 構文木を利用して入力補完を実装しようとした
- 名前解決を別方向から実装する方式 (補完位置から根に向かって辿って定義箇所を集める)
- いろいろと大変だし行くべき道ではないかもしれない
- どういうデータ構造を土台にして解析を実装するべきか悩ましい
- nurseryでINIファイルのパーサーを書いたりしていた
- 型検査が通っていないかぎりLSPサーバーが何もできないようになっていて使いづらい
- FFIやリソース管理が依然として悩ましい
- (ミローネ言語版の) LSPサーバーの実装はインメモリsqliteのインスタンスをメインループの中に持ち込む方法がなくて詰んでいる
- 型のレイアウト等をコンパイラが適当に決めること、オブジェクトがイミュータブルであることなどの方針と相性が悪い
- これが悩ましすぎて他のことが手につかないというメタ問題
その他
- 腰痛がじわじわときていてつらい
- 落ち着かないので制作物を洗練させようという気にならず、雑にget it doneしてしまいがち