Blog 2023‐08‐27 - qnighy/umo GitHub Wiki

近況

制御構文がパーサーつきで動くようになったことで、最小限のアルゴリズムの入ったコードを動かせるようになった。

今後の予定:

  • capturingのない関数をパース・実行できるようにする
  • クロージャーのcapturingを実装
  • 原始的なモジュールシステムを実装
  • 原始的なユニットテストを実装

↑の実装に入る前に、少しコードを整理している。今回の書き直しではParser, Lowering, Typechecker, Compilation, Evaluationのテストを個別に書くことでかなり身動きが取りやすくて良かったのでその方針を続けたいが、そのためにはテストしやすいインターフェースやヘルパーを維持していく必要がある。

ここまでで特に困ったのがLoweringなどの出力で出てくるIntermediate Representationを組み立てるコードやassert_eqに失敗したときの診断で、このへんが今の仕組みのままだと耐えきれなくなりそう。ということで、Debugの実装を自作して、出力をそのままリテラルとして評価できるようにしたり、積極的にコンストラクタのラッパー実装を提供するようにしたりという取り組みをしてみている。