-
Notifications
You must be signed in to change notification settings - Fork 326
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve context management when parsing.
Implements #5453. Syntax changes: - Eliminate old non-decimal number syntax. - Unspaced application like `f(x)` is now an error. - Applying `:` to a non-QN in statement context is allowed and produces a `TypeAnnotated` (fixes #6152). API changes: - All fixed-content tokens are now distinct types. Error improvements (fixes #5444), especially for: - Out-of-context expressions/statements - Statement syntaxes - Named-app syntax - Unspaced-application errors - Number syntax - Private annotations (fixes #10137) - Parens (fixes #6741) - Type defs (fixes #8633) - Fix some panics caused by invalid expressions, found by parsing non-Enso code. - Reject some operations in pattern context, e.g. `1 + 1 = 2`. - Eliminate `export` with `all` or `hiding` (#10258). Improve Rust parsing performance by 33%; now 20 MB/s on my bench machine: - Stream lexer to parser. - New, faster parser for type defs, statements, numbers. - More efficient tree layout (fixes #5452). Improve backend parsing performance additionally: - Backend now uses optimized parser build (in debug builds, debug-assertions are still enabled). Build improvements: - Fix some redundancy between `sbt` and build script: now only `sbt` compiles JNI and generates parser's Java bindings for backend use. Build script generates Java to a different directory when parser serialization self-test is requested. - Improve `sbt` detection of changed parser; this should reduce the need for clean builds in CI. Testing: - Add binary target for fuzzing with AFL.
- Loading branch information
Showing
64 changed files
with
4,464 additions
and
2,688 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains 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 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 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 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 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 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 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 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 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 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 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 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.