-
-
Notifications
You must be signed in to change notification settings - Fork 39
Conversation
@@ -118,8 +118,6 @@ function sortedcomplement(of::SourceRange, set) | |||
end | |||
|
|||
⨳(sym::Symbol) = Expr(sym) | |||
⨳(sym::Symbol, args::LineNumberNode...) = Expr(sym::Symbol, args...) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@KristofferC these may not be exercised in the tests but they may be used in the ASTInterpreter.jl source code, have you checked this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It feels impossible to guard against breaking other packages that rely on unexported and untested methods but I can just add these back, no problems.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, they are put back now.
Nice! Glad to see that even with tracking the source information performance is still competitive. |
Do you think the type instability of Token has a major performance impact? One way of defining a Token could be with just a string field and a "Kind" field that says what type of Token it is. Kind would typically just be an Enum listing all the different Token types that exist. |
Hmm, I wouldn't want to speculate on the performance diff before trying it first but seems worth trying and shouldn't be too hard. This LGTM. |
Before:
Parser is ~64.83% slower than base
After:
Parser is ~13.38% slower than base
Parses correctly the same amount of files in Base as before and passes the same amount of tests.
Fixes #52