3 ms·
1. Dependency graph for cells, letting it automatically rerun what's needed when you change one. This keeps everything up to date. 2. git-friendly.
by celrod 6y ago
1. Dependency graph for cells, letting it automatically rerun what's needed when you change one. This keeps everything up to date.
2. git-friendly.
- WolfOliver 6y agoI wonder how they are doing it? simply re-evaluating every cell?
- ddragon 6y agoIt's mentioned in the video [1], it does static analysis of the code to create a graph of dependencies (for example which cell uses a variable defined by another cell), so when you update any cell it will find what cells are affected by the change (the downstream nodes on a directed acyclic graph) and only evals the code on them (instead of running everything). Julia is particularly good for those kind of code analysis since it's a very Lispy language. It also does a trick of creating new modules to manipulate scope to make deleted variables/import/cells invisible (and therefore free to be garbage collected). [1] https://youtu.be/IAF8DjrQSSk?t=596 https://youtu.be/IAF8DjrQSSk?t=596