Re:JuLox: What I Learned Building a Lox Interpreter in Julia
by adgjlsfhk1 on Saturday June 03, 2023 @06:03PM
(#36180961)
I'm pretty sure it is type instability. The faster way to do this would be with something like https://github.com/YingboMa/Unityper.jl which would fix that. The problem with profiling unstable code in Julia is that it makes everything slow so the profiler will just show a big mess of everything being slow. We do need better resources, but I have no idea what they would like like.
[ Parent
| on HN ]
Re:JuLox: What I Learned Building a Lox Interpreter in Julia
by nsajko on Saturday June 03, 2023 @07:10PM
(#36181395)
What do you mean by "We do need better resources"?
Re:JuLox: What I Learned Building a Lox Interpreter in Julia
by adgjlsfhk1 on Sunday June 04, 2023 @12:58AM
(#36183215)
There currently don't exist great tools to figure out why type unstable code is slow. @code_warntype and Cthulhu can help find type stability problems, but they're pretty hard to use for newer users (or big functions)
Re:JuLox: What I Learned Building a Lox Interpreter in Julia
by lukemerrick on Sunday June 04, 2023 @03:25AM
(#36183748)
I actually played with Unityper.jl and SumTypes.jl, but my conclusion was that if I was going to depart from dispatch on Julia types in my code, I might as well just stick to an untyped tree, since either way I'd have to have a single `evaluate` function for interpreting any kind of node.
Reconsidering now, it seems that there might be benefits beyond type dispatch to having a typed syntax tree, so maybe I'll give that a shot as a next step!