cstjean / TraceCalls.jl

A debugging and profiling tool for Julia
Other
46 stars 4 forks source link

Better caching #55

Open cstjean opened 7 years ago

cstjean commented 7 years ago

@timholy Revise.jl achieves speed by mutating data structures, but TraceCalls.jl achieves it by memoizing function results. I already found out the hard way that this is a dangerous mix. Can I assume that the Expr objects in Revise.module2files won't be mutated by subsequent revise calls?

timholy commented 7 years ago

module2files just holds a list of dependent files. Do you mean file2modules? (Yes, it's hard keeping track of the names.) I don't think so. If you revise a file, the expressions in file2modules get replaced by their new values.

cstjean commented 7 years ago

Ok, that's also what I understood from the code. Thank you.