Skip to content

Commit 3d65431

Browse files
author
merge-queue-bot
committed
Merge PR #684: docs(benchmarks): restructure the benchmark write-up for scannability
2 parents 02cac29 + bc307f5 commit 3d65431

6 files changed

Lines changed: 407 additions & 362 deletions

File tree

docs/background/markdown-linters.md

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ use of LLMs as linters.
1111

1212
### mdsmith
1313

14-
Go binary with zero runtime deps. It ships 67 rules,
15-
[MDS001][mds001] through [MDS068][mds068] (MDS060 is
14+
Go binary with zero runtime deps. It ships 69 rules,
15+
[MDS001][mds001] through [MDS070][mds070] (MDS060 is
1616
unused). They cover structure, readability, cross-file
1717
links, and generated content.
1818

19-
26 of the 67 rules are opt-in (off by default), among them
19+
26 of the 69 rules are opt-in (off by default), among them
2020
conciseness-scoring ([MDS029][mds029]); the rest run by
2121
default.
2222

@@ -151,7 +151,7 @@ gates.
151151
| Aspect | gomarklint | mdsmith |
152152
| ------------- | ---------------------- | -------------------------------- |
153153
| Distribution | static Go binary | static Go binary |
154-
| Rule set | 23, kebab-case IDs | 67, `MDSxxx` IDs |
154+
| Rule set | 23, kebab-case IDs | 69, `MDSxxx` IDs |
155155
| Autofix | no | `mdsmith fix`, multi-pass |
156156
| LSP / editor | no (VS Code planned) | LSP for any editor |
157157
| Config | `.gomarklint.json` | `.mdsmith.yml` |
@@ -629,7 +629,7 @@ R Markdown constructs the others flatten away.
629629
| ----------------------- | ------------ | -------------------- | -------------------- | ------------ |
630630
| Language | Go | Rust | Rust | Rust |
631631
| Rule IDs | own `MDSxxx` | markdownlint `MDxxx` | markdownlint `MDxxx` | own |
632-
| Rule count | 67 | 71 | ~41 | unenumerated |
632+
| Rule count | 69 | 71 | ~41 | unenumerated |
633633
| Autofix / format | `fix` | `--fix`, `fmt` | no | `format` |
634634
| LSP / editor | yes (LSP) | yes (LSP) | no | yes (LSP) |
635635
| Config format | YAML | TOML | TOML | TOML |
@@ -757,19 +757,22 @@ access and is non-deterministic.
757757

758758
## Benchmarks
759759

760-
Default mdsmith is substantially faster than
761-
markdownlint-cli2 on its own Markdown. With the
762-
mdsmith-only rules disabled (`mdsmith-parity`), it lands
763-
close to rumdl. See the [benchmark doc][bench] for the
764-
current ratios.
760+
Default mdsmith is more than an order of magnitude faster
761+
than markdownlint-cli2 on its own Markdown. With the
762+
mdsmith-only rules disabled (`mdsmith-parity`), it runs at
763+
mado's speed: the two tie on the repo corpus, and parity
764+
trails mado only narrowly on the longer neutral corpus. See
765+
the [benchmark doc][bench] for the current ratios.
765766

766-
mado and rumdl lead the per-file race. mdsmith trails
767-
them today because it also walks the cross-file graph,
768-
scores readability, and validates generated sections.
767+
Among the Rust linters, mado leads the per-file race.
768+
Default mdsmith does more per file: it walks the
769+
cross-file graph, scores readability, and validates
770+
generated sections. Even so, it comes in ahead of rumdl
771+
and panache on both corpora.
769772

770-
Pick mado or rumdl for raw markdownlint throughput.
771-
Pick panache for Quarto or R Markdown. Pick mdsmith for
772-
the cross-file and self-maintaining-section layer.
773+
Pick mado for raw markdownlint throughput. Pick panache
774+
for Quarto or R Markdown. Pick mdsmith for the cross-file
775+
and self-maintaining-section layer.
773776

774777
See the [benchmark doc][bench] for the full method, both
775778
corpora, every tool's command, the result tables, and
@@ -1020,7 +1023,7 @@ if you need a stable rule set across upgrades.
10201023
[mds025]: ../../internal/rules/MDS025-table-format/README.md
10211024
[mds027]: ../../internal/rules/MDS027-cross-file-reference-integrity/README.md
10221025
[mds067]: ../../internal/rules/MDS067-callout-type/README.md
1023-
[mds068]: ../../internal/rules/MDS068-link-style/README.md
1026+
[mds070]: ../../internal/rules/MDS070-same-file-anchor/README.md
10241027
[mds028]: ../../internal/rules/MDS028-token-budget/README.md
10251028
[mds029]: ../../internal/rules/MDS029-conciseness-scoring/README.md
10261029
[mds035]: ../../internal/rules/MDS035-toc-directive/README.md

docs/features/performance.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ docs/research/benchmarks/data/*.json — do not edit by hand. Re-run
3939
the harness (run.sh) and `mdsmith fix` to refresh. -->
4040
One static Go binary checks 766 Markdown files in about
4141
0.2 s. That is roughly 22x faster than Node markdownlint.
42-
It does more per file than the Rust linters; closing the rest of
43-
that gap is active work.
42+
It does more per file than the Rust linters; closing
43+
the gap to the fastest of them is active work.
4444
<?/include?>
4545

4646
These numbers are re-measured each release, not hand-typed. A CI

0 commit comments

Comments
 (0)