-
-
Notifications
You must be signed in to change notification settings - Fork 0
perf: lexer + recognizer micro-optimizations on the C# hot path #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 15 commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
3a11745
perf(parser): incremental wins on recursive recognizer hot path
tinovyatkin c310dd2
internal: add PredictionFxHasher for hot-path FxHash maps
tinovyatkin d1cc835
perf(lexer): Rc-wrap cached DFA state to avoid Vec<ConfigKey> clone
tinovyatkin 0d99ed8
perf(lexer): switch closure-state seen set from BTreeSet to FxHashSet
tinovyatkin a16fab4
perf(lexer): swap LexerDfaTrace BTreeMap fields for FxHashMap
tinovyatkin 6014aad
perf-counters: track outcome list length distribution
tinovyatkin 8587fd7
perf(parser): inline single-atom-match transitions in fast loop
tinovyatkin 15cbcca
perf(parser): skip diagnostics merge when child has no diagnostics
tinovyatkin 74936d1
perf(parser): intern empty NodeList tail to avoid Rc allocation
tinovyatkin 579e89e
perf(parser): per-instance decision lookahead cache
tinovyatkin c240e5c
perf(parser): LL(1) early-commit when FIRST sets are disjoint
tinovyatkin dcc2921
perf(parser): inline-scan dedupe instead of BTreeSet for small outcom…
tinovyatkin 545ae19
perf(parser): cache LL(1) alt selection per (state, lookahead)
tinovyatkin e10bef2
perf(parser): inline single-node NodeList variant to skip Rc<NodeList…
tinovyatkin cfd5cd9
fix(parser): dedupe overflow when >8 distinct outcomes per visit
tinovyatkin ba515eb
review(prediction): use i32::cast_unsigned for FCP consistency
tinovyatkin e9d20c1
review(parser): clear ll1_decision_cache on parse reset
tinovyatkin a5b2f09
review(parser): use rule_first_set return value directly
tinovyatkin 11b2139
review(parser): use exact (state, index) pair for cycle-guard
tinovyatkin c704581
review(parser): scope SHARED_ATN_CACHES key to grammar identity
tinovyatkin d5b2fe1
chore: improve CLAUDE.md
tinovyatkin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.