core の設計

設計目標

ルートパッケージは Luna-Flow のリポジトリテンプレートの構成を保っています。ソースルートに公開関数一つとテスト一つを持つパッケージを置き、どのリポジトリでも moon check、moon test、moon info が対象を持てるようにしています。

設計上の決定

  • ベンチマークはサブパッケージ。 各比較はそれぞれの依存を持つ独自のパッケージにあるので、floating_vs_decmial_x は DzmingLi/decimal なしでビルドでき、その逆も同様で、それぞれ単独で文書化し実行できます。
  • ルートを通じて共有するものはない。 中立な十進モデルはここに移さず、各ベンチマークパッケージにコピーしています。コードの重複と引き換えに各パッケージが自己完結し、コピーはバイト単位で同一です(canonical.mbt、parse.mbt、generator.mbt)。

境界

ルートパッケージはベンチマーク機能も共有ヘルパーも提供しません。