I was annoyed that everytime I hit “run all” in my IDE, it re-runs everything, including the parts that did not change.
Therefore I created SimpleCache.jl. It uses reflection techniques to generate a dependency graph of your source code to only rerun the parts that did change.
It is written incredibly hacky and bad, so don’t look at the source code.
I will register that package soon.
Nope. With my solution, if you change some functions and rerun the program, only functions that have changed or call a changed function will be run again.
https://github.com/JuliaCollections/Memoize.jl assumes that the function only depends on its arguments. My solution analyzes the AST to know which functions depend on which lines of code.
I suspect Pluto does the same kind of things to implement its “reactivity”. Maybe you could get in touch with them to see if/how your technical approaches differ, and whether it would be interesting for you to join forces?
I talked with him. Maybe I will use Plutos library in the future.