<feed xmlns='http://www.w3.org/2005/Atom'>
<title>clectio.git/gen, branch main</title>
<subtitle>tiny suckless C daily readings, floppy sized, bring your own Bible</subtitle>
<id>https://git.labunix.xyz/clectio.git/atom?h=main</id>
<link rel='self' href='https://git.labunix.xyz/clectio.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/'/>
<updated>2026-08-18T16:09:26Z</updated>
<entry>
<title>fix: EF crashed on 1246 of the 10957 dates in range</title>
<updated>2026-08-18T16:09:26Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T16:09:26Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=35ba4dc3dc5c85ddd4ccb3ec02f8fa5e1c11874b'/>
<id>urn:sha1:35ba4dc3dc5c85ddd4ccb3ec02f8fa5e1c11874b</id>
<content type='text'>
gen/liturgy_ef.h was regenerated in an earlier session without refreshing
gen/verses_ef.keys.gz, which is what the Makefile actually packs the text from.
The tables indexed 3584 verses; the packed text held 3248. print_day then read
verse[i] past the end and dereferenced NULL.

Reproduced against the fully committed tree with a plain make: 1246 of 10957 EF
dates exit 139. Heavily clustered in Advent and December -- 30 of 30 years for
each of 11-30, 12-03, 12-05, 12-06, 12-09, 12-10, 12-12, 12-21 through 12-25.
OF swept clean, 0 of 10957.

Three changes:

  - gen/ regenerated against lectio HEAD with keys and tables in step (3584
    both), and text_ef.lz repacked from the same keys.
  - clectio.c records how many verses the packed text holds and prints
    "[verse text missing]" rather than reading past it. Missing text is a
    visible gap now, never a crash. Proved by rebuilding against the stale
    keys: 1246 crashes -&gt; 0, placeholder shown.
  - upstream, lectio's clectio-gen now writes the .gz alongside the plain
    keys, so the two cannot drift again.

The regenerated tables also carry two EF calendar corrections colitur argued
from the 1962 Missal and lectio adopted: the Holy Family propers' 13-January
omission of the Baptism, and RG 96(a)/97/98 transfers, which put St Joseph back
on 2035-04-03 and 2046-04-03 (he was observed on no day of those years).

Distinct days 656 -&gt; 642: the ferias between Epiphany and the Sunday after it
now repeat Epiphany's own Mass instead of each carrying a distinct one.

Swept after the fix: EF 0 crashes, OF 0 crashes.
Readings compared against lectio across 2030/2035/2046 (1095 days): no
divergence beyond each project's own book abbreviations.
</content>
</entry>
<entry>
<title>gen: regenerate the EF tables -- Holy Week, Corpus Christi, the Sacred Heart</title>
<updated>2026-08-18T14:55:23Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T14:55:23Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=0bef4a169f5f8181926ff77e3429da8f4eda106b'/>
<id>urn:sha1:0bef4a169f5f8181926ff77e3429da8f4eda106b</id>
<content type='text'>
Holy Week had been reading Passion week's Masses, because lectio numbered both
Passiontide weeks 0 and their days collided on the slug. Corpus Christi and the
Sacred Heart -- two I-class feasts -- had no lectionary entry and were reading
the Sunday before them through the walk-back. So were the ferias of the first
weeks after Epiphany and after Pentecost, which have proper Masses under RG 299.

Thirteen entries and one week-numbering fix upstream; regenerated against
lectio 74d5575. Distinct days 644 -&gt; 656.
</content>
</entry>
<entry>
<title>gen: regenerate the EF tables -- Rogations, the octave Mass, the Epiphany weeks</title>
<updated>2026-08-18T14:42:12Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T14:42:12Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=293d9291a47f9b1f328a8acc99bf0f2a88edd02c'/>
<id>urn:sha1:293d9291a47f9b1f328a8acc99bf0f2a88edd02c</id>
<content type='text'>
Four upstream corrections land here at once:

  RG 87   Rogation Monday and Tuesday, violet, which lectio did not build
  Missal  the weekdays within the Octave of the Nativity get their own Mass
          ("Diebus infra octavam", Titus 3:4-7 / Luke 2:15-20) instead of the
          Sunday's
  RG 78   the votive Office of Our Lady on Saturday, and RG 309(a)'s Mass for it
  RG 72   weeks after Epiphany counted from the first Sunday, not from 6 January

Distinct days 657 -&gt; 644.

Verified from a genuine EF build across 730 days (2026-2027): ZERO colour
mismatches against colitur. Every day of both years now agrees.
</content>
</entry>
<entry>
<title>gen: regenerate the EF tables -- RG 72's Christmas Time boundary</title>
<updated>2026-08-18T14:09:03Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T14:09:03Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=2b71b638eca7ec924166b64f31585af8399a753f'/>
<id>urn:sha1:2b71b638eca7ec924166b64f31585af8399a753f</id>
<content type='text'>
Christmas Time runs to 13 January inclusive, so 6-13 January is white, not
green. Eight days a year. Regenerated against lectio 27acee1.

Verified from a genuine EF build: 7, 11 and 13 January 2026 all read white,
and 14 January -- the first day that is really Time after Epiphany -- is
unaffected. The day NAMES are deliberately unchanged ("1st Sunday after
Epiphany" still), because lectio now separates the liturgical season from the
season that names things; only the colour moved.
</content>
</entry>
<entry>
<title>gen: regenerate the EF tables -- the RG 124 colours</title>
<updated>2026-08-18T13:43:09Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T13:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=a4e63f408f9fb22f9a4a458b6d97bebe9b8be747'/>
<id>urn:sha1:a4e63f408f9fb22f9a4a458b6d97bebe9b8be747</id>
<content type='text'>
Twelve sanctoral colours corrected upstream: RG 124 gives red to Apostles,
Evangelists and Martyrs, and missalemeum had ten confessors and virgins in red
with two actual martyrs in white -- the rule applied backwards in both
directions. Regenerated against lectio 967e911.

Verified by a 730-day sweep (2026-2027) of this binary's output against
colitur, built properly as EF via config.h rather than the make FORM= variable
that does not do what it looks like. 29 colour differences remain and every
one is a cited class:

  16  C17  the BVM Saturday Office (RG 78), which lectio does not build
  12  C1   the 6-13 January Christmastide boundary (RG 72-73)
   1  C8   Rogation Monday 2027-05-03, violet under RG 128(d) for the
           Litanies' procession and Mass; lectio has no Rogation concept at
           all, so this is an absent feature rather than a wrong value

Nothing unexplained. All three are feature gaps in lectio rather than errors
in it, each already adjudicated verdict-colitur in that project's own
divergence list.
</content>
</entry>
<entry>
<title>gen: regenerate the EF tables again -- Good Friday is black</title>
<updated>2026-08-18T13:27:06Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T13:27:06Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=fb967dccb95ff75c6a5f7a99f5e063effac8a94d'/>
<id>urn:sha1:fb967dccb95ff75c6a5f7a99f5e063effac8a94d</id>
<content type='text'>
The previous regeneration predated lectio's Good Friday fix (RG 128(b) +
RG 132), so this table still coloured the day violet. Regenerated against
lectio 4b2e1a1. Distinct days 656 -&gt; 657: black is a new colour in this
table, which had none before.

Verified this time by building the EF binary properly and reading its output,
not by decoding the table. The earlier commit could not check the vigil
colours because `make FORM=ef` does not do what it appears to -- FORM is
DERIVED from config.h, so that build used EF tables while compiling with
FORM_OF defined, and the binary self-reported "Ordinary Form". Setting
FORM_EF in config.h gives a genuine EF build.

Cross-checked date by date against colitur, the source of these corrections:
all ten corrected days now agree on colour, Good Friday included. A full
365-day sweep of 2026 leaves 23 colour differences, every one a known cited
class -- 10 the BVM Saturday Office (colitur C17, RG 78, which lectio does
not build), 6 the 6-13 January Christmastide boundary (C1, RG 72-73), and 7
the RG 124 red-colour class (colitur M21, verdict colitur, adjudicated
against the scans) which lectio has not yet adopted. Nothing unexplained.
</content>
</entry>
<entry>
<title>gen: regenerate the EF tables from corrected lectio</title>
<updated>2026-08-18T13:03:17Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-18T13:03:17Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=63a8eae8696c555e7bfa202c63e55d5fe5eb5a12'/>
<id>urn:sha1:63a8eae8696c555e7bfa202c63e55d5fe5eb5a12</id>
<content type='text'>
gen/liturgy_ef.h is generated by lectio's clectio-gen, so it inherited the EF
calendar errors colitur found and lectio has now fixed: ubaldus and didacus
ranked as commemorations rather than III-class feasts, and both August vigils
coloured from missalemeum rather than from RG 128.

Regenerated with `go run ./cmd/clectio-gen old 2025 2054`, against lectio at
46653b2. Distinct days 661 -&gt; 656.

Verified: "St. Ubaldus" and "St. Didacus" are now in the name table and were
absent before, so the two rank corrections are present and both saints now
displace the ferias that previously held those days.

