rust-lang / rust-lang/rustfmt

rustfmt is slow on pest generated grammars

Open
#4,476 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-generated-code C-bug
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
2d 13h
Merged PRs (30d)
24

Description

Rustfmt takes about a minute to reformat 26k file (generated pest grammar).

File in question: https://github.com/steveklabnik/semver-parser/blob/0c43dbb12d35f9b58142b3976391eb52ea71725f/src/generated.rs

To Reproduce

Run this test in the semver-parser repo:

https://github.com/steveklabnik/semver-parser/blob/0c43dbb12d35f9b58142b3976391eb52ea71725f/tests/genpest.rs#L14

Expected behavior

Formatting takes low-digits seconds.

Meta

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the report by running the test at tests/genpest.rs, especially the command around lines 68-84, against src/generated.rs from the linked semver-parser revision. Start by measuring the current formatting time and tracing the rustfmt path used by that test; done means formatting the 26k generated file completes in the reported low-single-digit seconds or the remaining limitation is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
performance, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
43/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.