aboutsummaryrefslogtreecommitdiff
path: root/lib/rites/rite_ef/precedence_ef.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rites/rite_ef/precedence_ef.mli')
-rw-r--r--lib/rites/rite_ef/precedence_ef.mli45
1 files changed, 31 insertions, 14 deletions
diff --git a/lib/rites/rite_ef/precedence_ef.mli b/lib/rites/rite_ef/precedence_ef.mli
index 55f947e..ee7667d 100644
--- a/lib/rites/rite_ef/precedence_ef.mli
+++ b/lib/rites/rite_ef/precedence_ef.mli
@@ -164,24 +164,26 @@ val nativity_octave_prefix : string
so the two cannot silently drift apart. *)
val september_ember_prefix : string
-(** [admit ~observed comms]: RG 108-111 (docs/research/rules-register.md §4,
- "Commemorations"). How many of [comms] -- each already tagged with its
- real RG 109 privilege by {!disposition} -- RG 111 admits, and which,
+(** [admit ~observed ~temporal comms]: RG 108-111 (docs/research/rules-register.md
+ §4, "Commemorations"). How many of [comms] -- each already tagged with
+ its real RG 109 privilege by {!disposition} -- RG 111 admits, and which,
given the day actually observed:
- [observed] a [Class1] day: none, except at most one privileged
commemoration (the highest-dignity one, if several are due) -- an
ordinary one is never admitted here, no matter how many are due;
- - [observed] a [Class2] Sunday (its slug carries {!sunday_marker}): one,
- subject to TWO conditions, not one -- (i) a privileged commemoration,
- whenever due, categorically takes the day's one slot over any
- ordinary one, not by comparing dignity, so an ordinary commemoration
- that would otherwise win on dignity is still dropped; (ii) failing
- that, the slot is reserved for a [Class2] candidate SPECIFICALLY
- ("de festo II classis", RG 111(b)'s own wording -- a RANK FLOOR, not
- "whichever ordinary candidate has the best dignity"): a III- or
- IV-class ordinary loser has no standing for this slot at all and is
- admitted nothing, even when it is the only candidate due;
- - [observed] any other [Class2] day: one, by dignity alone -- no
+ - the CIVIL DAY is a [Class2] Sunday ([temporal]'s slug carries
+ {!sunday_marker} -- CORRECTED, fix round 1, RG16(a) task: read off
+ [temporal], not [observed]; see below): one, subject to TWO
+ conditions, not one -- (i) a privileged commemoration, whenever due,
+ categorically takes the day's one slot over any ordinary one, not by
+ comparing dignity, so an ordinary commemoration that would otherwise
+ win on dignity is still dropped; (ii) failing that, the slot is
+ reserved for a [Class2] candidate SPECIFICALLY ("de festo II classis",
+ RG 111(b)'s own wording -- a RANK FLOOR, not "whichever ordinary
+ candidate has the best dignity"): a III- or IV-class ordinary loser
+ has no standing for this slot at all and is admitted nothing, even
+ when it is the only candidate due;
+ - the civil day is any other [Class2] day: one, by dignity alone -- no
privilege override and no rank floor, unlike the Sunday case
immediately above;
- [observed] a [Class3] or [Class4] day: at most two, by dignity alone.
@@ -192,6 +194,20 @@ val september_ember_prefix : string
Ties break on slug, matching {!Precedence.compare_by}, so the result
never depends on the order [comms] arrives in.
+ [temporal] -- CORRECTED, fix round 1 (RG16(a) task): this function used
+ to read the Sunday/non-Sunday split off [observed]'s own slug, which
+ silently assumed [observed] IS the day's temporal-cycle office. RG 16(a)
+ breaks that assumption on purpose: a Feast of the Lord holds an impeded
+ II-class Sunday's own place "cum omnibus iuribus et privilegiis"
+ (RG 16(a)'s own text), so the day still counts as a "dominica II
+ classis" for RG 111(b) even though [observed] is now the FEAST.
+ [temporal] -- {!Precedence.rules.admit}'s own parameter, the day's
+ temporal-cycle candidate regardless of who won -- is the reliable
+ signal; oracle-confirmed (6 August: Sunday excludes a Class3 saint
+ Sixtus II from the freed slot, an ordinary weekday admits him). Every
+ row of the previous behaviour where [observed] and [temporal] coincide
+ (no RG 16(a) displacement occurred) is unaffected.
+
Every candidate this returns is a value taken unchanged from [comms],
never rebuilt: {!Precedence.resolve}'s own [dropped]/[omitted]
accounting tells an admitted candidate from a dropped one by physical
@@ -202,6 +218,7 @@ val september_ember_prefix : string
itself total over an empty or arbitrarily long [comms]. *)
val admit :
observed:Vocab_ef.rank Precedence.candidate ->
+ temporal:Vocab_ef.rank Precedence.candidate ->
(Vocab_ef.rank Precedence.candidate * Precedence.privilege) list ->
(Vocab_ef.rank Precedence.candidate * Precedence.privilege) list