NOT independently verified here: the vigil COLOURS. The days[] table is a
deduplicated 656-entry set indexed from elsewhere, and decoding that encoding
to read a colour back would be guesswork rather than a check. Those values
come from lectio, where they are pinned by TestTridentineMissalOverrides and
were mutation-tested. Saying so rather than implying a check that was not run.
</content>
</entry>
<entry>
<title>gen: regenerate the EF table from lectio 0.46.1</title>
<updated>2026-08-17T08:51:43Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-17T08:51:43Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=a0b61ff280bd368dd5aa5e1add0a78d4cf97e9ef'/>
<id>urn:sha1:a0b61ff280bd368dd5aa5e1add0a78d4cf97e9ef</id>
<content type='text'>
Picks up the Lenten Ember fix: three lectionary sections were keyed
ef-lent-1-{wednesday,friday,saturday} while lectio's calendar computes
ef-lent-ember-{wed,fri,sat}, so the lookup missed them and every Lenten Ember
day served Lent I Sunday's Mass.

84 of the 10 957 days in the compiled 2025-2054 range change, all of them Lent
Ember days, all now carrying their proper Masses:

  Ember Wed  1 Kgs 19:3-8       / Matt 12:38-50   (was 2 Cor 6:1-10 / Matt 4:1-11)
  Ember Fri  Ezech 18:20-28     / John 5:1-15     (same)
  Ember Sat  1 Thess 5:14-23    / Matt 17:1-9     (same)

84 rather than 90 because six Ember days across the range are displaced by a
feast that outranks the feria and so were never affected: St Matthias
(2029, 2040, 2051), the Chair of St Peter (2040, 2051) and St Joseph (2038).
Verified by building an EF binary from the tables before and after and diffing
all 10 957 days; no unclassified difference remains.

The OF table regenerates byte-identical and is untouched.
</content>
</entry>
<entry>
<title>gen: regenerate the EF table from lectio 0.46.0</title>
<updated>2026-08-14T11:52:45Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-14T11:52:45Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=c21f54526490eda1c05995659edd7b9b4c8c643d'/>
<id>urn:sha1:c21f54526490eda1c05995659edd7b9b4c8c643d</id>
<content type='text'>
Picks up the seven EF calendar defects fixed in lectio this week. The OF
table regenerates byte-identical and is untouched.

209 of the 10,957 days in the compiled 2025-2054 range change, every one
of them traceable to a cited fix:

  88  colour only
      30  Holy Thursday          violet -&gt; white
      30  3rd Sunday of Advent   violet -&gt; rose   (Gaudete)
      28  4th Sunday of Lent     violet -&gt; rose   (Laetare; the other two
                                                   years change name too,
                                                   see below)
 121  a different day observed
      84  the Lent Ember days, previously emitted as plain ferias
      20  St Matthew (21 Sep) and St Thomas (21 Dec) now winning over a
          coinciding Ember day -- a II-class privileged feria yields to a
          feast
       4  13 January, the Commemoration of the Baptism of the Lord, taking
          an occurring Sunday's place as a feast of the Lord
       3  St Joseph (19 Mar) now correctly transferred off a Sunday of
          Lent instead of displacing it
      10  the 6 March - 5 April cluster of III-class feasts that the
          sanctoral generator had demoted to bare commemorations
          (Felicitas &amp; Perpetua, John of God, Frances of Rome, Isidore of
          Seville, Vincent Ferrer)

Verified by building an EF binary from the tables before and after and
diffing all 10,957 days; no unclassified difference remains.
</content>
</entry>
<entry>
<title>fix: recover dropped readings + collapse whitespace; regenerate data</title>
<updated>2026-07-28T20:51:40Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T20:51:40Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=59fc2e62cbfb94e901ac24c0d85a7bec738473e0'/>
<id>urn:sha1:59fc2e62cbfb94e901ac24c0d85a7bec738473e0</id>
<content type='text'>
Two QA-found bugs fixed:

- mktext now collapses runs of whitespace in verse text to a single space
  (and trims), matching lectio's Fields-based rendering. The Vulgate source
  has occasional double spaces that were leaking into the output.

- Regenerated gen/ with the hermetic, alias-fixed clectio-gen: the generator
  no longer picks up the user's stale books.ini (which had silently dropped
  ~30 EF Ember-day lessons, e.g. St Lawrence-common Sir 45, Osee/Hosea 14,
  2 Esdras/Nehemiah 8). Full range 2025-2054 now has 0 dropped readings.

Verified vs lectio: OF and EF 2026 are byte-identical (day names + verse
text, 0 mismatches); range boundaries 2025-01-01 / 2054-12-31 match; ASAN +
UBSAN clean over leap days, boundaries and edge cases; bad input never
crashes. Shipped total 1.28 MiB.

Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
</content>
</entry>
</feed>
