Package evaluation to test PlutoStyles on Julia 1.14.0-DEV.2309 (6e1a27e459*) started at 2026-06-06T18:30:42.589 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Activating project at `~/.julia/environments/v1.14` Set-up completed after 17.33s ################################################################################ # Installation # Installing PlutoStyles... Resolving package versions... Installed PlutoDependencyExplorer ───── v1.2.2 Installed RelocatableFolders ────────── v1.0.1 Installed Configurations ────────────── v0.17.6 Installed URIs ──────────────────────── v1.6.1 Installed ConcurrentUtilities ───────── v2.5.1 Installed Tricks ────────────────────── v0.1.13 Installed ExpressionExplorer ────────── v1.1.4 Installed GracefulPkg ───────────────── v2.4.3 Installed CodecZlib ─────────────────── v0.7.8 Installed ExceptionUnwrapping ───────── v0.1.11 Installed OrderedCollections ────────── v1.8.2 Installed DataAPI ───────────────────── v1.16.0 Installed IteratorInterfaceExtensions ─ v1.0.0 Installed TranscodingStreams ────────── v0.11.3 Installed DataValueInterfaces ───────── v1.0.0 Installed Compat ────────────────────── v4.18.1 Installed PrecompileSignatures ──────── v3.0.3 Installed MbedTLS ───────────────────── v1.1.10 Installed Malt ──────────────────────── v1.4.1 Installed MIMEs ─────────────────────── v1.1.0 Installed ExproniconLite ────────────── v0.10.14 Installed PrecompileTools ───────────── v1.3.4 Installed BitFlags ──────────────────── v0.1.10 Installed MsgPack ───────────────────── v1.2.1 Installed OpenSSL ───────────────────── v1.6.1 Installed Tables ────────────────────── v1.12.1 Installed SimpleBufferStream ────────── v1.2.0 Installed Scratch ───────────────────── v1.3.0 Installed PlutoStyles ───────────────── v0.1.13 Installed LoggingExtras ─────────────── v1.2.0 Installed HTTP ──────────────────────── v1.11.0 Installed LazilyInitializedFields ───── v1.3.0 Installed HypertextLiteral ──────────── v1.0.0 Installed MbedTLS_jll ───────────────── v2.28.1010+0 Installed RegistryInstances ─────────── v0.1.0 Installed TableTraits ───────────────── v1.0.1 Installed Preferences ───────────────── v1.5.2 Installed JLLWrappers ───────────────── v1.8.0 Installed LRUCache ──────────────────── v1.6.2 Installed Pluto ─────────────────────── v0.20.28 Installing 1 artifacts Installed artifact MbedTLS 2.2 MiB Updating `~/.julia/environments/v1.14/Project.toml` [16e07271] + PlutoStyles v0.1.13 Updating `~/.julia/environments/v1.14/Manifest.toml` [d1d4a3ce] + BitFlags v0.1.10 [944b1d66] + CodecZlib v0.7.8 [34da2185] + Compat v4.18.1 [f0e56b4a] + ConcurrentUtilities v2.5.1 [5218b696] + Configurations v0.17.6 [9a962f9c] + DataAPI v1.16.0 [e2d170a0] + DataValueInterfaces v1.0.0 [460bff9d] + ExceptionUnwrapping v0.1.11 [21656369] + ExpressionExplorer v1.1.4 [55351af7] + ExproniconLite v0.10.14 [828d9ff0] + GracefulPkg v2.4.3 ⌅ [cd3eb016] + HTTP v1.11.0 [ac1192a8] + HypertextLiteral v1.0.0 [82899510] + IteratorInterfaceExtensions v1.0.0 [692b3bcd] + JLLWrappers v1.8.0 [8ac3fa9e] + LRUCache v1.6.2 [0e77f7df] + LazilyInitializedFields v1.3.0 [e6f89c97] + LoggingExtras v1.2.0 [6c6e2e6c] + MIMEs v1.1.0 [36869731] + Malt v1.4.1 [739be429] + MbedTLS v1.1.10 [99f44e22] + MsgPack v1.2.1 [4d8831e6] + OpenSSL v1.6.1 ⌅ [bac558e1] + OrderedCollections v1.8.2 ⌅ [c3e4b0f8] + Pluto v0.20.28 [72656b73] + PlutoDependencyExplorer v1.2.2 [16e07271] + PlutoStyles v0.1.13 [91cefc8d] + PrecompileSignatures v3.0.3 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [2792f1a3] + RegistryInstances v0.1.0 [05181044] + RelocatableFolders v1.0.1 [6c6a2e73] + Scratch v1.3.0 [777ac1f9] + SimpleBufferStream v1.2.0 [3783bdb8] + TableTraits v1.0.1 [bd369af6] + Tables v1.12.1 [3bb67fe8] + TranscodingStreams v0.11.3 [410a4b4d] + Tricks v0.1.13 [5c2747f8] + URIs v1.6.1 [c8ffd9c3] + MbedTLS_jll v2.28.1010+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed 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 [3fa0cd96] + REPL v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets 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.2+0 [deac9b47] + LibCURL_jll v8.20.0+1 [e37daf67] + LibGit2_jll v1.9.4+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 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 9.92s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling project... 6.5 s ✓ TestEnv 1 dependency successfully precompiled in 7 seconds. 27 already precompiled. Precompiling package dependencies... Precompiling project... 1.3 s ✓ DataAPI 3.4 s ✓ ExproniconLite 1.3 s ✓ Tricks 0.5 s ✓ DataValueInterfaces 39.9 s ✓ URIs 0.9 s ✓ LazilyInitializedFields 150.0 s ✓ OrderedCollections 2.9 s ✓ PrecompileSignatures 39.0 s ✓ BitFlags 91.5 s ✓ LRUCache 1.7 s ✓ ExpressionExplorer 53.7 s ✓ TranscodingStreams 0.7 s ✓ SimpleBufferStream 4.0 s ✓ MIMEs 0.5 s ✓ IteratorInterfaceExtensions 1.6 s ✓ MsgPack 1.5 s ✓ ConcurrentUtilities 2.4 s ✓ Scratch 2.8 s ✓ LoggingExtras 1.5 s ✓ Compat 2.9 s ✓ Preferences 39.1 s ✓ ExceptionUnwrapping 1.5 s ✓ HypertextLiteral 7.6 s ✓ RegistryInstances 45.3 s ✓ Configurations 80.6 s ✓ OpenSSL 37.3 s ✓ LRUCache → SerializationExt ┌ 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:1091  [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:1156  [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:1251  [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:1281  [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:3296  [10] top-level scope  @ stdin:5  [11] eval(m::Module, e::Any)  @ Core boot.jl:521  [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [13] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [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 19.9 s ✓ CodecZlib 0.5 s ✓ TableTraits 2.5 s ✓ RelocatableFolders 0.7 s ✓ Compat → CompatLinearAlgebraExt 3.5 s ✓ JLLWrappers 3.2 s ✓ PrecompileTools 151.4 s ✓ Tables 23.6 s ✓ Malt 7.1 s ✓ GracefulPkg 3.8 s ✓ MbedTLS_jll 4.2 s ✓ MbedTLS ┌ Info: Ignoring an error that occurred during the precompilation workload │ exception = │ HTTP.RequestError: │ HTTP.Request: │ HTTP.Messages.Request: │ """ │ GET / HTTP/1.1 │ Host: localhost:57813 │ Accept: */* │ User-Agent: HTTP.jl/1.14.0-DEV.2309 │ Content-Length: 0 │ Accept-Encoding: gzip │ │ """Underlying error: │ MethodError: objects of type ReentrantLock are not callable. │ In case you did not try calling it explicitly, check if a ReentrantLock has been passed as an argument to a method that expects a callable instead. │ The object of type `ReentrantLock` exists, but no method is defined for this combination of argument types when trying to treat it as a callable object. │ Stacktrace: │ [1] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:143 [inlined] │ [2] (::HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}})(req::HTTP.Messages.Request; proxy::Nothing, socket_type::Type, socket_type_tls::Nothing, readtimeout::Int64, connect_timeout::Int64, logerrors::Bool, logtag::Nothing, closeimmediately::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ HTTP.ConnectionRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:51 │ [3] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:60 [inlined] │ [4] (::Base.var"#45#46"{Base.var"#47#48"{ExponentialBackOff, HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##->###0"{HTTP.Messages.Request, Int64, typeof(HTTP.RetryRequest.FALSE), Base.RefValue{Int64}}, HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(args::HTTP.Messages.Request; kwargs::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ Base error.jl:311 │ [5] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:75 [inlined] │ [6] (::HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(req::HTTP.Messages.Request; retry::Bool, retries::Int64, retry_delays::ExponentialBackOff, retry_check::Function, retry_non_idempotent::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ HTTP.RetryRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:10 │ [7] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:30 [inlined] │ [8] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:42 [inlined] │ [9] (::HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}})(req::HTTP.Messages.Request; cookies::Bool, cookiejar::HTTP.Cookies.CookieJar, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ HTTP.CookieRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:11 │ [10] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:19 [inlined] │ [11] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:71 [inlined] │ [12] (::HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}})(req::HTTP.Messages.Request; iofunction::Nothing, decompress::Nothing, basicauth::Bool, detect_content_type::Bool, canonicalize_headers::Bool, kw::@Kwargs{verbose::Int64}) │ @ HTTP.HeadersRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:8 │ [13] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:14 [inlined] │ [14] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:25 [inlined] │ [15] (::HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}})(req::HTTP.Messages.Request; redirect::Bool, redirect_limit::Int64, redirect_method::Nothing, forwardheaders::Bool, response_stream::Nothing, kw::@Kwargs{verbose::Int64}) │ @ HTTP.RedirectRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:8 │ [16] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:14 [inlined] │ [17] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:30 [inlined] │ [18] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}; copyheaders::Bool, response_stream::Nothing, http_version::HTTP.Strings.HTTPVersion, verbose::Int64, kw::@Kwargs{}) │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ [19] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:24 [inlined] │ [20] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}) │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ [21] request(stack::Function, method::String, url::String, h::Nothing, b::Vector{UInt8}, q::Nothing; headers::Nothing, body::Vector{UInt8}, query::Nothing, kw::@Kwargs{}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:463 │ [22] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ [23] request(method::String, url::String, h::Nothing, b::Vector{UInt8}; headers::Nothing, body::Vector{UInt8}, query::Nothing, observelayers::Bool, kw::@Kwargs{}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ [24] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ [25] request(method::String, url::String, h::Nothing, b::Vector{UInt8}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ [26] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ [27] request(method::String, url::String) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ [28] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ [29] get(a::String; kw::@Kwargs{}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ [30] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ [31] get(a::String) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ [32] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:36 [inlined] │ [33] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ [34] (::HTTP.var"##->###3"{String})() │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 [inlined] │ [35] withenv(::HTTP.var"##->###3"{String}, ::Pair{String, Union{Nothing, String}}, ::Vararg{Pair{String, Union{Nothing, String}}}) │ @ Base env.jl:265 │ [36] macro expansion │ @ ~/.julia/packages/PrecompileTools/QUxvR/src/workloads.jl:75 [inlined] │ [37] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ [38] top-level scope │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 │ [39] include(mapexpr::Function, mod::Module, _path::String) │ @ Base Base.jl:327 │ [40] top-level scope │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:651 │ [41] include(mod::Module, _path::String) │ @ Base Base.jl:326 │ [42] 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:3296 │ [43] top-level scope │ @ stdin:5 │ [44] eval(m::Module, e::Any) │ @ Core boot.jl:521 │ [45] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ @ Base loading.jl:3132 │ [46] include_string(m::Module, txt::String, fname::String) │ @ Base loading.jl:3142 [inlined] │ [47] exec_options(opts::Base.JLOptions) │ @ Base client.jl:353 │ [48] _start() └ @ Base client.jl:596 146.8 s ✓ HTTP ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("72656b73-756c-7461-726b-72656b6b696b"), "PlutoDependencyExplorer") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_import(::Bool, ::Module, ::Expr, ::Expr, ::Vararg{Expr})  @ Base module.jl:101  [11] eval_import(::Bool, ::Module, ::Expr, ::Expr, ::Vararg{Expr})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:195  [12] top-level scope  @ ~/.julia/packages/Pluto/d9Dpv/src/Pluto.jl:43  [13] include(mod::Module, _path::String)  @ Base Base.jl:326  [14] 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:3296  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:521  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/Pluto/d9Dpv/src/Pluto.jl:1 in expression starting at stdin:5 ✗ Pluto ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("c3e4b0f8-55cb-11ea-2926-15256bba5781"), "Pluto") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] _eval_import(imported::Bool, to::Module, from::Nothing, paths::Expr)  @ Base module.jl:111  [10] eval_import(imported::Bool, to::Module, from::Nothing, paths::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:195  [11] top-level scope  @ ~/.julia/packages/PlutoStyles/vTdXS/src/PlutoStyles.jl:5  [12] include(mod::Module, _path::String)  @ Base Base.jl:326  [13] 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:3296  [14] top-level scope  @ stdin:5  [15] eval(m::Module, e::Any)  @ Core boot.jl:521  [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [17] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [18] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [19] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/PlutoStyles/vTdXS/src/PlutoStyles.jl:1 in expression starting at stdin:5 ✗ PlutoStyles 39 dependencies successfully precompiled in 1024 seconds. 33 already precompiled. 1 dependency had output during precompilation: ┌ HTTP │ ┌ Info: Ignoring an error that occurred during the precompilation workload │ │ exception = │ │ HTTP.RequestError: │ │ HTTP.Request: │ │ HTTP.Messages.Request: │ │ """ │ │ GET / HTTP/1.1 │ │ Host: localhost:57813 │ │ Accept: */* │ │ User-Agent: HTTP.jl/1.14.0-DEV.2309 │ │ Content-Length: 0 │ │ Accept-Encoding: gzip │ │ │ │ """Underlying error: │ │ MethodError: objects of type ReentrantLock are not callable. │ │ In case you did not try calling it explicitly, check if a ReentrantLock has been passed as an argument to a method that expects a callable instead. │ │ The object of type `ReentrantLock` exists, but no method is defined for this combination of argument types when trying to treat it as a callable object. │ │ Stacktrace: │ │ [1] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:143 [inlined] │ │ [2] (::HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}})(req::HTTP.Messages.Request; proxy::Nothing, socket_type::Type, socket_type_tls::Nothing, readtimeout::Int64, connect_timeout::Int64, logerrors::Bool, logtag::Nothing, closeimmediately::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ HTTP.ConnectionRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:51 │ │ [3] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:60 [inlined] │ │ [4] (::Base.var"#45#46"{Base.var"#47#48"{ExponentialBackOff, HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##->###0"{HTTP.Messages.Request, Int64, typeof(HTTP.RetryRequest.FALSE), Base.RefValue{Int64}}, HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(args::HTTP.Messages.Request; kwargs::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ Base error.jl:311 │ │ [5] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:75 [inlined] │ │ [6] (::HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(req::HTTP.Messages.Request; retry::Bool, retries::Int64, retry_delays::ExponentialBackOff, retry_check::Function, retry_non_idempotent::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ HTTP.RetryRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:10 │ │ [7] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:30 [inlined] │ │ [8] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:42 [inlined] │ │ [9] (::HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}})(req::HTTP.Messages.Request; cookies::Bool, cookiejar::HTTP.Cookies.CookieJar, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ HTTP.CookieRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:11 │ │ [10] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:19 [inlined] │ │ [11] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:71 [inlined] │ │ [12] (::HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}})(req::HTTP.Messages.Request; iofunction::Nothing, decompress::Nothing, basicauth::Bool, detect_content_type::Bool, canonicalize_headers::Bool, kw::@Kwargs{verbose::Int64}) │ │ @ HTTP.HeadersRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:8 │ │ [13] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:14 [inlined] │ │ [14] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:25 [inlined] │ │ [15] (::HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}})(req::HTTP.Messages.Request; redirect::Bool, redirect_limit::Int64, redirect_method::Nothing, forwardheaders::Bool, response_stream::Nothing, kw::@Kwargs{verbose::Int64}) │ │ @ HTTP.RedirectRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:8 │ │ [16] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:14 [inlined] │ │ [17] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:30 [inlined] │ │ [18] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}; copyheaders::Bool, response_stream::Nothing, http_version::HTTP.Strings.HTTPVersion, verbose::Int64, kw::@Kwargs{}) │ │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ │ [19] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:24 [inlined] │ │ [20] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}) │ │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ │ [21] request(stack::Function, method::String, url::String, h::Nothing, b::Vector{UInt8}, q::Nothing; headers::Nothing, body::Vector{UInt8}, query::Nothing, kw::@Kwargs{}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:463 │ │ [22] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ │ [23] request(method::String, url::String, h::Nothing, b::Vector{UInt8}; headers::Nothing, body::Vector{UInt8}, query::Nothing, observelayers::Bool, kw::@Kwargs{}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ │ [24] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ │ [25] request(method::String, url::String, h::Nothing, b::Vector{UInt8}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ │ [26] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ │ [27] request(method::String, url::String) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ │ [28] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ │ [29] get(a::String; kw::@Kwargs{}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ │ [30] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ │ [31] get(a::String) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ │ [32] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:36 [inlined] │ │ [33] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ │ [34] (::HTTP.var"##->###3"{String})() │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 [inlined] │ │ [35] withenv(::HTTP.var"##->###3"{String}, ::Pair{String, Union{Nothing, String}}, ::Vararg{Pair{String, Union{Nothing, String}}}) │ │ @ Base env.jl:265 │ │ [36] macro expansion │ │ @ ~/.julia/packages/PrecompileTools/QUxvR/src/workloads.jl:75 [inlined] │ │ [37] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ │ [38] top-level scope │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 │ │ [39] include(mapexpr::Function, mod::Module, _path::String) │ │ @ Base Base.jl:327 │ │ [40] top-level scope │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:651 │ │ [41] include(mod::Module, _path::String) │ │ @ Base Base.jl:326 │ │ [42] 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:3296 │ │ [43] top-level scope │ │ @ stdin:5 │ │ [44] eval(m::Module, e::Any) │ │ @ Core boot.jl:521 │ │ [45] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ │ @ Base loading.jl:3132 │ │ [46] include_string(m::Module, txt::String, fname::String) │ │ @ Base loading.jl:3142 [inlined] │ │ [47] exec_options(opts::Base.JLOptions) │ │ @ Base client.jl:353 │ │ [48] _start() │ └ @ Base client.jl:596 └ Precompilation completed after 1061.96s ################################################################################ # Testing # Testing PlutoStyles Status `/tmp/jl_lfDUcC/Project.toml` ⌅ [c3e4b0f8] Pluto v0.20.28 [16e07271] PlutoStyles v0.1.13 Status `/tmp/jl_lfDUcC/Manifest.toml` [d1d4a3ce] BitFlags v0.1.10 [944b1d66] CodecZlib v0.7.8 [34da2185] Compat v4.18.1 [f0e56b4a] ConcurrentUtilities v2.5.1 [5218b696] Configurations v0.17.6 [9a962f9c] DataAPI v1.16.0 [e2d170a0] DataValueInterfaces v1.0.0 [460bff9d] ExceptionUnwrapping v0.1.11 [21656369] ExpressionExplorer v1.1.4 [55351af7] ExproniconLite v0.10.14 [828d9ff0] GracefulPkg v2.4.3 ⌅ [cd3eb016] HTTP v1.11.0 [ac1192a8] HypertextLiteral v1.0.0 [82899510] IteratorInterfaceExtensions v1.0.0 [692b3bcd] JLLWrappers v1.8.0 [8ac3fa9e] LRUCache v1.6.2 [0e77f7df] LazilyInitializedFields v1.3.0 [e6f89c97] LoggingExtras v1.2.0 [6c6e2e6c] MIMEs v1.1.0 [36869731] Malt v1.4.1 [739be429] MbedTLS v1.1.10 [99f44e22] MsgPack v1.2.1 [4d8831e6] OpenSSL v1.6.1 ⌅ [bac558e1] OrderedCollections v1.8.2 ⌅ [c3e4b0f8] Pluto v0.20.28 [72656b73] PlutoDependencyExplorer v1.2.2 [16e07271] PlutoStyles v0.1.13 [91cefc8d] PrecompileSignatures v3.0.3 [aea7be01] PrecompileTools v1.3.4 [21216c6a] Preferences v1.5.2 [2792f1a3] RegistryInstances v0.1.0 [05181044] RelocatableFolders v1.0.1 [6c6a2e73] Scratch v1.3.0 [777ac1f9] SimpleBufferStream v1.2.0 [3783bdb8] TableTraits v1.0.1 [bd369af6] Tables v1.12.1 [3bb67fe8] TranscodingStreams v0.11.3 [410a4b4d] Tricks v0.1.13 [5c2747f8] URIs v1.6.1 [c8ffd9c3] MbedTLS_jll v2.28.1010+0 [0dad84c5] ArgTools v1.1.2 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [8ba89e20] Distributed 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 [3fa0cd96] REPL v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v1.13.0 [9e88b42a] Serialization v1.11.0 [6462fe0b] Sockets 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.2+0 [deac9b47] LibCURL_jll v8.20.0+1 [e37daf67] LibGit2_jll v1.9.4+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 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. 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:1091  [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:1156  [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:1251  [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:1281  [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:3296  [10] top-level scope  @ stdin:5  [11] eval(m::Module, e::Any)  @ Core boot.jl:521  [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [13] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [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 ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("72656b73-756c-7461-726b-72656b6b696b"), "PlutoDependencyExplorer") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_import(::Bool, ::Module, ::Expr, ::Expr, ::Vararg{Expr})  @ Base module.jl:101  [11] eval_import(::Bool, ::Module, ::Expr, ::Expr, ::Vararg{Expr})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:195  [12] top-level scope  @ ~/.julia/packages/Pluto/d9Dpv/src/Pluto.jl:43  [13] include(mod::Module, _path::String)  @ Base Base.jl:326  [14] 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:3296  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:521  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/Pluto/d9Dpv/src/Pluto.jl:1 in expression starting at stdin:5 ┌ 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:1091  [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:1156  [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:1251  [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:1281  [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:3296  [10] top-level scope  @ stdin:5  [11] eval(m::Module, e::Any)  @ Core boot.jl:521  [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [13] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [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 ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("72656b73-756c-7461-726b-72656b6b696b"), "PlutoDependencyExplorer") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_import(::Bool, ::Module, ::Expr, ::Expr, ::Vararg{Expr})  @ Base module.jl:101  [11] eval_import(::Bool, ::Module, ::Expr, ::Expr, ::Vararg{Expr})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:195  [12] top-level scope  @ ~/.julia/packages/Pluto/d9Dpv/src/Pluto.jl:43  [13] include(mod::Module, _path::String)  @ Base Base.jl:326  [14] 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:3296  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:521  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/Pluto/d9Dpv/src/Pluto.jl:1 in expression starting at stdin:5 2 dependencies had output during precompilation: ┌ Pluto │ [Output was shown above] └ ┌ PlutoDependencyExplorer │ ┌ 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:1091 │ [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:1156 │ [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:1251 │ [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:1281 │ [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:3296 │ [10] top-level scope │ @ stdin:5 │ [11] eval(m::Module, e::Any) │ @ Core boot.jl:521 │ [12] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ @ Base loading.jl:3132 │ [13] include_string(m::Module, txt::String, fname::String) │ @ Base loading.jl:3142 [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 └ ERROR: LoadError: The following 2 packages failed to precompile: Pluto Failed to precompile Pluto [c3e4b0f8-55cb-11ea-2926-15256bba5781] to "/home/pkgeval/.julia/compiled/v1.14/Pluto/jl_wnP9N6" (ProcessExited(1)). PlutoDependencyExplorer Failed to precompile PlutoDependencyExplorer [72656b73-756c-7461-726b-72656b6b696b] to "/home/pkgeval/.julia/compiled/v1.14/PlutoDependencyExplorer/jl_U24R3U" (ProcessExited(1)). in expression starting at /home/pkgeval/.julia/packages/PlutoStyles/vTdXS/src/PlutoStyles.jl:1 in expression starting at /home/pkgeval/.julia/packages/PlutoStyles/vTdXS/test/runtests.jl:2 Testing failed after 95.12s ERROR: LoadError: Package PlutoStyles 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] 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 [4] 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 [5] test(pkgs::Vector{String}; kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:160 [6] test(pkg::String; kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:159 [inlined] [7] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:223 [8] include(mod::Module, _path::String) @ Base Base.jl:326 [9] exec_options(opts::Base.JLOptions) @ Base client.jl:355 [10] _start() @ Base client.jl:596 in expression starting at /PkgEval.jl/scripts/evaluate.jl:214 PkgEval failed after 1207.63s: package fails to precompile