summaryrefslogtreecommitdiff
path: root/mkdeps.sh (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Compute each selector once, not seven timesEuAndreh4 days1-78/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mkdeps.sh asked the same questions over and over: "pages" is built on four of the other selectors, the tagged list mkwb reads asks for all seven again, and "collections" alone was computed nine times, a find and a grep and a sort apiece. It spawned 372 processes to print 2450 lines. Every answer is now computed once, up front, into a file named after it, and read back from there. The three hand-rolled caches go with it: they were the same idea, done three times, and the loop that fills them says the dependency order out loud. Two smaller things fell out on the way: collections ran dirname once per collection where sed does it in one, and articles ran one find per collection where find takes them all at once. The order the loop fills them in is not decoration. A pipeline's stages run side by side, and only_masters and with_translations are two stages of one selector that both read what po4a writes --- so an answer computed where it is first needed can be read while it is still half-written, which is a race that shows up as an empty list and a deps.mk missing half the site. Filled in order, up front, nothing is ever read while it is being written. 372 processes to 109, 0.47s to 0.24s, byte-identical deps.mk over a dozen runs. The floor now is exec(2): the tools this reaches for cost 1.1 to 2.5ms each to start, and a hundred of them is the whole of the remaining runtime. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KxLpaNQThKfMG3ecCJptP9
* mEuAndreh5 days1-2/+2
|
* Translate the content with maritacag rather than po4aEuAndreh5 days1-4/+6
| | | | | | | | | | | | | | | | | | | | | | ab781e1 moved the manual pages over and left this behind: the i18n target was changed to maritacag(1), but the rule that actually writes the site's translations -- src/i18n.sentinel, emitted by mkdeps.sh -- still shelled out to po4a. So the build kept needing po4a even though nothing else in the fleet did, and the package in pkgs still carried it as an input. --no-update rather than the bare invocation po4a had. Everywhere else in the fleet a build writes translations and never catalogues; "make i18n" is what brings those up to the masters. The old rule did both, which is why the i18n target beside it was a duplicate of it. Byte for byte the same: over a clean checkout, po4a, maritacag and maritacag --no-update each write the identical src/ tree, and none of the three rewrites a catalogue. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BMowJCogxLWcMdVYYhbLpH
* Name the i18n stamp a sentinelEuAndreh6 days1-5/+5
| | | | | | | | | Every other file of its kind here is a sentinel, and .sentinel is what the suffix rules and the .gitignore already spell. One outlier called .stamp meant two names for the one idea. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KxLpaNQThKfMG3ecCJptP9
* mEuAndreh9 days1-103/+280
|
* Makefile: Fix dependency tracking of $(captured-assets)EuAndreh2025-05-041-0/+1
| | | | | Since I can't get deterministic outputs out of mktorrent(1), change torrents from $(captured-assets) to $(dynamic-contents).
* Makefile: Turn "i18n.sentinel" into a standalone "i18n" virtual targetEuAndreh2025-05-041-5/+0
|
* mkdeps.sh: Include all translated files in po4a.inEuAndreh2025-05-021-1/+1
|
* Support multiple names for "categories" fileEuAndreh2025-05-011-17/+18
|
* mkdeps.sh: Fixup indentationEuAndreh2025-05-011-6/+7
|
* Makefile: Build slide PDFs with shiny new eslaides(1)EuAndreh2025-04-301-0/+9
|
* src/content/pt/hea/categorias.adoc: Adiciona com tradução e funcionamento ↵EuAndreh2025-04-301-1/+1
| | | | parcial
* Makefile: Include call to po4a(1) in buildEuAndreh2025-04-301-0/+6
|
* mkdeps.sh: Support multiple languagesEuAndreh2025-04-301-12/+24
|
* Makefile: Support flac -> ogg conversion and torrent file generationEuAndreh2025-04-291-4/+21
|
* mkdeps.sh, Makefile: Fix generation of correct categories.htmllisting filesEuAndreh2025-04-141-2/+4
|
* mkdeps.sh: Simple refactor while adding deps for categories.htmllisting filesEuAndreh2025-04-131-18/+42
| | | | Its contents aren't correct yet, they're still whatever indexbody spits.
* mkdeps.sh: Rename "listings" to "indexes"EuAndreh2025-04-111-12/+12
|
* mkdeps.sh: Put .gz at the beginning of printsEuAndreh2025-04-111-4/+4
|
* mkdeps.sh: Use single sed to create all file.gz dependenciesEuAndreh2025-04-111-4/+7
|
* mkdeps.sh: Use --relative-to flag from realpath to simplify normalize()EuAndreh2025-04-111-3/+1
|
* Makefile: Generate a feed per categoryEuAndreh2025-04-111-16/+21
|
* Makefile: Add "check-unit-updatedat" targetEuAndreh2025-04-101-0/+1
|
* Makefile: Normalize unit test target namesEuAndreh2025-04-101-1/+1
|
* Makefile, deps.mk, mkdeps.sh: Cosmetic tweaksEuAndreh2025-04-051-0/+1
|
* Makefile: Setup structure to externally archive linksEuAndreh2025-04-051-0/+1
|
* Makefile: Add test for internal broken linksEuAndreh2025-04-051-0/+2
|
* mkdeps.sh: tabs over spacesEuAndreh2025-04-031-1/+1
|
* Makefile, mkdeps.sh: Derive index.html and feed.xml from more static ↵EuAndreh2025-03-311-9/+8
| | | | "sortdata.txt" files
* Makefile, mkdeps.sh: Silent commands that are already too big, and will get ↵EuAndreh2025-03-301-1/+3
| | | | bigger
* Makefile: Add compressed snippets filesEuAndreh2025-03-301-0/+1
|
* Generate gzipped variation of final outputEuAndreh2025-03-081-0/+4
|
* v0 migration to mkwbEuAndreh2024-11-181-0/+81