diff --git a/.github/workflows/Documenter.yml b/.github/workflows/Documenter.yml new file mode 100644 index 0000000..5d042d6 --- /dev/null +++ b/.github/workflows/Documenter.yml @@ -0,0 +1,22 @@ +name: Documenter +on: + push: + branches: [master] + tags: [v*] + pull_request: + +jobs: + Documenter: + name: Documentation + runs-on: ubuntu-latest + steps: + - uses: julia-actions/setup-julia@v1 + with: + version: nightly + show-versioninfo: true + - uses: actions/checkout@v2 + - uses: julia-actions/julia-buildpkg@latest + - uses: julia-actions/julia-docdeploy@latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.gitignore b/.gitignore index 99e2cea..71c3a4a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.jl.mem .DS_Store /Manifest.toml +/docs/Manifest.toml /dev/ /docs/build/ /docs/site/ diff --git a/docs/Project.toml b/docs/Project.toml index 531318e..5024720 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,5 +1,7 @@ [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +MethodAnalysis = "85b6ec6f-f7df-4429-9514-a64bcd9ee824" [compat] Documenter = "0.25" diff --git a/docs/make.jl b/docs/make.jl index 332bd91..957fe86 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,5 +1,8 @@ using Documenter, MethodAnalysis +using InteractiveUtils +display(versioninfo()) + makedocs(; modules=[MethodAnalysis], format=Documenter.HTML(), @@ -13,4 +16,5 @@ makedocs(; deploydocs(; repo="github.com/timholy/MethodAnalysis.jl", + push_preview=true, ) diff --git a/docs/src/index.md b/docs/src/index.md index d5b8cf7..6a27473 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -98,12 +98,12 @@ Let's see all the compiled instances of `Base.setdiff` and their immediate calle ```jldoctest; setup=(using MethodAnalysis) julia> direct_backedges(setdiff) 6-element Vector{Any}: - MethodInstance for setdiff(::Base.KeySet{Any, Dict{Any, Any}}, ::Base.KeySet{Any, Dict{Any, Any}}) => MethodInstance for keymap_merge(::Dict{Char, Any}, ::Dict{Any, Any}) - MethodInstance for setdiff(::Base.KeySet{Any, Dict{Any, Any}}, ::Base.KeySet{Any, Dict{Any, Any}}) => MethodInstance for keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) - MethodInstance for setdiff(::Base.KeySet{Char, Dict{Char, Any}}, ::Base.KeySet{Any, Dict{Any, Any}}) => MethodInstance for keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) - MethodInstance for setdiff(::Base.KeySet{Any, Dict{Any, Any}}, ::Base.KeySet{Char, Dict{Char, Any}}) => MethodInstance for keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) - MethodInstance for setdiff(::Base.KeySet{Char, Dict{Char, Any}}, ::Base.KeySet{Char, Dict{Char, Any}}) => MethodInstance for keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) - MethodInstance for setdiff(::Vector{Base.UUID}, ::Vector{Base.UUID}) => MethodInstance for deps_graph(::Pkg.Types.Context, ::Dict{Base.UUID, String}, ::Dict{Base.UUID, Pkg.Types.VersionSpec}, ::Dict{Base.UUID, Pkg.Resolve.Fixed}) + MethodInstance for setdiff(::Base.KeySet{Any, Dict{Any, Any}}, ::Base.KeySet{Any, Dict{Any, Any}}) => MethodInstance for REPL.LineEdit.keymap_merge(::Dict{Char, Any}, ::Dict{Any, Any}) + MethodInstance for setdiff(::Base.KeySet{Any, Dict{Any, Any}}, ::Base.KeySet{Any, Dict{Any, Any}}) => MethodInstance for REPL.LineEdit.keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) + MethodInstance for setdiff(::Base.KeySet{Char, Dict{Char, Any}}, ::Base.KeySet{Any, Dict{Any, Any}}) => MethodInstance for REPL.LineEdit.keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) + MethodInstance for setdiff(::Base.KeySet{Any, Dict{Any, Any}}, ::Base.KeySet{Char, Dict{Char, Any}}) => MethodInstance for REPL.LineEdit.keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) + MethodInstance for setdiff(::Base.KeySet{Char, Dict{Char, Any}}, ::Base.KeySet{Char, Dict{Char, Any}}) => MethodInstance for REPL.LineEdit.keymap_merge(::Dict{Char, Any}, ::Union{Dict{Any, Any}, Dict{Char, Any}}) + MethodInstance for setdiff(::Vector{Base.UUID}, ::Vector{Base.UUID}) => MethodInstance for Pkg.Operations.deps_graph(::Pkg.Types.Context, ::Dict{Base.UUID, String}, ::Dict{Base.UUID, Pkg.Types.VersionSpec}, ::Dict{Base.UUID, Pkg.Resolve.Fixed}) ``` ### Printing backedges as a tree @@ -116,36 +116,36 @@ MethodInstance for findfirst(::BitVector) julia> MethodAnalysis.print_tree(mi) MethodInstance for findfirst(::BitVector) -├─ MethodInstance for prune_graph!(::Graph) -│ └─ MethodInstance for var"#simplify_graph!#111"(::Bool, ::typeof(simplify_graph!), ::Graph, ::Set{Int64}) -│ └─ MethodInstance for simplify_graph!(::Graph, ::Set{Int64}) -│ └─ MethodInstance for simplify_graph!(::Graph) -│ ├─ MethodInstance for trigger_failure!(::Graph, ::Vector{Int64}, ::Tuple{Int64, Int64}) +├─ MethodInstance for Pkg.Resolve.prune_graph!(::Graph) +│ └─ MethodInstance for Pkg.Resolve.var"#simplify_graph!#111"(::Bool, ::typeof(simplify_graph!), ::Graph, ::Set{Int64}) +│ └─ MethodInstance for Pkg.Resolve.simplify_graph!(::Graph, ::Set{Int64}) +│ └─ MethodInstance for Pkg.Resolve.simplify_graph!(::Graph) +│ ├─ MethodInstance for Pkg.Resolve.trigger_failure!(::Graph, ::Vector{Int64}, ::Tuple{Int64, Int64}) │ │ ⋮ │ │ -│ └─ MethodInstance for resolve_versions!(::Context, ::Vector{PackageSpec}) +│ └─ MethodInstance for Pkg.Operations.resolve_versions!(::Context, ::Vector{PackageSpec}) │ ⋮ │ -└─ MethodInstance for update_solution!(::SolutionTrace, ::Graph) - └─ MethodInstance for converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) - ├─ MethodInstance for converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) - │ ├─ MethodInstance for converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) - │ │ ├─ MethodInstance for converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) +└─ MethodInstance for Pkg.Resolve.update_solution!(::SolutionTrace, ::Graph) + └─ MethodInstance for Pkg.Resolve.converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) + ├─ MethodInstance for Pkg.Resolve.converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) + │ ├─ MethodInstance for Pkg.Resolve.converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) + │ │ ├─ MethodInstance for Pkg.Resolve.converge!(::Graph, ::Messages, ::SolutionTrace, ::NodePerm, ::MaxSumParams) │ │ │ ⋮ │ │ │ - │ │ └─ MethodInstance for maxsum(::Graph) + │ │ └─ MethodInstance for Pkg.Resolve.maxsum(::Graph) │ │ ⋮ │ │ - │ └─ MethodInstance for maxsum(::Graph) - │ └─ MethodInstance for resolve(::Graph) + │ └─ MethodInstance for Pkg.Resolve.maxsum(::Graph) + │ └─ MethodInstance for Pkg.Resolve.resolve(::Graph) │ ⋮ │ - └─ MethodInstance for maxsum(::Graph) - └─ MethodInstance for resolve(::Graph) - ├─ MethodInstance for trigger_failure!(::Graph, ::Vector{Int64}, ::Tuple{Int64, Int64}) + └─ MethodInstance for Pkg.Resolve.maxsum(::Graph) + └─ MethodInstance for Pkg.Resolve.resolve(::Graph) + ├─ MethodInstance for Pkg.Resolve.trigger_failure!(::Graph, ::Vector{Int64}, ::Tuple{Int64, Int64}) │ ⋮ │ - └─ MethodInstance for resolve_versions!(::Context, ::Vector{PackageSpec}) + └─ MethodInstance for Pkg.Operations.resolve_versions!(::Context, ::Vector{PackageSpec}) ⋮ ```