diff options
Diffstat (limited to 'lib/rites/rite_of/temporal_of.ml')
| -rw-r--r-- | lib/rites/rite_of/temporal_of.ml | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/rites/rite_of/temporal_of.ml b/lib/rites/rite_of/temporal_of.ml index e375350..1da6cf9 100644 --- a/lib/rites/rite_of/temporal_of.ml +++ b/lib/rites/rite_of/temporal_of.ml @@ -532,8 +532,32 @@ let temporal d = let anchors y = let easter = Computus.gregorian_easter y in let off n = Date.add_days easter n in - [ ("of-nativity-vigil", mk y 12 24); - ("of-nativity", mk y 12 25); + (* CORRECTED (celebrant-rubrics-phase1 review, 2026-08-26): this used to + list ("of-nativity-vigil", mk y 12 24) UNCONDITIONALLY -- a regression + from the earlier R8 fix, which added the Sunday guard to [named] + above (Tabula I.2 outranks I.3: on a Sunday, 24 December is the + Fourth Sunday of Advent, not the Vigil) but never updated this + function to match, so in 2028/2034 this list claimed the Vigil where + [temporal] actually returns "of-advent-sunday-4". This module's own + doc comment on [anchors] says its whole purpose is to "catch an + accidental single-site drift... rather than leaving it invisible" -- + the irony being that it caught exactly this drift, just years later + than it should have, only once Validate.run was wired for the OF rite + at all (nothing before that compared [anchors] against [named]/ + [temporal], so the two were free to disagree unnoticed). The Fourth + Sunday of Advent is not added as a replacement entry on a Sunday year: + it is an ordinary generic week-numbered Sunday + ({!sunday_slug}'s own "of-advent-sunday-4", produced every year + regardless of where in the week it falls), never one of the NAMED + days this function exists to restate -- see the module doc comment + above [anchors] ("Independent restatement of {!named}'s... dates"). + [named]'s own guard is restated exactly, not re-derived: [named] + checks the WEEKDAY of the actual civil date, so this does too, rather + than assuming Advent 4 Sunday is always 24 December (it is any Sunday + 18-24 December; testing the weekday of 24 December itself is exact + regardless of which Sunday that turns out to be). *) + (if Date.weekday (mk y 12 24) = Date.Sun then [] else [ ("of-nativity-vigil", mk y 12 24) ]) + @ [ ("of-nativity", mk y 12 25); ("of-mary-mother-of-god", mk y 1 1); ("of-epiphany", mk y 1 6); ("of-holy-family", holy_family y); |
