Design / impl / internals of Revise.jl?

Is there a resource describing the internal data structures of Revise.jl ?

My current suspicions are:

  1. somewhere inside Revise.jl there is a directed acyclic graph

  2. there is some inotify-like watcher that tags nodes as “outdated”

  3. there is some mechanism to propagate the “ouutdated” tag

If the above is approximately correct, is there some description of how revise works in terms of the above? I want to have a “first principles” way of reasoning about when revise.jl decides something need to be updated.

Thanks!

Have you read

https://timholy.github.io/Revise.jl/stable/internals/

and looked at the JuliaCon talks linked there?

2 Likes