Skip to content

v1.6.2

Choose a tag to compare

@github-actions github-actions released this 29 Aug 02:37
· 12 commits to main since this release
v1.6.2
c02264d

What changed

Nothing in the paredit binary. This is a test-infrastructure release.

paredit-feature-lint-fennel-janet-depth's cost gate asserted a wall-clock ratio
(< 1.8) on rules that cost 16–75 ns per check call in a release build. An
assertion at that magnitude is decided by machine load as much as by the code:
the same tree measures 1.05 in a dev build, 1.27 idle in release, and failed a
downstream Nix package build at 2.04 with nothing touched.

The residual growth is not a complexity change either — doubling the file doubles
the tree, so the traversal's working set stops fitting in cache. That is constant
work per call taking more time per call.

The ratio is now an #[ignore]d benchmark. In its place is an assertion on rule
invocation counts, which the head index and the dialect scope fix before any
check body runs and which are therefore identical on an idle machine and a
loaded one. The O(file)-per-call shape the ratio was chasing is still measured
directly by every_rule_stays_far_cheaper_than_a_materializing_one, which has
four orders of magnitude of headroom against its 10× floor.

This matches the pattern already used in lint-introspection, lint-hy-depth,
lint-form-shape, lint-macro-authoring, lint-documentation and
lint-type-declaration.

Do I have to change anything?

No. No command path, flag, exit code, documented JSON field, Nix output, or MSRV
changed.

One case is worth calling out. If you package paredit-cli yourself and run the
test suite during the build — for example rustPlatform.buildRustPackage, whose
doCheck defaults to true — this release removes the test that could fail your
build under sandbox load. Upstream's own packages.default has always skipped
the suite; it belongs to the nextest flake check and nowhere else.