Compiler work priorities

That would certainly be nice but I’m not sure how much or a priority it is at this point.

What is the best way for people to register interest in “Revise for structs”? Just :+1: on a Revise.jl GitHub issue?

3 Likes

The hard part isn’t getting people to realize that this is important, it’s coming up with workable semantics. Specifically, what happens to code (or variables) that they to the old type?

2 Likes

On debugger usability, the big issue that needs addressing is: https://github.com/JuliaLang/julia/issues/31162. That would allow us to go backwards from bits of lowered code to the original julia source expressions, and make stepping work as users expect. Currently there’s a fair amount of annoyance from filling keyword arguments and other steps that occur because Julia rewrites your code in ways that are invisible to the user but very visible to the interpreter. We’ve tried quite hard to write pattern-matching that detects these issues https://github.com/JuliaDebug/JuliaInterpreter.jl/pull/190 but it’s quite nontrivial to maintain as Julia changes its lowering in each version; I’m pretty sure it’s broken again on modern Julia versions.

That same “provenance” issue might also let us provide better stacktraces for users (elide all the kwprep calls) and allow us to annotate Julia statements with the results of typeinference (Cthulhu, SnoopCompile, & JET). It’s the single biggest step forward for Julia usability that I can think of, but people with the requisite lisp skills are in short supply.

25 Likes