近況 2022-11-30

今月の活動 (ミローネ言語など)

ミローネ言語

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

その他

  • 腰痛がじわじわときていてつらい
    • 落ち着かないので制作物を洗練させようという気にならず、雑にget it doneしてしまいがち

関連記事