julia
b34261b5 - JuliaSyntax:force specialize on function in `parse_brackets` (#60403)

Commit
3 days ago
JuliaSyntax:force specialize on function in `parse_brackets` (#60403) Brings over https://github.com/JuliaLang/JuliaSyntax.jl/pull/601 here now that the repo has moved. But we need this on 1.13 (and 1.12) as well. Without this the REPL becomes very laggy after loading GLMakie: ``` #= 3586.0 ms =# precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), Base.Terminals.TerminalBuffer, Base.Terminals.UnixTerminal, Union{REPL.LineEdit.PrefixSearchState, REPL.LineEdit.PromptState}}) # recompile ``` Even though the function is directly called in the function body, I think the fact that there is a default argument prevents specialization from happening. To elaborate: ``` g(f, x=1) = f(..., x) ``` is rewritten internally as: ``` g(f, x) = f(..., x) g(f) = g(f, 1) ``` now, the second generated method does not call `f` directly so it will heuristically be despecialized. Co-authored-by: James Wrigley <JamesWrigley@users.noreply.github.com>
Author
Parents
Loading