Skip to content

Remove compiled parser support - #317

Merged
sebastienros merged 1 commit into
mainfrom
sebastienros-remove-compiled-parsers
Jul 30, 2026
Merged

Remove compiled parser support#317
sebastienros merged 1 commit into
mainfrom
sebastienros-remove-compiled-parsers

Conversation

@sebastienros

Copy link
Copy Markdown
Owner

Runtime-compiled parsers now perform similarly to Fluent parsers, while source generation provides the optimized path without runtime graph compilation. Keeping the expression-tree compiler therefore adds substantial implementation and maintenance cost without a meaningful performance benefit.

Summary

  • remove Parser<T>.Compile(), automatic compilation thresholds, compilation interfaces, expression-tree implementations, and the FastExpressionCompiler dependency
  • retain Fluent and source-generated parser behavior across all combinators
  • remove compilation-only tests and benchmark cases while preserving the remaining published benchmark results
  • update documentation to present source generation as the optimized parser path

Breaking changes

This removes the public Compile(), ParseContext.CompilationThreshold, and ParseContext.DefaultCompilationThreshold APIs.

Validation

  • 746 Parlot tests pass on .NET 10
  • 728 Parlot tests pass on .NET 8
  • 248 source-generator tests pass on .NET 10
  • all solution target frameworks build successfully

Remove the runtime compilation API and expression-tree implementations in favor of Fluent and source-generated parsers. Update tests, benchmarks, dependencies, and documentation accordingly.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: b981fcdf-2131-4e94-b73a-99dab76ff4f8
@sebastienros
sebastienros merged commit c0e13ee into main Jul 30, 2026
1 check passed
@sebastienros
sebastienros deleted the sebastienros-remove-compiled-parsers branch July 30, 2026 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant