Build Performance (Server Mode, Batching, Git Cache)

LaMD build performance is driven primarily by minimizing repeated subprocess startup and repeated scanning work in Makefile-driven pipelines.

Quick start

  • Default builds use the standard toolchain (maketalk, makecv, Makefiles, pandoc, gpp).

  • Fast paths are available via server mode and batching optimizations where appropriate.

Server mode

Some LaMD workflows can use a long-running backend service (via lynguine) to avoid repeated initialization costs.

mdfield server-mode integration

mdfield supports server mode via flags/environment variables (see tool help and repo notes). This reduces repeated in-process initialization work, but the biggest speedup comes from reducing repeated Python subprocess startup costs (see next section).

Shell client for fast metadata extraction

For Makefile-heavy workflows that call mdfield many times, a lightweight shell client can be used (via generated Makefile configuration) to avoid paying Python interpreter startup repeatedly.

If you encounter curl/jq dependency errors, install those OS tools and retry.

Batching

Two major batching optimizations exist in the build pipeline:

  • dependencies batch: extracts multiple dependency types in one pass (instead of repeated scans)

  • mdfield batch: extracts many fields in one call (instead of many sequential calls)

These reduce redundant parsing/scanning and can significantly improve build times for talks/CVs with many includes.

Git update caching

Builds sometimes consult git repositories for dependency updates (snippets, bibliographies, etc.). To avoid contacting remotes on every build, LaMD uses a caching strategy so repeated builds don’t repeatedly pay remote-check overhead.

Compressed CIPs

This page compresses the stable outcomes from:

  • CIP-0008: Integrate Lynguine Server Mode for Fast Builds
    (https://github.com/lawrennd/lamd/blob/main/cip/cip0008.md)

  • CIP-0009: Further Performance Optimization: Close the Gap
    (https://github.com/lawrennd/lamd/blob/main/cip/cip0009.md)

The CIPs contain the full chronology, benchmarks, and rationale; this page is the “current user-facing truth”.