This release contains the following enhancements:
1) The command-line interface now prints a single, in-place progress line
while reading, indexing, or exporting many documents, instead of printing
one line per document.
2) The Nix flake now builds StrictDoc itself and provides a development
shell with all Python dependencies resolved from pyproject.toml,
so a separate pip install step and virtual environment are no longer
needed when using Nix.
3) The file pickle cache is faster: it now uses a stat-based fast path to
detect unchanged files instead of hashing their full content on every run,
and it writes pickles with the highest available protocol instead of the
slowest, largest one.
4) Parallel HTML export of large document trees is faster and uses less
memory: worker processes now get the traceability index and HTML generator
through fork() with copy-on-write instead of through a pickled pool
initializer which makes the entire process much faster on Linux and macOS.
5) The C/C++ source file reader now recognizes function declarations that
return a function pointer.
6) Fixed: pygments is now pinned to a specific version to avoid
inconsistent syntax highlighting of source files caused by unpinned
upstream releases.
What's Changed
- perf: use HIGHEST_PROTOCOL for pickle cache by @stanislaw in #3106
- perf(backend/sdoc): stat-based fast path for the file pickle cache by @stanislaw in #3107
- docs: break down the Git workflow into sub-sections by @stanislaw in #3110
- perf(export/html): pool initializer for parallel document export by @stanislaw in #3109
- chore(skills): add mandatory humanizer pass and skill pointer generation by @mettta in #3111
- perf(helpers/parallelizer): use a static fork-vs-forkserver choice per Parallelizer instance by @stanislaw in #3113
- feat(helpers/timing): print in-place progress line for repetitive operations by @stanislaw in #3112
- docs: update Roadmap and Backlog diagrams by @stanislaw in #3114
- feat(nix): build and run StrictDoc from the flake by @adamatom in #3108
- docs: update release notes by @stanislaw in #3116
- fix(pyproject): update to a new version of pygments and pin it by @stanislaw in #3122
- feat(backend/sdoc_source_code): support function declarations returning function pointers by @stanislaw in #3120
- docs(markdown): update user guide by @mettta in #3117
- docs: update release notes by @stanislaw in #3123
- release: bump version to 0.28.1 by @stanislaw in #3127
New Contributors
Full Changelog: 0.28.0...0.28.1