| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Celebration.citations has existed in the type, the .mli and the sexp schema
since Plan 2 and has been emitted as () for every entry; the bootstrap now
writes the real values for the 208 entries lectio has them for.
On the celebration rather than in the lectionary table deliberately: a
diocesan overlay adding a saint then carries his readings through the
existing overlay algebra, with no second file to edit and no new directive.
Asserted both ways -- the 13 January proper is present, and no
Commemoration_only entry has readings, because in the EF a commemoration
contributes an oration, not a reading.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous commit's bootstrap_sanctoral.ml change (name.pl optional) is
correct and verified not to silently drop a present name, but nothing in
the suite would have caught a regeneration that dropped name.pl WHOLESALE
-- the exact defect lectio itself shipped once (a regeneration that lost
all 322 Polish names, only caught because that project's own review ran
cmd/lectio-ef-dump, which happens to include name fields; this project's
own test_load_and_counts checks entry/status/rank counts only, none of
which move if every name.pl vanishes).
Added a 322-of-327 count assertion (5 legitimately lack it, matching
parse_names's own list), independently re-derived: `grep -c '^name.pl'
tridentine-calendar.ini` = 322, cross-checked against `grep -c '(pl'
data/ef/sanctoral.sexp` = 322 exactly.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Regenerated via tools/bootstrap_sanctoral.ml against lectio's
tridentine-calendar.ini (SHA-256 6a25e634... -> 1b303ef2...), whose own
generator was independently fixed in a concurrent session. 327 entries (223
feast, 104 commemoration-only), up from 322 (208/114):
- 15 entries wrongly bootstrapped `rank = commemoration` are now
`class-3` (a real III-class Feast) -- all 6 March-5 April, all
primary-source-verified against the calendarium (register's own
"Commemoration-only entries' inferred STATUS" item).
- 5 new entries: agnes-secundo (28 Jan), boniface-martyr (14 May),
eusebius-confessor (14 Aug), evaristus (26 Oct), theodore (9 Nov) --
all Commemoration_only, all primary-source-verified (register's "Four
confirmed sanctoral DATA GAPS" item + expected-divergences-missalemeum
.sexp's former M4/M6/M7/M9/M14).
- commemoration-of-the-baptism-of-the-lord (13 Jan) is now
`(subject Lord)` (the source's own `class` field, not a colitur
overlay); most-holy-name-of-mary (12 Sep) no longer carries `class =
lord` at all (the source dropped it), so the bootstrap default
(Subject.Saint) is now correct there without help from
adjustments.sexp's own Edit.
test_sanctoral_ef.ml's pinned counts (327/104/12 Class1) are re-derived
directly from the source INI (`grep -c '^\['`, `grep '^rank' | sort |
uniq -c`), not transcribed from a bootstrap-tool or `colitur day` run.
data/ef/adjustments.sexp and the differential/oracle allow-lists still
need updating for the consequences of this regeneration -- follow-up
commits.
|
|
|
Convert lectio's tridentine-calendar.ini (322 entries) into
data/ef/sanctoral.sexp via a validating OCaml converter, tools/
bootstrap_sanctoral.ml, rather than a hand-written script: every field is
built through Slug.of_string, Colour.of_string and Vocab_ef.rank_of_string,
so the emitted sexp is valid by construction.
Two conversion decisions, both documented rather than buried:
- subject defaults to Subject.Saint, overriding Celebration.make's kernel
default of Subject.Temporal, for the 316 entries with no explicit class;
- rank = commemoration maps to status = Commemoration_only with an inferred
Class3 (not a citation -- it is what the 1960 reform reduced most simple
feasts from), recorded as an open item in the rules register for the
oracle to adjudicate.
Every celebration is tagged layer = Precedence_ef.universal_layer, the
provenance id RG 91's band classifier reads to tell the universal calendar
from proper/indult data.
The generated file carries a provenance header: source path, its SHA-256,
and the UTC conversion date, so re-bootstrapping against a newer lectio is
reproducible and diffable. Output is byte-identical across runs.
test/test_sanctoral_ef.ml loads the file through Layer.load and checks the
counts independently derived from the source INI (322 entries, 114
Commemoration_only, 12 Class1, no Subject.Temporal, every date resolves in
a leap year), plus two named spot-checks against the INI's own text -- one
entry with an explicit class field, one commemoration -- so a passing count
cannot hide the wrong 322 entries having been converted.
|