aboutsummaryrefslogtreecommitdiff
path: root/dune
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 11:38:35 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-12 11:38:35 +0200
commite19adb9c7ea369cafe76e7eff50e9248a4a954d0 (patch)
tree57824e121606286ebdf8fff68439986dd3300eae /dune
parent0506388da160a15ceddb0cea1a697d737103d5c4 (diff)
parent36df2bd0af9a555a09334e14b0d89118be1dbbc0 (diff)
downloadcolitur-e19adb9c7ea369cafe76e7eff50e9248a4a954d0.tar.gz
colitur-e19adb9c7ea369cafe76e7eff50e9248a4a954d0.zip
Merge branch 'ef-plan3': Plan 3, the EF resolution engine
Adds the rite-parameterised Precedence resolver, Liturgical_day, Rite, and Calendar (year as the primitive, because transfers need whole-year knowledge), the full EF precedence ruleset (RG 91's 28-entry table, occurrence RG 92-95, commemorations RG 108-111, transfers RG 96-98), 322 bootstrapped sanctoral entries, colitur day <year>, and validation layers 3-5. Layer 3 diffs 16801 days against lectio; layer 4 diffs 730 days against missalemeum; layer 5 pins ~30 dates on the known-tricky years. Both comparison layers carry cited allow-lists that name the governing RG paragraph and which engine is right. The oracle layer earned its place immediately: Holy Thursday was violet in colitur and lectio alike, because colitur's data was bootstrapped from lectio and both carried the same error. Only an independent source could see it. RG 128(b) and RG 122 name it white.
Diffstat (limited to 'dune')
-rw-r--r--dune24
1 files changed, 24 insertions, 0 deletions
diff --git a/dune b/dune
new file mode 100644
index 0000000..8a00001
--- /dev/null
+++ b/dune
@@ -0,0 +1,24 @@
+; Makes data/ef/*.sexp part of the DEFAULT build target (`dune build`, no
+; args), not only whatever individual stanzas elsewhere happen to declare as
+; their own deps. Without this, `rm -rf _build && dune build && dune exec
+; colitur -- day 2026` failed: bare `dune build` resolves to the workspace
+; root's own `default` alias, which -- absent this file -- is implicitly
+; bound to `@install` alone and never reaches data/ef/dune's own `default`
+; alias (that alias only participates in an EXPLICIT `@default`/`@dir`
+; recursive request, e.g. `dune build @default`, not in the plain no-target
+; invocation; verified empirically -- see the task report). `test/dune`'s
+; cram stanza masked this: it declares its own (deps ../data/ef/*.sexp),
+; which materialises them as a side effect of `dune build @runtest`, so the
+; test suite could not have caught this on its own -- it took a genuinely
+; clean rebuild to surface it.
+;
+; (alias_rec install) keeps whatever `default` would otherwise resolve to
+; (the package's own install artifacts -- executables, libraries, reached
+; recursively through every subdirectory's own `install` alias) so this
+; ADDS a requirement rather than replacing dune's own default behaviour.
+(alias
+ (name default)
+ (deps
+ (alias_rec install)
+ data/ef/sanctoral.sexp
+ data/ef/adjustments.sexp))