Skip to content
Snippets Groups Projects
  • jgotoh's avatar
    86c71533
    Replace cabal project parsing with parsec implementation · 86c71533
    jgotoh authored and Matthew Pickering's avatar Matthew Pickering committed
    The new parser replicates the grammar of the legacy parser while providing
    better error reporting and more maintainable code structure. The fallback
    strategy ensures smooth transition while the legacy parser is phased out.
    
    The flag `--project-file-parser` allows you to select which project file
    parser to use.
    
    * `legacy` - the old parser (will be removed in a future release)
    * `default` - the default parser (uses `fallback` unless compiled with `-f+legacy-comparison`)
    * `parsec` - the new parser using Parsec
    * `fallback` - the new parser using Parsec, but falling back to the old parser if it fails
    * `compare` - the new parser using Parsec, but comparing the results with the old parser
    
    When `cabal-install` is compiled, then the `-f+legacy-comparision` flag
    can be passed which changes the default parser mode to `compare`.
    
    Fixes #6101 #7748 #10611
    86c71533
    History
    Replace cabal project parsing with parsec implementation
    jgotoh authored and Matthew Pickering's avatar Matthew Pickering committed
    The new parser replicates the grammar of the legacy parser while providing
    better error reporting and more maintainable code structure. The fallback
    strategy ensures smooth transition while the legacy parser is phased out.
    
    The flag `--project-file-parser` allows you to select which project file
    parser to use.
    
    * `legacy` - the old parser (will be removed in a future release)
    * `default` - the default parser (uses `fallback` unless compiled with `-f+legacy-comparison`)
    * `parsec` - the new parser using Parsec
    * `fallback` - the new parser using Parsec, but falling back to the old parser if it fails
    * `compare` - the new parser using Parsec, but comparing the results with the old parser
    
    When `cabal-install` is compiled, then the `-f+legacy-comparision` flag
    can be passed which changes the default parser mode to `compare`.
    
    Fixes #6101 #7748 #10611
Code owners
Assign users and groups as approvers for specific file changes. Learn more.