aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-13 09:16:39 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-13 09:16:39 +0200
commitb7da41445d89cc83e749ec19c57e321ceb6d5cf2 (patch)
tree6c3f8649b4c8dc25e1de0478b6a4358d65a6bd54 /lib
parentac277cd1aaa47401b4a4c205b54c2faf88938c73 (diff)
downloadcolitur-b7da41445d89cc83e749ec19c57e321ceb6d5cf2.tar.gz
colitur-b7da41445d89cc83e749ec19c57e321ceb6d5cf2.zip
temporal(ef): fix round 1 (F3) -- give Holy Family a primary-sourced Latin name
On 7,197 of the 8,417 days Holy Family occurs (every year that isn't the 13-January collision), every emitted byte was identical to the pre-change binary -- subject appeared in no output path the CLI or any test read. Celebration.make already takes ?names, defaulting to empty, and Temporal_ef.build never passed it. build now takes an optional ?names, set only on Holy Family's own branch: a LATIN name, not English. The oracle's own observed-identity axis (test_oracle.ml) reads only `en`, so this is deliberately invisible to it -- an English name here would mean reading missalemeum's own title text, the oracle this exact axis is compared against, to decide colitur's "ground truth" name: the "expected value promoted from actual output" vacuity flavour this project's review process watches for. Latin has no such circularity: the calendarium's own January table and the Mass propers' own heading, both photographic scans, word for word, "Sanctae Familiae Iesu, Mariae, Ioseph" -- the same genitive-title convention test_names.ml's own worked example already uses for Easter ("Dominica Resurrectionis"). Every other temporal-cycle candidate, including the neighbouring Sundays, still carries no name of any kind -- a targeted addition for the one day this task built, not a claim that the general gap (register's own open item on Holy Name of Jesus, RG 17(a)) is closed.
Diffstat (limited to 'lib')
-rw-r--r--lib/rites/rite_ef/temporal_ef.ml41
1 files changed, 34 insertions, 7 deletions
diff --git a/lib/rites/rite_ef/temporal_ef.ml b/lib/rites/rite_ef/temporal_ef.ml
index 0647aac..1ce9de9 100644
--- a/lib/rites/rite_ef/temporal_ef.ml
+++ b/lib/rites/rite_ef/temporal_ef.ml
@@ -444,9 +444,10 @@ let temporal d =
let easter = Computus.gregorian_easter y in
let s = season d in
let weekday = Date.weekday d in
- let build ?(subject = Colitur_kernel.Subject.Temporal) ~season ~slug ~colour ~rank ~week () =
+ let build ?(subject = Colitur_kernel.Subject.Temporal) ?(names = Colitur_kernel.Names.empty) ~season
+ ~slug ~colour ~rank ~week () =
let office =
- Colitur_kernel.Celebration.make ~slug:(Slug.of_string_exn slug) ~rank ~colour ~subject
+ Colitur_kernel.Celebration.make ~slug:(Slug.of_string_exn slug) ~rank ~colour ~subject ~names
~layer:"temporal" ()
in
{ Colitur_kernel.Temporal.season; week; weekday; office }
@@ -508,12 +509,38 @@ let temporal d =
OTHER Sunday this branch ever builds -- including the
narrower Holy Name of Jesus window, RG 17(a), still
unbuilt as its own named day, register §6 -- keeps
- [Temporal], unaffected. *)
- let subject =
- if same d (holy_family_sunday y) then Colitur_kernel.Subject.Lord
- else Colitur_kernel.Subject.Temporal
+ [Temporal] and no name, unaffected.
+
+ [names] -- fix round 1 (coordinator finding 3): a LATIN
+ name, not English. The oracle's own observed-identity
+ axis (test_oracle.ml) reads only [en], so this is
+ deliberately invisible to it -- setting an ENGLISH name
+ here would mean reading missalemeum's own title text
+ (the oracle this exact axis is compared against) to
+ decide colitur's own "ground truth" name, precisely the
+ "expected value promoted from actual output" vacuity
+ flavour this project's own review process watches for.
+ Latin has no such circularity: the calendarium's own
+ January table, both photographic scans, word for word:
+ "Dominica I post Epiphaniam: S. Familiae, Iesu, Mariae,
+ Ioseph, II classis" -- and the Mass propers' own heading
+ (also both scans): "SANCTAE FAMILIAE IESU, MARIAE,
+ IOSEPH, II classis", the exact string used here, the
+ same genitive-title convention test_names.ml's own
+ worked example already uses for Easter ("Dominica
+ Resurrectionis"). Every other temporal-cycle candidate
+ still carries no name at all (register §6.2's own open
+ item on Holy Name of Jesus, RG 17(a)) -- this is a
+ targeted addition for the one day this task built, not a
+ claim that the gap is closed generally. *)
+ let subject, names =
+ if same d (holy_family_sunday y) then
+ ( Colitur_kernel.Subject.Lord,
+ Colitur_kernel.Names.of_list
+ [ (Colitur_kernel.Lang.of_string_exn "la", "Sanctae Familiae Iesu, Mariae, Ioseph") ] )
+ else (Colitur_kernel.Subject.Temporal, Colitur_kernel.Names.empty)
in
- build ~subject ~season:s ~slug ~colour ~rank ~week:(week d) ()
+ build ~subject ~names ~season:s ~slug ~colour ~rank ~week:(week d) ()
| None -> (
match christmastide_feria_slug d with
| Some slug ->