Skip to content

Conversation

Keno
Copy link
Member

@Keno Keno commented Jun 9, 2025

This builds on top of #560 and replaces the use of SyntaxNode in hooks.jl by the new lower-level cursor APIs. This avoid allocating two completely separate representations of the syntax tree.

As a result, the end-to-end parse time for error-containing code is between 1.5x (if the error is the first token) and 2x (if the error is the last token) faster than current master. However, the main motivation here is just to reduce coupling between the Expr-producing and SyntaxNode producing parts of the code.

Base automatically changed from kf/refactorparsestream to main June 12, 2025 00:32
@Keno Keno force-pushed the kf/cursorerrortraverse branch from 1c788c5 to c339f14 Compare June 12, 2025 02:43
This builds on top of #560 and replaces the use of `SyntaxNode`
in hooks.jl by the new lower-level cursor APIs. This avoid allocating
two completely separate representations of the syntax tree.

As a result, the end-to-end parse time for error-containing code is between 1.5x
(if the error is the first token) and 2x (if the error is the last
token) faster than current master. However, the main motivation here
is just to reduce coupling between the Expr-producing and SyntaxNode
producing parts of the code.
@Keno Keno force-pushed the kf/cursorerrortraverse branch from c339f14 to 962b50d Compare June 12, 2025 02:45
@Keno Keno merged commit ad2047f into main Jun 12, 2025
36 checks passed
@Keno Keno deleted the kf/cursorerrortraverse branch June 12, 2025 03:14
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