XPerf
LanguagesNim

nimperf corpus targets

Large trees are not vendored, and the corpus is not shipped with the repo: clone it into any local directory outside the repo and pass that path to the linter. Lint with:

packages/nimperf/nimperf-lint/nimperf-lint \
  <corpus-dir>/<name> --format json --no-fail

Checker is Nim (nimperf-lint), same-language. Requires nim on PATH (choosenim). nm-seq-add-hot–nm-echo-hot default off; nm-seq-no-capacity hint.

Pins

TreeURLCommitNotes
Nimhttps://github.com/nim-lang/Nim58130d2shallow; 41M
Arraymancerhttps://github.com/mratsim/Arraymancerdcc220cshallow; 7.0M
nimbus-eth2https://github.com/status-im/nimbus-eth2963756cshallow; 25M

Cloned (2026-10-22) + G3 redesign

Treer2 → r3 (defaults)
Nim112 → 39
Arraymancer17 → 2
nimbus-eth241 → 171

Redesign

  • nm-seq-no-capacity: empty seq + .add in size-hinted loop; prefer newSeqOfCap
  • Skip compiler/; demote nm-seq-add-hot–nm-echo-hot after OK-idiom domination

Do not commit corpus sources into packages/nimperf.