<feed xmlns='http://www.w3.org/2005/Atom'>
<title>clectio.git/Makefile, 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-17T08:58:35Z</updated>
<entry>
<title>release: v1.1</title>
<updated>2026-08-17T08:58:35Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-17T08:58:35Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=3d6fe1fdee306f41c62e9d77640622fe351d7e88'/>
<id>urn:sha1:3d6fe1fdee306f41c62e9d77640622fe351d7e88</id>
<content type='text'>
Three changes since v1.0, all data or docs -- no engine change:

  a0b61ff  EF table regenerated from lectio 0.46.1: the Lenten Ember days were
           serving Lent I Sunday's Mass. 84 days of the compiled 2025-2054
           range corrected.
  c21f545  EF table regenerated from lectio 0.46.0: seven precedence and
           temporal defects, 209 days.
  1ac11af  docs: exact corpus paths, and the form follows config.h.

The shipped binary is an Ordinary Form build (config.h), and the OF table is
byte-identical across both regenerations -- so this release changes nothing for
a default build. It matters only to someone building with FORM_EF.
</content>
</entry>
<entry>
<title>build: add `make dist` source-tarball target + .gitattributes export-ignore</title>
<updated>2026-07-29T08:30:33Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T08:30:33Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=00b51e3292062f52a4699440cb36b3aa337dbd17'/>
<id>urn:sha1:00b51e3292062f52a4699440cb36b3aa337dbd17</id>
<content type='text'>
- `make dist` runs git archive to write clectio-$(VERSION).tar.gz: a snapshot of
  the committed tree only -- no .git history, and no build artifacts (they are
  untracked, so git archive can't include them). VERSION defaults to 1.0,
  overridable (make dist VERSION=x). `clean` removes the tarball; it is
  gitignored.
- .gitattributes marks .gitignore and .gitattributes export-ignore, so they stay
  out of the shipped source tarball.

Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
</content>
</entry>
<entry>
<title>feat: man page (clectio.1), installed by make install</title>
<updated>2026-07-29T08:06:24Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T08:06:24Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=d17262c10fc24557741a5b571f40dfd9625fdb2e'/>
<id>urn:sha1:d17262c10fc24557741a5b571f40dfd9625fdb2e</id>
<content type='text'>
Add a manual page covering usage, the -a/-g and --month options, the compile-
time config.h settings (FORM/SIGLA/COLOR/GOSPEL_ONLY/WRAP), and both the
bring-your-own-Bible and bring-your-own-calendar workflows, matching the README.
Install it via make (MANPREFIX = $PREFIX/share/man); uninstall removes it too.
Renders clean under man --warnings.

Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
</content>
</entry>
<entry>
<title>feat: standalone calendar overrides (calendar.h) + document customization</title>
<updated>2026-07-29T07:55:22Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T07:55:22Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=2468224d0aaacd8b0e7478af55142bcd831d2b77'/>
<id>urn:sha1:2468224d0aaacd8b0e7478af55142bcd831d2b77</id>
<content type='text'>
Add a compile-time override table for MINOR local calendar changes, standalone
(no lectio, no toolchain): edit calendar.h (copied from calendar.def.h), add a
{ month, day, colour, "name" } row, make. It replaces a fixed date's name and
colour, every year, in both single-day and --month output. Limits (no engine):
fixed dates only; name/colour only, not readings or rank/precedence; an override
wins unconditionally.

README gains a "Customize the calendar" section documenting both tiers with
their limits: the standalone override above, and -- for readings, ranks and
movable feasts -- regenerating gen/ from a lectio calendar layer via
clectio-gen (-caldir/-use), then rebuilding with CORPUS= to repack any newly
cited verses, with a git-checkout revert note.

Both forms build clean under -Wall -Wextra; binary unchanged at 666 KB; default
(empty override table) output is unchanged.

Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
</content>
</entry>
<entry>
<title>perf: DEFLATE (puff) + -no-pie -&gt; OF binary 879 KB -&gt; 662 KB (-25%)</title>
<updated>2026-07-28T22:49:47Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T22:49:47Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=302897c5e8d61db9107505ba929f9abfc197896d'/>
<id>urn:sha1:302897c5e8d61db9107505ba929f9abfc197896d</id>
<content type='text'>
Two size wins:

- Replace the home-grown LZSS (2.0x) with DEFLATE: mktext gzips the text and
  strips the gzip container to a raw DEFLATE stream; clectio decompresses it
  with puff, Mark Adler's public-domain reference inflate (~200 lines, verified
  byte-identical to gunzip on the OF/EF text, repetitive, random and empty
  inputs). Text blob 671 KB -&gt; 492 KB (OF), 164 KB -&gt; 132 KB (EF), 2.7x.

- Build with -no-pie: clectio is a local CLI reading static embedded data with
  no attack surface, so it needs no PIE/ASLR. The linker then bakes the string-
  table pointers in at link time instead of emitting ~57 KB of runtime
  relocations.

Net: OF 879 -&gt; 662 KB, EF 266 -&gt; 214 KB. Verified byte-identical to lectio.
The default build still needs only a compiler + libc; a CORPUS= rebuild now
also needs gzip. lz.h removed.

Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
</content>
</entry>
<entry>
<title>make: honor $CC (CC ?= cc) so a gcc environment builds with plain `make`</title>
<updated>2026-07-28T21:28:15Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T21:28:15Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=4a0ab3d2f390a68b18c40b04269c46a6373c08f9'/>
<id>urn:sha1:4a0ab3d2f390a68b18c40b04269c46a6373c08f9</id>
<content type='text'>
Change the hard `CC = cc` to `CC ?= cc` so an exported CC (e.g. CC=gcc) is
respected. Keeps the suckless default of cc for clones while letting a system
whose `cc` is shadowed use plain `make` without passing CC= each time.

Claude-Session: https://claude.ai/code/session_01S1CD1u3tgSS4xNu6WHfp5a
</content>
</entry>
<entry>
<title>clectio: tiny suckless C daily readings, all readings compiled in</title>
<updated>2026-07-28T20:07:45Z</updated>
<author>
<name>lectio</name>
<email>lukasz@arcofasiagroup.com</email>
</author>
<published>2026-07-28T20:07:21Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/clectio.git/commit/?id=42fd9a69fa2bc9ef11c65c169a58ff40c9cb0fa1'/>
<id>urn:sha1:42fd9a69fa2bc9ef11c65c169a58ff40c9cb0fa1</id>
<content type='text'>
clectio prints the Catholic liturgical day and its Mass readings for a date
with a single table lookup -- no computation, config file, network, or deps
beyond libc. The calendar, reading citations and scripture text are all
compiled in; the whole shipped package fits on a 1.44 MB floppy (~1.29 MiB)
and the binary is ~0.9 MB (OF) / ~0.3 MB (EF).

- suckless config.h: FORM_OF/FORM_EF, SIGLA_ENGLISH/SIGLA_LATIN, COLOR.
- Bring your own Bible: `make CORPUS=mybible.tsv` recompiles with any
  Vulgate-numbered 6-column TSV; only the ~12k cited verses are embedded.
- The hard liturgical logic stays in lectio (Go, oracle-validated); its
  clectio-gen emits the corpus-independent tables in gen/. The scripture text
  is LZSS-packed (lz.h) to fit; mktext/bin2h resolve+embed it at build time.
- Verified byte-identical to lectio's readings; day names match 157/157 over
  a 3-year sample. Default text: public-domain Latin Vulgate. ISC-licensed.

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