Repository navigation
All kits: --scope all + *-in-loop → *-hot; jsperf adopter FPs/hints - #1
Merged
Merged
Conversation
Adopter feedback: loop-header and nested-function false positives, broader test/e2e path skips, and new hints that can see JS inside executeJavaScript/evaluate templates. - Scope in-loop smells to the loop body (not for/of headers) - Skip nested function/arrow bodies defined inside loops - Skip e2e/, playwright-report/, *.test.*/ *.spec.* - Add hint rules jp-query-all-star, jp-execjs-in-timer, jp-clone-per-event - Paired fixtures, smoke, docs/CHANGELOG; no severity escalations
Report former in-loop smells everywhere by default so extreme-perf stacks and AI readers do not treat non-loop sites as out of scope. Opt in with --scope loop for the old in-loop-only match. Refresh messages, docs, fixtures, and smoke accordingly.
Default matching reports outside loops/hot paths; opt in with --scope loop (or kit-equivalent). Finding messages/guides no longer imply loop-only fixes. Renamed ~106 in-loop slugs to *-hot across packages/* with tombstones under evidence/_removed (never reuse). Updated smell-catalog, rule-id maps, CHANGELOG, AGENT. Self-lints that hit under scope=all use --scope loop.
… jvm fixtures - cppperf: drop default scope args from scan.cpp definitions (keep in header) - goperf: unify fixture package names; //go:build ignore so go test ./... skips them - self-lint: pin --scope loop for kits that dogfood under default scope=all - jvmperf: classic FixtureTest pairs use scopeAll=false; exitCodes --scope loop; disableByName + ignore fixtures use *-hot short names
Usage and self-lint already required --scope loop, but main.c treated it as an unknown flag and exited 2, failing CI objcperf smoke. Wire g_scope_all the same way as sibling C kits.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extreme-perf policy across every
packages/*kit (same PR as the jsperf adopter work):all— former loop/hot-path smells also match outside loops; opt in to--scope loop(or kit-equivalent) for the old loop-only match.*-in-loop(and equivalents) →*-hot; old slugs tombstoned underevidence/_removed/*.REMOVED.mdper AGENT.md (never reuse). ~106 renames; see each kitdocs/rule-ids.mdRenamed table.Also keeps the earlier jsperf adopter FP cuts + new hints (
jp-query-all-star,jp-execjs-in-timer,jp-clone-per-event).Kits covered
arktsperf, beamperf, cperf, cppperf, csharpperf, dartperf, goperf, jsperf, jvmperf, kotlinperf, luaperf, nimperf, objcperf, phpperf, pyperf, rubyperf, rustperf, swiftperf, zperf (+ shared docs: smell-catalog, rule-regression, rule-id-map, CHANGELOG, AGENT).
Notes
scope=allpin--scope loop.matchHotfor alloc/print/open/clock/json; fixture classic pairs still underscope_all=false.all.--scope all|loop(setsg_scope_all); usage/self-lint already expected it.Test plan
zig build testbash scripts/privacy-check.sh/doc-check.sh/sync-check.sh5f5cc5d: cppperf compile (default-arg once), goperf fixturepackage+//go:build ignore, lua/ruby/cpp (+ other kits) self-lint--scope loop, jvmperf FixtureTest/ignore fixturesf18bf00: objcperf-lint parse--scopeso self-lint no longer exits 2 — full CI green on this PRHead
f18bf00onjsperf-lint/adopter-fp-and-hints.