Package evaluation to test PlutoDependencyExplorer on Julia 1.14.0-DEV.2226 (797a5ef2b0*) started at 2026-05-23T17:19:40.258 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 17.06s ################################################################################ # Installation # Installing PlutoDependencyExplorer... Resolving package versions... Installed PlutoDependencyExplorer ─ v1.2.2 Installed ExpressionExplorer ────── v1.1.4 Updating `~/.julia/environments/v1.14/Project.toml` [72656b73] + PlutoDependencyExplorer v1.2.2 Updating `~/.julia/environments/v1.14/Manifest.toml` [21656369] + ExpressionExplorer v1.1.4 [72656b73] + PlutoDependencyExplorer v1.2.2 [2a0f44e3] + Base64 v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.13.0 [d6f4376e] + Markdown v1.11.0 [f489334b] + StyledStrings v1.13.0 Installation completed after 1.53s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling project... 5.8 s ✓ TestEnv 1 dependency successfully precompiled in 6 seconds. 27 already precompiled. Precompiling package dependencies... Precompiling project... 1.8 s ✓ ExpressionExplorer ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 =# Core.@doc "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" function (topological_order(topology::NotebookTopology{C}, roots::AbstractVector{C}; allow_multiple_defs::Bool = false, skip_at_partial_multiple_defs::Bool = false)::TopologicalOrder{C}) where C <: AbstractCell │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:26 =# │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:31 =# │ if skip_at_partial_multiple_defs │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =# │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =# @assert allow_multiple_defs │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:35 =# │ entries = C[] │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:36 =# │ exits = C[] │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:37 =# │ errable = Dict{C, ReactivityError}() │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40 =# │ function bfs(cell::C)::ChildExplorationResult │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40 =# │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:41 =# │ if cell in exits │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:42 =# │ return Ok() │ elseif #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:43 =# haskey(errable, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:44 =# │ return Ok() │ elseif #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:45 =# length(entries) > 0 && entries[var"end"] === cell │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:46 =# │ return Ok() │ elseif #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:47 =# cell in entries │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:48 =# │ currently_in = setdiff(entries, exits) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:49 =# │ cycle = currently_in[findfirst(isequal(cell), currently_in):var"end"] │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:51 =# │ if !(cycle_is_among_functions(topology, cycle)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:52 =# │ for cell = cycle │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:53 =# │ errable[cell] = CyclicReferenceError(topology, cycle) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:54 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:55 =# │ return Cycle(cycle) │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:58 =# │ return Ok() │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:62 =# │ current_entries_num = length(entries) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:63 =# │ current_exits_num = length(exits) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:65 =# │ push!(entries, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:67 =# │ assigners = where_assigned(topology, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:68 =# │ referencers = where_referenced(topology, cell) |> Iterators.reverse │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:70 =# │ if !allow_multiple_defs && length(assigners) > 1 │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:71 =# │ for c = assigners │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:72 =# │ errable[c] = MultipleDefinitionsError(topology, c, assigners) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:73 =# │ end │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:76 =# │ should_continue_search_down = !skip_at_partial_multiple_defs || all((c->begin │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:76 =# │ c === cell || c ∈ exits │ end), assigners) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:77 =# │ should_search_fellow_assigners_if_any = !allow_multiple_defs │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:79 =# │ to_search_next = if should_continue_search_down │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:80 =# │ if should_search_fellow_assigners_if_any │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:81 =# │ union(assigners, referencers) │ else │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:83 =# │ referencers │ end │ else │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:86 =# │ C[] │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:89 =# │ for c = to_search_next │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:90 =# │ if c !== cell │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:91 =# │ child_result = bfs(c) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:94 =# │ if child_result isa Ok || cell ∉ child_result.cycled_cells │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:95 =# │ continue │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:102 =# │ if !(is_soft_edge(topology, cell, c)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:104 =# │ deleteat!(entries, current_entries_num + 1:length(entries)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:105 =# │ deleteat!(exits, current_exits_num + 1:length(exits)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:106 =# │ return child_result │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:111 =# │ for cycled_cell = child_result.cycled_cells │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:112 =# │ delete!(errable, cycled_cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:113 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:115 =# │ if entries[var"end"] === c │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:116 =# │ pop!(entries) │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:119 =# │ continue │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:121 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:122 =# │ push!(exits, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:123 =# │ Ok() │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:128 =# │ prelim_order_1 = sort(roots, alg = MergeSort, by = (c->begin │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:128 =# │ cell_precedence_heuristic(topology, c) │ end)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:130 =# │ for i = length(prelim_order_1):-1:1 │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:131 =# │ bfs(prelim_order_1[i]) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:132 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:133 =# │ ordered = reverse(exits) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:134 =# │ TopologicalOrder(topology, setdiff(ordered, keys(errable)), errable) │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [macrocall] │ │ @doc :: Identifier │ mod │ :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 =#) :: Value │ │ "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" :: Value │ │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ topological_order :: Identifier │ │ [parameters] │ │ [kw] │ │ [::] │ │ allow_multiple_defs :: Identifier │ │ Bool :: Identifier │ │ false :: Value │ │ [kw] │ │ [::] │ │ skip_at_partial_multiple_defs :: Identifier │ │ Bool :: Identifier │ │ false :: Value │ │ [::] │ │ topology :: Identifier │ │ [curly] │ │ NotebookTopology :: Identifier │ │ C :: Identifier │ │ [::] │ │ roots :: Identifier │ │ [curly] │ │ AbstractVector :: Identifier │ │ C :: Identifier │ │ [curly] │ │ TopologicalOrder :: Identifier │ │ C :: Identifier │ │ [<:] │ │ C :: Identifier │ │ AbstractCell :: Identifier │ │ [block] │ │ [if] │ │ skip_at_partial_multiple_defs :: Identifier │ │ [block] │ │ [macrocall] │ │ @assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =#) :: Value │ │ allow_multiple_defs :: Identifier │ │ [=] │ │ entries :: Identifier │ │ [ref] │ │ C :: Identifier │ │ [=] │ │ exits :: Identifier │ │ [ref] │ │ C :: Identifier │ │ [=] │ │ errable :: Identifier │ │ [call] │ │ [curly] │ │ Dict :: Identifier │ │ C :: Identifier │ │ ReactivityError :: Identifier │ │ [function] │ │ [::] │ │ [call] │ │ bfs :: Identifier │ │ [::] │ │ cell :: Identifier │ │ C :: Identifier │ │ ChildExplorationResult :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ in :: Identifier │ │ cell :: Identifier │ │ exits :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ haskey :: Identifier │ │ errable :: Identifier │ │ cell :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ │ [call] │ │ length :: Identifier │ │ entries :: Identifier │ │ 0 :: Value │ │ [call] │ │ === :: Identifier │ │ [ref] │ │ entries :: Identifier │ │ end :: Identifier │ │ cell :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ in :: Identifier │ │ cell :: Identifier │ │ entries :: Identifier │ │ [block] │ │ [=] │ │ currently_in :: Identifier │ │ [call] │ │ setdiff :: Identifier │ │ entries :: Identifier │ │ exits :: Identifier │ │ [=] │ │ cycle :: Identifier │ │ [ref] │ │ currently_in :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ findfirst :: Identifier │ │ [call] │ │ isequal :: Identifier │ │ cell :: Identifier │ │ currently_in :: Identifier │ │ end :: Identifier │ │ [if] │ │ [call] │ │ ! :: Identifier │ │ [call] │ │ cycle_is_among_functions :: Identifier │ │ topology :: Identifier │ │ cycle :: Identifier │ │ [block] │ │ [for] │ │ [=] │ │ cell :: Identifier │ │ cycle :: Identifier │ │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ │ cell :: Identifier │ │ [call] │ │ CyclicReferenceError :: Identifier │ │ topology :: Identifier │ │ cycle :: Identifier │ │ [return] │ │ [call] │ │ Cycle :: Identifier │ │ cycle :: Identifier │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [=] │ │ current_entries_num :: Identifier │ │ [call] │ │ length :: Identifier │ │ entries :: Identifier │ │ [=] │ │ current_exits_num :: Identifier │ │ [call] │ │ length :: Identifier │ │ exits :: Identifier │ │ [call] │ │ push! :: Identifier │ │ entries :: Identifier │ │ cell :: Identifier │ │ [=] │ │ assigners :: Identifier │ │ [call] │ │ where_assigned :: Identifier │ │ topology :: Identifier │ │ cell :: Identifier │ │ [=] │ │ referencers :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ where_referenced :: Identifier │ │ topology :: Identifier │ │ cell :: Identifier │ │ [.] │ │ Iterators :: Identifier │ │ [inert] │ │ reverse :: Identifier │ │ [if] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ │ allow_multiple_defs :: Identifier │ │ [call] │ │ > :: Identifier │ │ [call] │ │ length :: Identifier │ │ assigners :: Identifier │ │ 1 :: Value │ │ [block] │ │ [for] │ │ [=] │ │ c :: Identifier │ │ assigners :: Identifier │ │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ │ c :: Identifier │ │ [call] │ │ MultipleDefinitionsError :: Identifier │ │ topology :: Identifier │ │ c :: Identifier │ │ assigners :: Identifier │ │ [=] │ │ should_continue_search_down :: Identifier │ │ [||] │ │ [call] │ │ ! :: Identifier │ │ skip_at_partial_multiple_defs :: Identifier │ │ [call] │ │ all :: Identifier │ │ [->] │ │ c :: Identifier │ │ [block] │ │ [||] │ │ [call] │ │ === :: Identifier │ │ c :: Identifier │ │ cell :: Identifier │ │ [call] │ │ ∈ :: Identifier │ │ c :: Identifier │ │ exits :: Identifier │ │ assigners :: Identifier │ │ [=] │ │ should_search_fellow_assigners_if_any :: Identifier │ │ [call] │ │ ! :: Identifier │ │ allow_multiple_defs :: Identifier │ │ [=] │ │ to_search_next :: Identifier │ │ [if] │ │ should_continue_search_down :: Identifier │ │ [block] │ │ [if] │ │ should_search_fellow_assigners_if_any :: Identifier │ │ [block] │ │ [call] │ │ union :: Identifier │ │ assigners :: Identifier │ │ referencers :: Identifier │ │ [block] │ │ referencers :: Identifier │ │ [block] │ │ [ref] │ │ C :: Identifier │ │ [for] │ │ [=] │ │ c :: Identifier │ │ to_search_next :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ !== :: Identifier │ │ c :: Identifier │ │ cell :: Identifier │ │ [block] │ │ [=] │ │ child_result :: Identifier │ │ [call] │ │ bfs :: Identifier │ │ c :: Identifier │ │ [if] │ │ [||] │ │ [call] │ │ isa :: Identifier │ │ child_result :: Identifier │ │ Ok :: Identifier │ │ [call] │ │ ∉ :: Identifier │ │ cell :: Identifier │ │ [.] │ │ child_result :: Identifier │ │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ │ [continue] │ │ [if] │ │ [call] │ │ ! :: Identifier │ │ [call] │ │ is_soft_edge :: Identifier │ │ topology :: Identifier │ │ cell :: Identifier │ │ c :: Identifier │ │ [block] │ │ [call] │ │ deleteat! :: Identifier │ │ entries :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ + :: Identifier │ │ current_entries_num :: Identifier │ │ 1 :: Value │ │ [call] │ │ length :: Identifier │ │ entries :: Identifier │ │ [call] │ │ deleteat! :: Identifier │ │ exits :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ + :: Identifier │ │ current_exits_num :: Identifier │ │ 1 :: Value │ │ [call] │ │ length :: Identifier │ │ exits :: Identifier │ │ [return] │ │ child_result :: Identifier │ │ [for] │ │ [=] │ │ cycled_cell :: Identifier │ │ [.] │ │ child_result :: Identifier │ │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ │ [call] │ │ delete! :: Identifier │ │ errable :: Identifier │ │ cycled_cell :: Identifier │ │ [if] │ │ [call] │ │ === :: Identifier │ │ [ref] │ │ entries :: Identifier │ │ end :: Identifier │ │ c :: Identifier │ │ [block] │ │ [call] │ │ pop! :: Identifier │ │ entries :: Identifier │ │ [continue] │ │ [call] │ │ push! :: Identifier │ │ exits :: Identifier │ │ cell :: Identifier │ │ [call] │ │ Ok :: Identifier │ │ [=] │ │ prelim_order_1 :: Identifier │ │ [call] │ │ sort :: Identifier │ │ roots :: Identifier │ │ [kw] │ │ alg :: Identifier │ │ MergeSort :: Identifier │ │ [kw] │ │ by :: Identifier │ │ [->] │ │ c :: Identifier │ │ [block] │ │ [call] │ │ cell_precedence_heuristic :: Identifier │ │ topology :: Identifier │ │ c :: Identifier │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ length :: Identifier │ │ prelim_order_1 :: Identifier │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [call] │ │ bfs :: Identifier │ │ [ref] │ │ prelim_order_1 :: Identifier │ │ i :: Identifier │ │ [=] │ │ ordered :: Identifier │ │ [call] │ │ reverse :: Identifier │ │ exits :: Identifier │ │ [call] │ │ TopologicalOrder :: Identifier │ │ topology :: Identifier │ │ [call] │ │ setdiff :: Identifier │ │ ordered :: Identifier │ │ [call] │ │ keys :: Identifier │ │ errable :: Identifier │ │ errable :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [block] │ │ [=] │ │ val :: Identifier │ scope_layer=3 │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ topological_order :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ [::] │ │ allow_multiple_defs :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=405 │ [kw] │ │ [::] │ │ skip_at_partial_multiple_defs :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=405 │ [::] │ │ topology :: Identifier │ scope_layer=1 │ [curly] │ │ NotebookTopology :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [::] │ │ roots :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractVector :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [curly] │ │ TopologicalOrder :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ AbstractCell :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ skip_at_partial_multiple_defs :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ allow_multiple_defs :: Identifier │ scope_layer=1 │ nothing :: Value │ macro_source=405 │ [call] │ │ throw :: Identifier │ mod,scope_layer=1 │ [call] │ │ AssertionError :: Identifier │ mod,scope_layer=1 │ "allow_multiple_defs" :: Value │ macro_source=405 │ [=] │ │ entries :: Identifier │ scope_layer=1 │ [ref] │ │ C :: Identifier │ scope_layer=1 │ [=] │ │ exits :: Identifier │ scope_layer=1 │ [ref] │ │ C :: Identifier │ scope_layer=1 │ [=] │ │ errable :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ Dict :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ ReactivityError :: Identifier │ scope_layer=1 │ [function] │ │ [::] │ │ [call] │ │ bfs :: Identifier │ scope_layer=1 │ [::] │ │ cell :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ ChildExplorationResult :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ in :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ haskey :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=405 │ [call] │ │ === :: Identifier │ scope_layer=1 │ [ref] │ │ entries :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ in :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ currently_in :: Identifier │ scope_layer=1 │ [call] │ │ setdiff :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [=] │ │ cycle :: Identifier │ scope_layer=1 │ [ref] │ │ currently_in :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ findfirst :: Identifier │ scope_layer=1 │ [call] │ │ isequal :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ currently_in :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ [call] │ │ cycle_is_among_functions :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [block] │ │ [for] │ │ [=] │ │ cell :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [call] │ │ CyclicReferenceError :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [return] │ │ [call] │ │ Cycle :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [=] │ │ current_entries_num :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [=] │ │ current_exits_num :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [=] │ │ assigners :: Identifier │ scope_layer=1 │ [call] │ │ where_assigned :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [=] │ │ referencers :: Identifier │ scope_layer=1 │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ where_referenced :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [.] │ │ Iterators :: Identifier │ scope_layer=1 │ [inert] │ │ reverse :: Identifier │ │ [if] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ allow_multiple_defs :: Identifier │ scope_layer=1 │ [call] │ │ > :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=405 │ [block] │ │ [for] │ │ [=] │ │ c :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [call] │ │ MultipleDefinitionsError :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ [=] │ │ should_continue_search_down :: Identifier │ scope_layer=1 │ [||] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ skip_at_partial_multiple_defs :: Identifier │ scope_layer=1 │ [call] │ │ all :: Identifier │ scope_layer=1 │ [->] │ │ c :: Identifier │ scope_layer=1 │ [block] │ │ [||] │ │ [call] │ │ === :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [call] │ │ ∈ :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ [=] │ │ should_search_fellow_assigners_if_any :: Identifier │ scope_layer=1 │ [call] │ │ ! :: Identifier │ scope_layer=1 │ allow_multiple_defs :: Identifier │ scope_layer=1 │ [=] │ │ to_search_next :: Identifier │ scope_layer=1 │ [if] │ │ should_continue_search_down :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ should_search_fellow_assigners_if_any :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ union :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ referencers :: Identifier │ scope_layer=1 │ [block] │ │ referencers :: Identifier │ scope_layer=1 │ [block] │ │ [ref] │ │ C :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ c :: Identifier │ scope_layer=1 │ to_search_next :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ !== :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ child_result :: Identifier │ scope_layer=1 │ [call] │ │ bfs :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [||] │ │ [call] │ │ isa :: Identifier │ scope_layer=1 │ child_result :: Identifier │ scope_layer=1 │ Ok :: Identifier │ scope_layer=1 │ [call] │ │ ∉ :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [.] │ │ child_result :: Identifier │ scope_layer=1 │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ macro_source=405 │ [continue] │ macro_source=405 │ [if] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ [call] │ │ is_soft_edge :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ deleteat! :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ current_entries_num :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=405 │ [call] │ │ length :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [call] │ │ deleteat! :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ current_exits_num :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=405 │ [call] │ │ length :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [return] │ │ child_result :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ cycled_cell :: Identifier │ scope_layer=1 │ [.] │ │ child_result :: Identifier │ scope_layer=1 │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ │ [call] │ │ delete! :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ cycled_cell :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ === :: Identifier │ scope_layer=1 │ [ref] │ │ entries :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ pop! :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [continue] │ macro_source=405 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [=] │ │ prelim_order_1 :: Identifier │ scope_layer=1 │ [call] │ │ sort :: Identifier │ scope_layer=1 │ roots :: Identifier │ scope_layer=1 │ [kw] │ │ alg :: Identifier │ scope_layer=1 │ MergeSort :: Identifier │ scope_layer=1 │ [kw] │ │ by :: Identifier │ scope_layer=1 │ [->] │ │ c :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ cell_precedence_heuristic :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ prelim_order_1 :: Identifier │ scope_layer=1 │ -1 :: Value │ macro_source=405 │ 1 :: Value │ macro_source=405 │ [block] │ │ [call] │ │ bfs :: Identifier │ scope_layer=1 │ [ref] │ │ prelim_order_1 :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [=] │ │ ordered :: Identifier │ scope_layer=1 │ [call] │ │ reverse :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [call] │ │ TopologicalOrder :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ [call] │ │ setdiff :: Identifier │ scope_layer=1 │ ordered :: Identifier │ scope_layer=1 │ [call] │ │ keys :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ [call] │ │ Base.Docs.doc! :: Value │ macro_source=405 │ PlutoDependencyExplorer :: Value │ macro_source=405 │ [call] │ │ Base.Docs.Binding :: Value │ macro_source=405 │ PlutoDependencyExplorer :: Value │ │ [inert] │ jl_source=L65 │ topological_order :: Identifier │ │ [call] │ macro_source=405 │ Base.Docs.docstr :: Value │ macro_source=405 │ [call] │ macro_source=405 │ Core.svec :: Value │ macro_source=405 │ "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" :: Value │ macro_source=405 │ [call] │ macro_source=405 │ Dict{Symbol, Any} :: Value │ macro_source=405 │ :path => "/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl" :: Value │ macro_source=405 │ :linenumber => 8 :: Value │ macro_source=405 │ :module => PlutoDependencyExplorer :: Value │ macro_source=405 │ [where] │ │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ [curly] │ │ NotebookTopology :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractVector :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ AbstractCell :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=3 │ │ file = "/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl" │ line = 8 └ mod = PlutoDependencyExplorer ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40 =# - Found unexpected binding of kind static_parameter Expression:  #₅₄/C Containing expressions:  (= #₁₇₄/C #₅₄/C)  (= #₃ (call core.svec (call core.svec #₁₄₃/##kw_body#topological_order#0#bfs##0 #₅₄/C) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40:0))  (= #₃ (call core.svec (call core.svec (function_type #₅₆/bfs) #₅₄/C) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40:0))  Detailed provenance:  #₅₄/C  └─ C  └─ C  ├─ @ /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 =#) "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" (function (where (:: (call topological_order (parameters (kw (:: allow_multiple_defs Bool) false) (kw (:: skip_at_partial_multiple_defs Bool) false)) (:: topology (curly NotebookTopology C)) (:: roots (curly AbstractVector C))) (curly TopologicalOrder C)) (<: C AbstractCell)) (block (if skip_at_partial_multiple_defs (block (macrocall @assert :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =#) allow_multiple_defs))) (= entries (ref C)) (= exits (ref C)) (= errable (call (curly Dict C ReactivityError))) (function (:: (call bfs (:: cell C)) ChildExplorationResult) (block (if (call in cell exits) (block (return (call Ok))) (elseif (block (call haskey errable cell)) (block (return (call Ok))) (elseif (block (&& (call > (call length entries) 0) (call === (ref entries end) cell))) (block (return (call Ok))) (elseif (block (call in cell entries)) (block (= currently_in (call setdiff entries exits)) (= cycle (ref currently_in (call : (call findfirst (call isequal cell) currently_in) end))) (if (call ! (call cycle_is_among_functions topology cycle)) (block (for (= cell cycle) (block (= (ref errable cell) (call CyclicReferenceError topology cycle)))) (return (call Cycle cycle)))) (return (call Ok))))))) (= current_entries_num (call length entries)) (= current_exits_num (call length exits)) (call push! entries cell) (= assigners (call where_assigned topology cell)) (= referencers (call |> (call where_referenced topology cell) (. Iterators (inert reverse)))) (if (&& (call ! allow_multiple_defs) (call > (call length assigners) 1)) (block (for (= c assigners) (block (= (ref errable c) (call MultipleDefinitionsError topology c assigners)))))) (= should_continue_search_down (|| (call ! skip_at_partial_multiple_defs) (call all (-> c (block (|| (call === c cell) (call ∈ c exits)))) assigners))) (= should_search_fellow_assigners_if_any (call ! allow_multiple_defs)) (= to_search_next (if should_continue_search_down (block (if should_search_fellow_assigners_if_any (block (call union assigners referencers)) (block referencers))) (block (ref C)))) (for (= c to_search_next) (block (if (call !== c cell) (block (= child_result (call bfs c)) (if (|| (call isa child_result Ok) (call ∉ cell (. child_result (inert cycled_cells)))) (block (continue))) (if (call ! (call is_soft_edge topology cell c)) (block (call deleteat! entries (call : (call + current_entries_num 1) (call length entries))) (call deleteat! exits (call : (call + current_exits_num 1) (call length exits))) (return child_result))) (for (= cycled_cell (. child_result (inert cycled_cells))) (block (call delete! errable cycled_cell))) (if (call === (ref entries end) c) (block (call pop! entries))) (continue))))) (call push! exits cell) (call Ok))) (= prelim_order_1 (call sort roots (kw alg MergeSort) (kw by (-> c (block (call cell_precedence_heuristic topology c)))))) (for (= i (call : (call length prelim_order_1) -1 1)) (block (call bfs (ref prelim_order_1 i)))) (= ordered (call reverse exits)) (call TopologicalOrder topology (call setdiff ordered (call keys errable)) errable))))  └─ @ /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8  Stacktrace:  [1] _renumber(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ssa_rewrites::Dict{Int64, Int64}, slot_rewrites::Dict{Int64, Int64}, label_table::Dict{Int64, Int64}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1067  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1132  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1223  [4] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1253  [5] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [6] include(mapexpr::Function, mod::Module, _path::String)  @ Base ./Base.jl:327  [7] top-level scope  @ ~/.julia/packages/PlutoDependencyExplorer/BaZEm/src/PlutoDependencyExplorer.jl:24  [8] include(mod::Module, _path::String)  @ Base ./Base.jl:326  [9] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base ./loading.jl:3271  [10] top-level scope  @ stdin:5  [11] eval(m::Module, e::Any)  @ Core ./boot.jl:517  [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base ./loading.jl:3113  [13] push!(a::Vector{SubString{String}}, item::String)  @ Base ./loading.jl:3123 [inlined]  [14] exec_options(opts::Base.JLOptions)  @ Base ./client.jl:353  [15] _start()  @ Base ./client.jl:596 in expression starting at /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 in expression starting at /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/PlutoDependencyExplorer.jl:2 in expression starting at stdin:5 ✗ PlutoDependencyExplorer 1 dependency successfully precompiled in 8 seconds. 30 already precompiled. Precompilation completed after 38.52s ################################################################################ # Testing # Testing PlutoDependencyExplorer Status `/tmp/jl_eYu3Id/Project.toml` [21656369] ExpressionExplorer v1.1.4 [72656b73] PlutoDependencyExplorer v1.2.2 [b77e0a4c] InteractiveUtils v1.11.0 [d6f4376e] Markdown v1.11.0 [44cfe95a] Pkg v1.14.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_eYu3Id/Manifest.toml` [21656369] ExpressionExplorer v1.1.4 [72656b73] PlutoDependencyExplorer v1.2.2 [0dad84c5] ArgTools v1.1.2 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [f43a241f] Downloads v1.7.0 [7b1f6079] FileWatching v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [ac6e5ff7] JuliaSyntaxHighlighting v1.13.0 [b27032c2] LibCURL v1.0.0 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [ca575930] NetworkOptions v1.3.0 [44cfe95a] Pkg v1.14.0 [de0858da] Printf v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v1.13.0 [9e88b42a] Serialization v1.11.0 [f489334b] StyledStrings v1.13.0 [fa267f1f] TOML v1.0.3 [a4e569a6] Tar v1.10.0 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.5.1+0 [deac9b47] LibCURL_jll v8.20.0+1 [e37daf67] LibGit2_jll v1.9.3+0 [29816b5a] LibSSH2_jll v1.11.101+0 [14a3606d] MozillaCACerts_jll v2026.5.14 [458c3c95] OpenSSL_jll v3.5.6+0 [efcefdf7] PCRE2_jll v10.47.0+0 [83775a58] Zlib_jll v1.3.2+0 [3161d3a3] Zstd_jll v1.5.7+1 [8e850ede] nghttp2_jll v1.69.0+0 [3f19e933] p7zip_jll v17.8.0+0 Testing Running tests... ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 =# Core.@doc "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" function (topological_order(topology::NotebookTopology{C}, roots::AbstractVector{C}; allow_multiple_defs::Bool = false, skip_at_partial_multiple_defs::Bool = false)::TopologicalOrder{C}) where C <: AbstractCell │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:26 =# │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:31 =# │ if skip_at_partial_multiple_defs │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =# │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =# @assert allow_multiple_defs │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:35 =# │ entries = C[] │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:36 =# │ exits = C[] │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:37 =# │ errable = Dict{C, ReactivityError}() │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40 =# │ function bfs(cell::C)::ChildExplorationResult │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40 =# │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:41 =# │ if cell in exits │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:42 =# │ return Ok() │ elseif #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:43 =# haskey(errable, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:44 =# │ return Ok() │ elseif #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:45 =# length(entries) > 0 && entries[var"end"] === cell │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:46 =# │ return Ok() │ elseif #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:47 =# cell in entries │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:48 =# │ currently_in = setdiff(entries, exits) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:49 =# │ cycle = currently_in[findfirst(isequal(cell), currently_in):var"end"] │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:51 =# │ if !(cycle_is_among_functions(topology, cycle)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:52 =# │ for cell = cycle │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:53 =# │ errable[cell] = CyclicReferenceError(topology, cycle) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:54 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:55 =# │ return Cycle(cycle) │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:58 =# │ return Ok() │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:62 =# │ current_entries_num = length(entries) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:63 =# │ current_exits_num = length(exits) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:65 =# │ push!(entries, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:67 =# │ assigners = where_assigned(topology, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:68 =# │ referencers = where_referenced(topology, cell) |> Iterators.reverse │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:70 =# │ if !allow_multiple_defs && length(assigners) > 1 │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:71 =# │ for c = assigners │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:72 =# │ errable[c] = MultipleDefinitionsError(topology, c, assigners) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:73 =# │ end │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:76 =# │ should_continue_search_down = !skip_at_partial_multiple_defs || all((c->begin │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:76 =# │ c === cell || c ∈ exits │ end), assigners) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:77 =# │ should_search_fellow_assigners_if_any = !allow_multiple_defs │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:79 =# │ to_search_next = if should_continue_search_down │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:80 =# │ if should_search_fellow_assigners_if_any │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:81 =# │ union(assigners, referencers) │ else │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:83 =# │ referencers │ end │ else │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:86 =# │ C[] │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:89 =# │ for c = to_search_next │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:90 =# │ if c !== cell │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:91 =# │ child_result = bfs(c) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:94 =# │ if child_result isa Ok || cell ∉ child_result.cycled_cells │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:95 =# │ continue │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:102 =# │ if !(is_soft_edge(topology, cell, c)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:104 =# │ deleteat!(entries, current_entries_num + 1:length(entries)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:105 =# │ deleteat!(exits, current_exits_num + 1:length(exits)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:106 =# │ return child_result │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:111 =# │ for cycled_cell = child_result.cycled_cells │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:112 =# │ delete!(errable, cycled_cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:113 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:115 =# │ if entries[var"end"] === c │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:116 =# │ pop!(entries) │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:119 =# │ continue │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:121 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:122 =# │ push!(exits, cell) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:123 =# │ Ok() │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:128 =# │ prelim_order_1 = sort(roots, alg = MergeSort, by = (c->begin │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:128 =# │ cell_precedence_heuristic(topology, c) │ end)) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:130 =# │ for i = length(prelim_order_1):-1:1 │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:131 =# │ bfs(prelim_order_1[i]) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:132 =# │ end │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:133 =# │ ordered = reverse(exits) │ #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:134 =# │ TopologicalOrder(topology, setdiff(ordered, keys(errable)), errable) │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [macrocall] │ │ @doc :: Identifier │ mod │ :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 =#) :: Value │ │ "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" :: Value │ │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ topological_order :: Identifier │ │ [parameters] │ │ [kw] │ │ [::] │ │ allow_multiple_defs :: Identifier │ │ Bool :: Identifier │ │ false :: Value │ │ [kw] │ │ [::] │ │ skip_at_partial_multiple_defs :: Identifier │ │ Bool :: Identifier │ │ false :: Value │ │ [::] │ │ topology :: Identifier │ │ [curly] │ │ NotebookTopology :: Identifier │ │ C :: Identifier │ │ [::] │ │ roots :: Identifier │ │ [curly] │ │ AbstractVector :: Identifier │ │ C :: Identifier │ │ [curly] │ │ TopologicalOrder :: Identifier │ │ C :: Identifier │ │ [<:] │ │ C :: Identifier │ │ AbstractCell :: Identifier │ │ [block] │ │ [if] │ │ skip_at_partial_multiple_defs :: Identifier │ │ [block] │ │ [macrocall] │ │ @assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =#) :: Value │ │ allow_multiple_defs :: Identifier │ │ [=] │ │ entries :: Identifier │ │ [ref] │ │ C :: Identifier │ │ [=] │ │ exits :: Identifier │ │ [ref] │ │ C :: Identifier │ │ [=] │ │ errable :: Identifier │ │ [call] │ │ [curly] │ │ Dict :: Identifier │ │ C :: Identifier │ │ ReactivityError :: Identifier │ │ [function] │ │ [::] │ │ [call] │ │ bfs :: Identifier │ │ [::] │ │ cell :: Identifier │ │ C :: Identifier │ │ ChildExplorationResult :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ in :: Identifier │ │ cell :: Identifier │ │ exits :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ haskey :: Identifier │ │ errable :: Identifier │ │ cell :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ │ [call] │ │ length :: Identifier │ │ entries :: Identifier │ │ 0 :: Value │ │ [call] │ │ === :: Identifier │ │ [ref] │ │ entries :: Identifier │ │ end :: Identifier │ │ cell :: Identifier │ │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [elseif] │ │ [block] │ │ [call] │ │ in :: Identifier │ │ cell :: Identifier │ │ entries :: Identifier │ │ [block] │ │ [=] │ │ currently_in :: Identifier │ │ [call] │ │ setdiff :: Identifier │ │ entries :: Identifier │ │ exits :: Identifier │ │ [=] │ │ cycle :: Identifier │ │ [ref] │ │ currently_in :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ findfirst :: Identifier │ │ [call] │ │ isequal :: Identifier │ │ cell :: Identifier │ │ currently_in :: Identifier │ │ end :: Identifier │ │ [if] │ │ [call] │ │ ! :: Identifier │ │ [call] │ │ cycle_is_among_functions :: Identifier │ │ topology :: Identifier │ │ cycle :: Identifier │ │ [block] │ │ [for] │ │ [=] │ │ cell :: Identifier │ │ cycle :: Identifier │ │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ │ cell :: Identifier │ │ [call] │ │ CyclicReferenceError :: Identifier │ │ topology :: Identifier │ │ cycle :: Identifier │ │ [return] │ │ [call] │ │ Cycle :: Identifier │ │ cycle :: Identifier │ │ [return] │ │ [call] │ │ Ok :: Identifier │ │ [=] │ │ current_entries_num :: Identifier │ │ [call] │ │ length :: Identifier │ │ entries :: Identifier │ │ [=] │ │ current_exits_num :: Identifier │ │ [call] │ │ length :: Identifier │ │ exits :: Identifier │ │ [call] │ │ push! :: Identifier │ │ entries :: Identifier │ │ cell :: Identifier │ │ [=] │ │ assigners :: Identifier │ │ [call] │ │ where_assigned :: Identifier │ │ topology :: Identifier │ │ cell :: Identifier │ │ [=] │ │ referencers :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ where_referenced :: Identifier │ │ topology :: Identifier │ │ cell :: Identifier │ │ [.] │ │ Iterators :: Identifier │ │ [inert] │ │ reverse :: Identifier │ │ [if] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ │ allow_multiple_defs :: Identifier │ │ [call] │ │ > :: Identifier │ │ [call] │ │ length :: Identifier │ │ assigners :: Identifier │ │ 1 :: Value │ │ [block] │ │ [for] │ │ [=] │ │ c :: Identifier │ │ assigners :: Identifier │ │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ │ c :: Identifier │ │ [call] │ │ MultipleDefinitionsError :: Identifier │ │ topology :: Identifier │ │ c :: Identifier │ │ assigners :: Identifier │ │ [=] │ │ should_continue_search_down :: Identifier │ │ [||] │ │ [call] │ │ ! :: Identifier │ │ skip_at_partial_multiple_defs :: Identifier │ │ [call] │ │ all :: Identifier │ │ [->] │ │ c :: Identifier │ │ [block] │ │ [||] │ │ [call] │ │ === :: Identifier │ │ c :: Identifier │ │ cell :: Identifier │ │ [call] │ │ ∈ :: Identifier │ │ c :: Identifier │ │ exits :: Identifier │ │ assigners :: Identifier │ │ [=] │ │ should_search_fellow_assigners_if_any :: Identifier │ │ [call] │ │ ! :: Identifier │ │ allow_multiple_defs :: Identifier │ │ [=] │ │ to_search_next :: Identifier │ │ [if] │ │ should_continue_search_down :: Identifier │ │ [block] │ │ [if] │ │ should_search_fellow_assigners_if_any :: Identifier │ │ [block] │ │ [call] │ │ union :: Identifier │ │ assigners :: Identifier │ │ referencers :: Identifier │ │ [block] │ │ referencers :: Identifier │ │ [block] │ │ [ref] │ │ C :: Identifier │ │ [for] │ │ [=] │ │ c :: Identifier │ │ to_search_next :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ !== :: Identifier │ │ c :: Identifier │ │ cell :: Identifier │ │ [block] │ │ [=] │ │ child_result :: Identifier │ │ [call] │ │ bfs :: Identifier │ │ c :: Identifier │ │ [if] │ │ [||] │ │ [call] │ │ isa :: Identifier │ │ child_result :: Identifier │ │ Ok :: Identifier │ │ [call] │ │ ∉ :: Identifier │ │ cell :: Identifier │ │ [.] │ │ child_result :: Identifier │ │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ │ [continue] │ │ [if] │ │ [call] │ │ ! :: Identifier │ │ [call] │ │ is_soft_edge :: Identifier │ │ topology :: Identifier │ │ cell :: Identifier │ │ c :: Identifier │ │ [block] │ │ [call] │ │ deleteat! :: Identifier │ │ entries :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ + :: Identifier │ │ current_entries_num :: Identifier │ │ 1 :: Value │ │ [call] │ │ length :: Identifier │ │ entries :: Identifier │ │ [call] │ │ deleteat! :: Identifier │ │ exits :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ + :: Identifier │ │ current_exits_num :: Identifier │ │ 1 :: Value │ │ [call] │ │ length :: Identifier │ │ exits :: Identifier │ │ [return] │ │ child_result :: Identifier │ │ [for] │ │ [=] │ │ cycled_cell :: Identifier │ │ [.] │ │ child_result :: Identifier │ │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ │ [call] │ │ delete! :: Identifier │ │ errable :: Identifier │ │ cycled_cell :: Identifier │ │ [if] │ │ [call] │ │ === :: Identifier │ │ [ref] │ │ entries :: Identifier │ │ end :: Identifier │ │ c :: Identifier │ │ [block] │ │ [call] │ │ pop! :: Identifier │ │ entries :: Identifier │ │ [continue] │ │ [call] │ │ push! :: Identifier │ │ exits :: Identifier │ │ cell :: Identifier │ │ [call] │ │ Ok :: Identifier │ │ [=] │ │ prelim_order_1 :: Identifier │ │ [call] │ │ sort :: Identifier │ │ roots :: Identifier │ │ [kw] │ │ alg :: Identifier │ │ MergeSort :: Identifier │ │ [kw] │ │ by :: Identifier │ │ [->] │ │ c :: Identifier │ │ [block] │ │ [call] │ │ cell_precedence_heuristic :: Identifier │ │ topology :: Identifier │ │ c :: Identifier │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ [call] │ │ length :: Identifier │ │ prelim_order_1 :: Identifier │ │ -1 :: Value │ │ 1 :: Value │ │ [block] │ │ [call] │ │ bfs :: Identifier │ │ [ref] │ │ prelim_order_1 :: Identifier │ │ i :: Identifier │ │ [=] │ │ ordered :: Identifier │ │ [call] │ │ reverse :: Identifier │ │ exits :: Identifier │ │ [call] │ │ TopologicalOrder :: Identifier │ │ topology :: Identifier │ │ [call] │ │ setdiff :: Identifier │ │ ordered :: Identifier │ │ [call] │ │ keys :: Identifier │ │ errable :: Identifier │ │ errable :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [block] │ │ [=] │ │ val :: Identifier │ scope_layer=3 │ [function] │ │ [where] │ │ [::] │ │ [call] │ │ topological_order :: Identifier │ scope_layer=1 │ [parameters] │ │ [kw] │ │ [::] │ │ allow_multiple_defs :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=405 │ [kw] │ │ [::] │ │ skip_at_partial_multiple_defs :: Identifier │ scope_layer=1 │ Bool :: Identifier │ scope_layer=1 │ false :: Value │ macro_source=405 │ [::] │ │ topology :: Identifier │ scope_layer=1 │ [curly] │ │ NotebookTopology :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [::] │ │ roots :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractVector :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [curly] │ │ TopologicalOrder :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ AbstractCell :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ skip_at_partial_multiple_defs :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ allow_multiple_defs :: Identifier │ scope_layer=1 │ nothing :: Value │ macro_source=405 │ [call] │ │ throw :: Identifier │ mod,scope_layer=1 │ [call] │ │ AssertionError :: Identifier │ mod,scope_layer=1 │ "allow_multiple_defs" :: Value │ macro_source=405 │ [=] │ │ entries :: Identifier │ scope_layer=1 │ [ref] │ │ C :: Identifier │ scope_layer=1 │ [=] │ │ exits :: Identifier │ scope_layer=1 │ [ref] │ │ C :: Identifier │ scope_layer=1 │ [=] │ │ errable :: Identifier │ scope_layer=1 │ [call] │ │ [curly] │ │ Dict :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ ReactivityError :: Identifier │ scope_layer=1 │ [function] │ │ [::] │ │ [call] │ │ bfs :: Identifier │ scope_layer=1 │ [::] │ │ cell :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ ChildExplorationResult :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ in :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ haskey :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [&&] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=405 │ [call] │ │ === :: Identifier │ scope_layer=1 │ [ref] │ │ entries :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [block] │ │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [elseif] │ │ [block] │ │ [call] │ │ in :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ currently_in :: Identifier │ scope_layer=1 │ [call] │ │ setdiff :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [=] │ │ cycle :: Identifier │ scope_layer=1 │ [ref] │ │ currently_in :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ findfirst :: Identifier │ scope_layer=1 │ [call] │ │ isequal :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ currently_in :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ [call] │ │ cycle_is_among_functions :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [block] │ │ [for] │ │ [=] │ │ cell :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [call] │ │ CyclicReferenceError :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [return] │ │ [call] │ │ Cycle :: Identifier │ scope_layer=1 │ cycle :: Identifier │ scope_layer=1 │ [return] │ │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [=] │ │ current_entries_num :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [=] │ │ current_exits_num :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [=] │ │ assigners :: Identifier │ scope_layer=1 │ [call] │ │ where_assigned :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [=] │ │ referencers :: Identifier │ scope_layer=1 │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ where_referenced :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [.] │ │ Iterators :: Identifier │ scope_layer=1 │ [inert] │ │ reverse :: Identifier │ │ [if] │ │ [&&] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ allow_multiple_defs :: Identifier │ scope_layer=1 │ [call] │ │ > :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=405 │ [block] │ │ [for] │ │ [=] │ │ c :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ [ref] │ │ errable :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [call] │ │ MultipleDefinitionsError :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ [=] │ │ should_continue_search_down :: Identifier │ scope_layer=1 │ [||] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ skip_at_partial_multiple_defs :: Identifier │ scope_layer=1 │ [call] │ │ all :: Identifier │ scope_layer=1 │ [->] │ │ c :: Identifier │ scope_layer=1 │ [block] │ │ [||] │ │ [call] │ │ === :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [call] │ │ ∈ :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ [=] │ │ should_search_fellow_assigners_if_any :: Identifier │ scope_layer=1 │ [call] │ │ ! :: Identifier │ scope_layer=1 │ allow_multiple_defs :: Identifier │ scope_layer=1 │ [=] │ │ to_search_next :: Identifier │ scope_layer=1 │ [if] │ │ should_continue_search_down :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ should_search_fellow_assigners_if_any :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ union :: Identifier │ scope_layer=1 │ assigners :: Identifier │ scope_layer=1 │ referencers :: Identifier │ scope_layer=1 │ [block] │ │ referencers :: Identifier │ scope_layer=1 │ [block] │ │ [ref] │ │ C :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ c :: Identifier │ scope_layer=1 │ to_search_next :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ !== :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ child_result :: Identifier │ scope_layer=1 │ [call] │ │ bfs :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [if] │ │ [||] │ │ [call] │ │ isa :: Identifier │ scope_layer=1 │ child_result :: Identifier │ scope_layer=1 │ Ok :: Identifier │ scope_layer=1 │ [call] │ │ ∉ :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [.] │ │ child_result :: Identifier │ scope_layer=1 │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ macro_source=405 │ [continue] │ macro_source=405 │ [if] │ │ [call] │ │ ! :: Identifier │ scope_layer=1 │ [call] │ │ is_soft_edge :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ deleteat! :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ current_entries_num :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=405 │ [call] │ │ length :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [call] │ │ deleteat! :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ current_exits_num :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=405 │ [call] │ │ length :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [return] │ │ child_result :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ cycled_cell :: Identifier │ scope_layer=1 │ [.] │ │ child_result :: Identifier │ scope_layer=1 │ [inert] │ │ cycled_cells :: Identifier │ │ [block] │ │ [call] │ │ delete! :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ cycled_cell :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ === :: Identifier │ scope_layer=1 │ [ref] │ │ entries :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ pop! :: Identifier │ scope_layer=1 │ entries :: Identifier │ scope_layer=1 │ [continue] │ macro_source=405 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ cell :: Identifier │ scope_layer=1 │ [call] │ │ Ok :: Identifier │ scope_layer=1 │ [=] │ │ prelim_order_1 :: Identifier │ scope_layer=1 │ [call] │ │ sort :: Identifier │ scope_layer=1 │ roots :: Identifier │ scope_layer=1 │ [kw] │ │ alg :: Identifier │ scope_layer=1 │ MergeSort :: Identifier │ scope_layer=1 │ [kw] │ │ by :: Identifier │ scope_layer=1 │ [->] │ │ c :: Identifier │ scope_layer=1 │ [block] │ │ [call] │ │ cell_precedence_heuristic :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ c :: Identifier │ scope_layer=1 │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ prelim_order_1 :: Identifier │ scope_layer=1 │ -1 :: Value │ macro_source=405 │ 1 :: Value │ macro_source=405 │ [block] │ │ [call] │ │ bfs :: Identifier │ scope_layer=1 │ [ref] │ │ prelim_order_1 :: Identifier │ scope_layer=1 │ i :: Identifier │ scope_layer=1 │ [=] │ │ ordered :: Identifier │ scope_layer=1 │ [call] │ │ reverse :: Identifier │ scope_layer=1 │ exits :: Identifier │ scope_layer=1 │ [call] │ │ TopologicalOrder :: Identifier │ scope_layer=1 │ topology :: Identifier │ scope_layer=1 │ [call] │ │ setdiff :: Identifier │ scope_layer=1 │ ordered :: Identifier │ scope_layer=1 │ [call] │ │ keys :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ errable :: Identifier │ scope_layer=1 │ [call] │ │ Base.Docs.doc! :: Value │ macro_source=405 │ PlutoDependencyExplorer :: Value │ macro_source=405 │ [call] │ │ Base.Docs.Binding :: Value │ macro_source=405 │ PlutoDependencyExplorer :: Value │ │ [inert] │ jl_source=L65 │ topological_order :: Identifier │ │ [call] │ macro_source=405 │ Base.Docs.docstr :: Value │ macro_source=405 │ [call] │ macro_source=405 │ Core.svec :: Value │ macro_source=405 │ "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" :: Value │ macro_source=405 │ [call] │ macro_source=405 │ Dict{Symbol, Any} :: Value │ macro_source=405 │ :path => "/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl" :: Value │ macro_source=405 │ :linenumber => 8 :: Value │ macro_source=405 │ :module => PlutoDependencyExplorer :: Value │ macro_source=405 │ [where] │ │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ [curly] │ │ NotebookTopology :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [curly] │ │ AbstractVector :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [curly] │ │ Tuple :: Identifier │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ C :: Identifier │ scope_layer=1 │ AbstractCell :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=3 │ │ file = "/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl" │ line = 8 └ mod = PlutoDependencyExplorer ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40 =# - Found unexpected binding of kind static_parameter Expression:  #₅₄/C Containing expressions:  (= #₁₇₄/C #₅₄/C)  (= #₃ (call core.svec (call core.svec #₁₄₃/##kw_body#topological_order#0#bfs##0 #₅₄/C) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40:0))  (= #₃ (call core.svec (call core.svec (function_type #₅₆/bfs) #₅₄/C) (call core.svec) SourceLocation:/home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40:0))  Detailed provenance:  #₅₄/C  └─ C  └─ C  ├─ @ /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:40  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 =#) "Return a `TopologicalOrder` that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.\n\n# Keyword arguments\n\n- `allow_multiple_defs::Bool = false`\n \n If `false` (default), multiple definitions are not allowed. When a cell is found that defines a variable that is also defined by another cell (this other cell is called a *fellow assigner*), then both cells are marked as `errable` and not `runnable`.\n \n If `true`, then multiple definitions are allowed, in the sense that we ignore the existance of other cells that define the same variable.\n\n\n- `skip_at_partial_multiple_defs::Bool = false`\n \n If `true` (not default), and `allow_multiple_defs = true` (not default), then the search stops going downward when finding a cell that has fellow assigners, *unless all fellow assigners can be reached by the `roots`*, in which case we continue searching downward.\n\n In other words, if there is a set of fellow assigners that can only be reached **partially** by the roots, then this set blocks the search, and cells that depend on the set are not found.\n" (function (where (:: (call topological_order (parameters (kw (:: allow_multiple_defs Bool) false) (kw (:: skip_at_partial_multiple_defs Bool) false)) (:: topology (curly NotebookTopology C)) (:: roots (curly AbstractVector C))) (curly TopologicalOrder C)) (<: C AbstractCell)) (block (if skip_at_partial_multiple_defs (block (macrocall @assert :(#= /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:32 =#) allow_multiple_defs))) (= entries (ref C)) (= exits (ref C)) (= errable (call (curly Dict C ReactivityError))) (function (:: (call bfs (:: cell C)) ChildExplorationResult) (block (if (call in cell exits) (block (return (call Ok))) (elseif (block (call haskey errable cell)) (block (return (call Ok))) (elseif (block (&& (call > (call length entries) 0) (call === (ref entries end) cell))) (block (return (call Ok))) (elseif (block (call in cell entries)) (block (= currently_in (call setdiff entries exits)) (= cycle (ref currently_in (call : (call findfirst (call isequal cell) currently_in) end))) (if (call ! (call cycle_is_among_functions topology cycle)) (block (for (= cell cycle) (block (= (ref errable cell) (call CyclicReferenceError topology cycle)))) (return (call Cycle cycle)))) (return (call Ok))))))) (= current_entries_num (call length entries)) (= current_exits_num (call length exits)) (call push! entries cell) (= assigners (call where_assigned topology cell)) (= referencers (call |> (call where_referenced topology cell) (. Iterators (inert reverse)))) (if (&& (call ! allow_multiple_defs) (call > (call length assigners) 1)) (block (for (= c assigners) (block (= (ref errable c) (call MultipleDefinitionsError topology c assigners)))))) (= should_continue_search_down (|| (call ! skip_at_partial_multiple_defs) (call all (-> c (block (|| (call === c cell) (call ∈ c exits)))) assigners))) (= should_search_fellow_assigners_if_any (call ! allow_multiple_defs)) (= to_search_next (if should_continue_search_down (block (if should_search_fellow_assigners_if_any (block (call union assigners referencers)) (block referencers))) (block (ref C)))) (for (= c to_search_next) (block (if (call !== c cell) (block (= child_result (call bfs c)) (if (|| (call isa child_result Ok) (call ∉ cell (. child_result (inert cycled_cells)))) (block (continue))) (if (call ! (call is_soft_edge topology cell c)) (block (call deleteat! entries (call : (call + current_entries_num 1) (call length entries))) (call deleteat! exits (call : (call + current_exits_num 1) (call length exits))) (return child_result))) (for (= cycled_cell (. child_result (inert cycled_cells))) (block (call delete! errable cycled_cell))) (if (call === (ref entries end) c) (block (call pop! entries))) (continue))))) (call push! exits cell) (call Ok))) (= prelim_order_1 (call sort roots (kw alg MergeSort) (kw by (-> c (block (call cell_precedence_heuristic topology c)))))) (for (= i (call : (call length prelim_order_1) -1 1)) (block (call bfs (ref prelim_order_1 i)))) (= ordered (call reverse exits)) (call TopologicalOrder topology (call setdiff ordered (call keys errable)) errable))))  └─ @ /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8  Stacktrace:  [1] _renumber(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ssa_rewrites::Dict{Int64, Int64}, slot_rewrites::Dict{Int64, Int64}, label_table::Dict{Int64, Int64}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1067  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1132  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1223  [4] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1253  [5] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [6] include(mapexpr::Function, mod::Module, _path::String)  @ Base ./Base.jl:327  [7] top-level scope  @ ~/.julia/packages/PlutoDependencyExplorer/BaZEm/src/PlutoDependencyExplorer.jl:24  [8] include(mod::Module, _path::String)  @ Base ./Base.jl:326  [9] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base ./loading.jl:3271  [10] top-level scope  @ stdin:5  [11] eval(m::Module, e::Any)  @ Core ./boot.jl:517  [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base ./loading.jl:3113  [13] push!(a::Vector{SubString{String}}, item::String)  @ Base ./loading.jl:3123 [inlined]  [14] exec_options(opts::Base.JLOptions)  @ Base ./client.jl:353  [15] _start()  @ Base ./client.jl:596 in expression starting at /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/topological_order.jl:8 in expression starting at /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/src/PlutoDependencyExplorer.jl:2 in expression starting at stdin:5 1 dependency had output during precompilation: ┌ PlutoDependencyExplorer │ [Output was shown above] └ ERROR: LoadError: The following 1 package failed to precompile: PlutoDependencyExplorer Failed to precompile PlutoDependencyExplorer [72656b73-756c-7461-726b-72656b6b696b] to "/home/pkgeval/.julia/compiled/v1.14/PlutoDependencyExplorer/jl_WNyRut" (ProcessExited(1)). in expression starting at /home/pkgeval/.julia/packages/PlutoDependencyExplorer/BaZEm/test/runtests.jl:2 Testing failed after 127.52s ERROR: LoadError: Package PlutoDependencyExplorer errored during testing Stacktrace: [1] pkgerror(msg::String) @ Pkg.Types /opt/julia/share/julia/stdlib/v1.14/Pkg/src/Types.jl:68 [2] test(ctx::Pkg.Types.Context, pkgs::Vector{PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool) @ Pkg.Operations /opt/julia/share/julia/stdlib/v1.14/Pkg/src/Operations.jl:3247 [3] Cmd(cmd::Cmd) @ Base /opt/julia/share/julia/stdlib/v1.14/Pkg/src/Operations.jl:3110 [inlined] [4] test(ctx::Pkg.Types.Context, pkgs::Vector{PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Cmd, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::@Kwargs{io::IOContext{IO}}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:587 [5] test(pkgs::Vector{PackageSpec}; io::IOContext{IO}, kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:172 [6] test(pkgs::Vector{String}; kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:160 [7] test @ /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:160 [inlined] [8] test(pkg::String; kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:159 [inlined] [9] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:223 [10] include(mod::Module, _path::String) @ Base ./Base.jl:326 [11] exec_options(opts::Base.JLOptions) @ Base ./client.jl:355 [12] _start() @ Base ./client.jl:596 in expression starting at /PkgEval.jl/scripts/evaluate.jl:214 PkgEval failed after 204.86s: package fails to precompile