• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jackfirth / resyntax
97%
master: 97%

Build:
Build:
LAST BUILD BRANCH: HEAD
DEFAULT BRANCH: master
Repo Added 28 Oct 2025 07:40AM UTC
Files 164
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH perf/syntax-line-count
branch: perf/syntax-line-count
CHANGE BRANCH
x
Reset
  • perf/syntax-line-count
  • HEAD
  • allow-comments-in-refactoring-tests
  • autofix-24-1
  • autopilot-blocking
  • autopilot-workflow
  • ci-debug
  • claude-github-actions
  • claude/gracious-feistel-2be52d
  • cli-json
  • cli-tests
  • compile-test
  • copilot/add-analyzer-load-tests
  • copilot/add-analyzer-timeout-option
  • copilot/add-expanded-id-table-utility
  • copilot/add-function-expression-analyzer
  • copilot/add-fuse-map-with-for-rule
  • copilot/add-in-syntax-paths-utility
  • copilot/add-printf-without-specifiers-rule
  • copilot/add-resyntax-fix-json-output
  • copilot/add-string-representation-syntax-paths-again
  • copilot/add-syntax-path-filter-utility
  • copilot/add-syntax-property-extraction-apis
  • copilot/add-warning-rule-support
  • copilot/allow-custom-analyzers-in-rules
  • copilot/configurable-analyzer-timeout
  • copilot/consolidate-legacy-migration-rules
  • copilot/extract-let-from-arguments
  • copilot/fix-8175575-328049080-6434af77-80e7-42db-a2ea-55d3c2dafeba
  • copilot/fix-aggressive-when-merging
  • copilot/fix-broken-code-replacements
  • copilot/fix-error-to-raise-arguments-error
  • copilot/fix-identifier-usage-analyzer
  • copilot/fix-improper-syntax-paths
  • copilot/fix-syntax-parse-rule-issue
  • copilot/fix-syntax-path-logging
  • copilot/fix-unwanted-suggestion
  • copilot/handle-multiple-variables-in-rule
  • copilot/improve-test-coverage-file-group
  • copilot/improve-test-coverage-github
  • copilot/move-rules-to-let-replacement
  • copilot/refactor-analyzers-reuse-table-code
  • copilot/refactor-rules-suites-analyzers
  • copilot/refactor-sequence-tail-replacement
  • copilot/refactor-source-analyze-analyzers
  • copilot/refactor-test-imports
  • copilot/remove-matching-comparator-file
  • copilot/remove-proper-syntax-path-predicate
  • copilot/skip-failing-analyzers
  • copilot/skip-push-workflows-for-copilot
  • copilot/split-formatting-preservation-tests
  • copilot/store-visited-paths
  • copilot/suggest-using-define-syntax-parse-rule
  • copilot/update-identifier-usage-analyzer
  • copilot/use-module-lexer-for-comments
  • coverage
  • coverage-fixing
  • coverage-loops
  • coverage-workflow
  • docs-preview
  • document-github-integration
  • document-github-integrations-448
  • fix-800-flattening-perf
  • fix-comment-reading
  • fix-define-syntax-parser-syntax-loc
  • fix-property-bundle-error-source-830
  • fix-quasiquote-to-list-quoted-datums
  • fix-reysntax-typo
  • github-env-vars-lazy-820
  • grimoire
  • grimoire-examples-property-bundle
  • grimoire-examples-source
  • grimoire-examples-source-group
  • grimoire-file-group
  • grimoire-linemap
  • grimoire-string-replacement
  • grimoire-string-replacement-examples
  • grimoire-stxpath
  • grimoire-syntax-movement
  • grimoire-syntax-property-bundle
  • jackfirth-patch-1
  • jackfirth-patch-1-1
  • jackfirth-patch-2
  • let-replacement
  • limit-open-autopilot-prs-770
  • make-immutable-hash-quasiquote-to-hash
  • manual-display-to-file-rule
  • manual-testing
  • manual-workflow
  • master
  • null-when-guard-to-match-pattern
  • perf/analysis-hash-tables
  • perf/eager-search-everything
  • perf/syntax-path-comparator
  • pr-analysis
  • remove-copilot
  • rule-application-timing
  • run-rule
  • split-grimoire
  • syntax-path-tree-diagram
  • test-git-rkt
  • test-github-review-construction-820
  • test-refactoring-result-pure-functions
  • test-run-command
  • test-syntax-path-error-branches-816
  • text-trees
  • when-unless-keyword-multi-body-only

22 Jul 2026 12:32AM UTC coverage: 96.59%. First build
#578

Pull #841

cover

jackfirth
Stop traversing whole subtrees to decide if syntax is one line or many

`oneline-syntax?` and `multiline-syntax?` were implemented by counting every
distinct source line among all the atoms in a syntax object, using a
`syntax-search` stream fed through a rebellion transducer pipeline. Neither
caller needs an exact count, and both build a lazy stream over the entire
subtree even when the second line is found immediately.

Counting directly with a recursive traversal that stops at two distinct lines
cuts analysis time for `xrepl-lib/xrepl/xrepl.rkt` (1877 lines) from ~78 seconds
to ~65 seconds.

The traversal deliberately mirrors `syntax-search`'s shape, including its
handling of improper lists and its treatment of non-list, non-atom syntax (such
as vectors) as having no lines at all. Both implementations were run against
every subform of several large source files, plus hand-built edge cases, with
identical results on all 28,585 syntax objects.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pull Request #841: Stop traversing whole subtrees to decide if syntax is one line or many

25 of 26 new or added lines in 1 file covered. (96.15%)

17504 of 18122 relevant lines covered (96.59%)

0.97 hits per line

Relevant lines Covered
Build:
Build:
18122 RELEVANT LINES 17504 COVERED LINES
0.97 HITS PER LINE
Source Files on perf/syntax-line-count
  • Tree
  • List 164
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
#578 perf/syntax-line-count Stop traversing whole subtrees to decide if syntax is one line or many `oneline-syntax?` and `multiline-syntax?` were implemented by counting every distinct source line among all the atoms in a syntax object, using a `syntax-search` stream fed th... Pull #841 22 Jul 2026 01:44AM UTC jackfirth cover
96.59
See All Builds (580)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc