Closed fonsp closed 7 months ago
Open Julia and type:
julia> import Pkg
julia> Pkg.activate(temp=true)
julia> Pkg.add(url="https://github.com/fonsp/Pluto.jl", rev="PlutoReactiveCore")
julia> using Pluto
@quildtide you would like this! Also check out ExpressionExplorer.jl
@pankgeorg any name suggestions?
@Pangoraw what do you think about this? It's ready now, but I'm starting to doubt a bit whether the rewriting work and increased complexity was worth it... But I guess it's nice to have this package?
Yeah that's the thing, I don't have the capacity to use it right away, but I am planning to use it at some point. But I made the split right now so it's best to merge it now before we get conflicts?
Not sure about the name PlutoReactiveCore
It feels that this isn't the reactive core; the reactive core uses the topology that this package outlines IIUC.
I'd call this ReactivityExplorer
or DependencyExplorer
or TopologyExplorer
, following ExpressionExplorer
or something
Hmm but I like to keep Pluto in the name I think... because this package is more Pluto-specific and opinionated than ExpressionExplorer. Maybe PlutoDependencyExplorer
?
yolooo
We already did #2698 which means that people can find the references and definitions of an
Expr
in another package more easily. This PR factors out a second package that layers on top of ExpressionExplorer: given a list ofExpr
(i.e. a notebook of cells), in which order should the expressions be evaluated?Not sure about the name PlutoReactiveCore
TODO:
Cell
. PlutoReactiveCore only uses it as a key (likeDict{Cell,ReactiveNode}
), without accessing any of its fields. (This was the result of previous refactors.) To solve the dependency, it could be replaced with aUUID
everywhere. But this will means lots of conversions everywhere in our code that's less charming. We could also use anAbstractCell
type in PlutoReactiveCore, with aCell <: AbstractCell
in Pluto.PlutoRuner.@bind
dependency used in the static macro expand of ExpressionExplorerExtras. Easiest is probably to write a copy of the macro inside PlutoReactiveCore, since it's only used for analysis.module
, and put into a separate package afterwards.