diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-26 08:43:14 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-26 08:43:14 +0200 |
| commit | 9a915291c3e76dd6cbaea92910ed9cfe3398062d (patch) | |
| tree | eb3b586896b5d1d371542c4a827dd7cac5b83887 /lib/rites/rite_of/rubrics_of.ml | |
| parent | 1a1479fd60e192c48789b3b065a3033702e4eeda (diff) | |
| download | colitur-9a915291c3e76dd6cbaea92910ed9cfe3398062d.tar.gz colitur-9a915291c3e76dd6cbaea92910ed9cfe3398062d.zip | |
fix(of): rename credo to creed, correct three comment inaccuracies
Fix round 1 for Task 3, addressing review findings.
Rename the exported creed function from `credo` to `creed` across the
.ml, .mli and test call sites, so the OF rite bundle can write
`creed = Rubrics_of.creed` with no gratuitous mismatch against
Rite.t's own field name, matching Rite_ef.Rubrics_ef.creed's own
naming. IGMR n. 67's own heading is "Professio fidei" and its body
says "Symbolum", never "Credo" -- documented as a comment on the
now-correctly-named function rather than kept as the exported name.
Local test helpers (credo_on_temporal, check_credo, test_credo_*) and
Alcotest description strings keep the Latin shorthand, since only the
call sites against RO.creed needed to change.
Corrected two comment inaccuracies:
- The Annunciation (25 March) is NOT always inside Lent, unlike St
Joseph (19 March): 25 March sits after Easter's own earliest
possible date (22 March), so in an early-Easter year (2008, Easter
23 March) it falls inside the Easter Octave instead, or is
transferred under Normae n. 60/5. No functional effect (gloria/creed
read observed/temporal as actually resolved), but the stated reason
was wrong.
- The Requiem-silence argument's counts: three All Souls Mass
formularies (not two), and roughly 147 Gloria+Credo markers combined
elsewhere in the Missal (not "over 150", which conflated Gloria
alone with the combined figure) -- recounted directly against a
fresh pdftotext -layout extraction rather than estimated.
Added: an independent corroborating citation for the Holy Thursday /
Easter Vigil Gloria exception, Vigil n. 31 -- the Easter Vigil's own
praenotanda ("VIGILIA PASCHALIS IN NOCTE SANCTA"), a THIRD
independently-numbered rubric set inside the same Missal PDF,
confirming the Vigil's own Gloria directly rather than resting solely
on the Holy Thursday rubric's forward-looking "usque ad" clause.
dune test: exit 0, 845 tests. make check (COLITUR_EXHAUSTIVE_SWEEP=1,
full 1583-9999 sweep): exit 0, 851 tests, 330.3s, both run unpiped in
the foreground. git diff --stat v1.0.0..HEAD -- lib/rites/rite_ef/
lib/kernel/ data/ef/ still empty.
Diffstat (limited to 'lib/rites/rite_of/rubrics_of.ml')
| -rw-r--r-- | lib/rites/rite_of/rubrics_of.ml | 92 |
1 files changed, 64 insertions, 28 deletions
diff --git a/lib/rites/rite_of/rubrics_of.ml b/lib/rites/rite_of/rubrics_of.ml index 3fa59e9..e85ba1a 100644 --- a/lib/rites/rite_of/rubrics_of.ml +++ b/lib/rites/rite_of/rubrics_of.ml @@ -26,7 +26,15 @@ "votive Mass class" scope limit {!Rite_ef.Rubrics_ef}'s own header states for RG 431(d)/(e)/432(c) -- genuinely N/A, not silently skipped. - CREDO / SYMBOLUM (IGMR n. 67-68, igmr.txt:568-577), quoted in full: + CREED / SYMBOLUM (IGMR n. 67-68, igmr.txt:568-577), quoted in full. + NAMED [creed] below, not [credo]: n. 67's own heading is "Professio + fidei" and its body says "Symbolum", never "Credo" (checked directly, + igmr.txt:568-577) -- "Credo" is this file's own prose shorthand, kept + in comments and test labels, but the exported name matches + {!Colitur_kernel.Rite.t.creed}'s own field exactly, so the OF rite + bundle can write [creed = Rubrics_of.creed] with no gratuitous + mismatch, the same discipline {!Rite_ef.Rubrics_ef.creed} already + follows: "67. Symbolum seu professio fidei eo tendit ut universus populus congregatus verbo Dei in lectionibus e sacra Scriptura nuntiato et per @@ -50,7 +58,7 @@ reading both paragraphs in full above, not merely by their absence from this file's own branches: nothing in IGMR nn. 52-69 (the whole "Actus paenitentialis" through "Oratio universalis" span, igmr.txt:440-585) - mentions an octave at all. [credo]'s own [date] parameter is therefore + mentions an octave at all. [creed]'s own [date] parameter is therefore genuinely unread, kept only for {!Colitur_kernel.Rite.t}'s shared shape -- an honest [None]-shaped fact about this rubric, not a gap. @@ -61,19 +69,22 @@ reading every line of that section, not by a failed grep. The Missale's own printed propers corroborate the OMISSION reading only indirectly: every OTHER Mass text in the extracted Proper of Time/Sanctoral carries - an explicit "Dicitur Gloria in excelsis."/"Non dicitur..." marker (over - 150 occurrences, docs/research/of/missale-romanum-2002.pdf via - `pdftotext -layout`), but the two "IN COMMEMORATIONE OMNIUM FIDELIUM - DEFUNCTORUM" (2 November) Mass-text blocks carry NEITHER marker -- - consistent with (not proof of) universal, uncontested funeral-liturgy - practice that a Requiem Mass never has either. Picked as the reading - with the better textual support, per this task's own brief, and applied - as narrowly as the evidence allows: {!requiem_slugs} is a CLOSED, - directly-checked list of the ONE slug in data/of/calendar-2002.sexp this - can ever apply to (grepped for "defunct"/"requiem"/"exsequial": zero - other hits), the same "checked, not assumed, closed population" - discipline {!Rite_ef.Rubrics_ef}'s own [Colour.Black] proxy uses for the - identical EF question. *) + an explicit "Dicitur Gloria in excelsis."/"Non dicitur..." or "Dicitur + Credo."/"Non dicitur Credo." marker (roughly 147 occurrences combined, + docs/research/of/missale-romanum-2002.pdf via `pdftotext -layout`, + recounted directly rather than estimated), but the THREE "IN + COMMEMORATIONE OMNIUM FIDELIUM DEFUNCTORUM" (2 November) Mass + formularies (numbered 1, 2, 3, one Mass text block each -- lines + ~21831, ~21867, ~21898 of that extraction) carry NEITHER marker on any + of the three -- consistent with (not proof of) universal, uncontested + funeral-liturgy practice that a Requiem Mass never has either. Picked + as the reading with the better textual support, per this task's own + brief, and applied as narrowly as the evidence allows: {!requiem_slugs} + is a CLOSED, directly-checked list of the ONE slug in + data/of/calendar-2002.sexp this can ever apply to (grepped for + "defunct"/"requiem"/"exsequial": zero other hits), the same "checked, + not assumed, closed population" discipline {!Rite_ef.Rubrics_ef}'s own + [Colour.Black] proxy uses for the identical EF question. *) open Colitur_kernel @@ -100,11 +111,25 @@ let gloria ~(temporal : (Vocab_of.season, Vocab_of.rank) Temporal.t) Triduum, is unaffected -- this rubric is keyed to the Mass, not the day's own band), and the same sentence extends the silence "usque ad" (UP TO) the Easter Vigil's own Gloria (Easter-1), confirming - that Mass also has one. Neither day is ever a Sunday (both are fixed - Easter-offsets within Holy Week), so this must be checked ahead of, - and independently of, the season/weekday branches below -- the - identical lex-specialis placement {!Rite_ef.Rubrics_ef.gloria}'s own - RG 431(c) branch uses for the same two days. *) + that Mass also has one. Independently corroborated by a THIRD numbered + rubric set inside the same PDF -- not the IGMR, not the Normae, but + the Easter Vigil's own praenotanda ("VIGILIA PASCHALIS IN NOCTE + SANCTA", missale-romanum-2002.pdf line ~9452), which restarts its + own paragraph numbering at 1: Vigil n. 31 (line ~9925), "Post + ultimam lectionem e Vetere Testamento cum suo psalmo responsorio et + sua oratione, accenduntur cerei altaris, et sacerdos intonat hymnum + Gloria in excelsis Deo, quem omnes prosequuntur, dum pulsantur + campanae..." -- confirming the Vigil's own Gloria directly, from a + second, independent source, not merely the Holy Thursday rubric's + forward-looking "usque ad" clause. A third numbered document inside + one PDF is exactly the citation-ambiguity trap vocab_of.ml's own + top-of-file comment warns about for the Normae/IGMR pair -- naming + it "Vigil n. 31", not a bare "n. 31", for the same reason. Neither + day is ever a Sunday (both are fixed Easter-offsets within Holy + Week), so this must be checked ahead of, and independently of, the + season/weekday branches below -- the identical lex-specialis + placement {!Rite_ef.Rubrics_ef.gloria}'s own RG 431(c) branch uses + for the same two days. *) n = -3 || n = -1 then true else if @@ -136,16 +161,27 @@ let gloria ~(temporal : (Vocab_of.season, Vocab_of.rank) Temporal.t) (* IGMR n. 53: "in sollemnitatibus et festis" -- every remaining Sollemnitas or Festum, whatever day of the week it falls on (a solemnity transferred onto an ordinary weekday, or one that was - never a Sunday to begin with -- St Joseph 19 March, the Annunciation - 25 March, both always inside Lent by construction: Gregorian - Easter's earliest possible date is 22 March, so Ash Wednesday can - never fall later than 10 March and Easter itself can never fall - before 19 March, meaning neither date can ever fall outside Lent). - [Memoria_obligatoria], [Memoria_ad_libitum] and [Feria] are not - named by n. 53 at all and correctly fall through to [false]. *) + never a Sunday to begin with). St Joseph, 19 March, is ALWAYS + inside Lent by construction: Gregorian Easter's earliest possible + date is 22 March, so Ash Wednesday can never fall later than + 10 March and Easter itself can never fall before 22 March, putting + 19 March always at least three days before Easter. The Annunciation, + 25 March, is NOT: unlike 19 March, 25 March sits AFTER Easter's own + earliest possible date, so in a sufficiently early-Easter year it + falls inside the Easter Octave instead of Lent, or is impeded and + transferred under Normae n. 60/5 (Precedence_of.mli's own + [transfer_target] citation: "the Annunciation falling anywhere in + Holy Week goes to Easter + 8") -- 2008 (Easter 23 March, so + 25 March is Easter+2, the Octave itself) is a real, checked + instance, not a hypothetical. Functionally inert either way: this + branch reads [observed.rank]/[temporal] as they actually resolve on + the given date, never assumes a season from the calendar date alone + -- but the comment should not claim more than that. [Memoria_ + obligatoria], [Memoria_ad_libitum] and [Feria] are not named by + n. 53 at all and correctly fall through to [false]. *) observed.Celebration.rank = Vocab_of.Sollemnitas || observed.Celebration.rank = Vocab_of.Festum -let credo ~(temporal : (Vocab_of.season, Vocab_of.rank) Temporal.t) +let creed ~(temporal : (Vocab_of.season, Vocab_of.rank) Temporal.t) ~(observed : Vocab_of.rank Celebration.t) ~(date : Date.t) : bool = ignore date; (* IGMR n. 67-68's own [date]-independence: see this file's own header. *) |
