core の設計
設計目標
ルートパッケージは Luna-Flow のリポジトリテンプレートの構成を保っています。ソースルートに公開関数一つとテスト一つを持つパッケージを置き、どのリポジトリでも moon check、moon test、moon info が対象を持てるようにしています。
設計上の決定
- ベンチマークはサブパッケージ。 各比較はそれぞれの依存を持つ独自のパッケージにあるので、
floating_vs_decmial_xはDzmingLi/decimalなしでビルドでき、その逆も同様で、それぞれ単独で文書化し実行できます。 - ルートを通じて共有するものはない。 中立な十進モデルはここに移さず、各ベンチマークパッケージにコピーしています。コードの重複と引き換えに各パッケージが自己完結し、コピーはバイト単位で同一です(
canonical.mbt、parse.mbt、generator.mbt)。
境界
ルートパッケージはベンチマーク機能も共有ヘルパーも提供しません。