From 12df81f390ad5387e15113fcda2f560c258dcdab Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Sat, 27 Jun 2020 01:19:08 +0200 Subject: [PATCH 01/20] automate updating of precompilation files using SnoopCompileBot --- .github/workflows/SnoopCompile.yml | 83 +++ deps/SnoopCompile/precompile_script.jl | 4 + deps/SnoopCompile/snoop_bench.jl | 6 + deps/SnoopCompile/snoop_bot.jl | 6 + src/Plots.jl | 4 +- src/precompile.jl | 740 ------------------------- 6 files changed, 100 insertions(+), 743 deletions(-) create mode 100644 .github/workflows/SnoopCompile.yml create mode 100644 deps/SnoopCompile/precompile_script.jl create mode 100644 deps/SnoopCompile/snoop_bench.jl create mode 100644 deps/SnoopCompile/snoop_bot.jl delete mode 100644 src/precompile.jl diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml new file mode 100644 index 000000000..df2044687 --- /dev/null +++ b/.github/workflows/SnoopCompile.yml @@ -0,0 +1,83 @@ +name: SnoopCompile + +on: + push: + branches: + # - 'master' # NOTE: to run the bot only on pushes to master + +defaults: + run: + shell: bash + +jobs: + SnoopCompile: + if: "!contains(github.event.head_commit.message, '[skip ci]')" + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: # NOTE: the versions below should match those in your botconfig + - 'nightly' + - '1' + - '1.2' + os: # NOTE: should match the os setting of your botconfig + - ubuntu-latest + - windows-latest + - macos-latest + arch: + - x64 + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@latest + with: + version: ${{ matrix.version }} + - name: Install dependencies + run: | + julia --project -e 'using Pkg; Pkg.instantiate();' + julia -e 'using Pkg; Pkg.add(PackageSpec(url = "https://github.com/timholy/SnoopCompile.jl")); Pkg.develop(PackageSpec(; path=pwd())); using SnoopCompile; SnoopCompile.addtestdep();' + - name: Generating precompile files + run: julia --project -e 'include("deps/SnoopCompile/snoop_bot.jl")' # NOTE: must match path + - name: Running Benchmark + run: julia --project -e 'include("deps/SnoopCompile/snoop_bench.jl")' # NOTE: optional, if have benchmark file + - name: Upload all + uses: actions/upload-artifact@v2 + with: + path: ./ + + Create_PR: + if: "!contains(github.event.head_commit.message, '[skip ci]')" + needs: SnoopCompile + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Download all + uses: actions/download-artifact@v2 + - name: Move the content of the directory to the root + run: | + rsync -a artifact/* ./ + rm -d -r artifact + - name: Discard unrelated changes + run: | + test -f 'Project.toml' && git checkout -- 'Project.toml' + git ls-files 'Manifest.toml' | grep . && git checkout -- 'Manifest.toml' + (git diff -w --no-color || git apply --cached --ignore-whitespace && git checkout -- . && git reset && git add -p) || echo done + - name: Format precompile_includer.jl + run: julia -e 'using Pkg; Pkg.add("JuliaFormatter"); using JuliaFormatter; format_file("src/precompile_includer.jl")' + - name: Create Pull Request + # https://github.com/marketplace/actions/create-pull-request + uses: peter-evans/create-pull-request@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: Update precompile_*.jl file + # committer: Daniel Schwabender # NOTE: change `committer` to your name and your email. + title: "[AUTO] Update precompiles" + labels: SnoopCompile + branch: "SnoopCompile_AutoPR" + + + Skip: + if: "contains(github.event.head_commit.message, '[skip ci]')" + runs-on: ubuntu-latest + steps: + - name: Skip CI 🚫 + run: echo skip ci diff --git a/deps/SnoopCompile/precompile_script.jl b/deps/SnoopCompile/precompile_script.jl new file mode 100644 index 000000000..c5ef44349 --- /dev/null +++ b/deps/SnoopCompile/precompile_script.jl @@ -0,0 +1,4 @@ +using Plots + +Plots.test_examples(:gr) +Plots.test_examples(:plotly, skip = Plots._backend_skips[:plotly]) diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl new file mode 100644 index 000000000..07bcc77ec --- /dev/null +++ b/deps/SnoopCompile/snoop_bench.jl @@ -0,0 +1,6 @@ +using SnoopCompile + +snoop_bench( + BotConfig("Plots", version = [v"1.2", v"1", "nightly"]), + joinpath(@__DIR__, "precompile_script.jl"), +) diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl new file mode 100644 index 000000000..0bdbd2ad1 --- /dev/null +++ b/deps/SnoopCompile/snoop_bot.jl @@ -0,0 +1,6 @@ +using SnoopCompile + +snoop_bot( + BotConfig("Plots", version = [v"1.2", v"1", "nightly"]), + joinpath(@__DIR__, "precompile_script.jl"), +) diff --git a/src/Plots.jl b/src/Plots.jl index 2770338cf..0d90f7eea 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -250,7 +250,5 @@ end const CURRENT_BACKEND = CurrentBackend(:none) -include("precompile.jl") -_precompile_() - +include("precompile_includer.jl") end # module diff --git a/src/precompile.jl b/src/precompile.jl deleted file mode 100644 index 7a6e09e2f..000000000 --- a/src/precompile.jl +++ /dev/null @@ -1,740 +0,0 @@ -function _precompile_() - ccall(:jl_generating_output, Cint, ()) == 1 || return nothing - isdefined(Plots, Symbol("#@layout")) && precompile(Tuple{getfield(Plots, Symbol("#@layout")), LineNumberNode, Module, Expr}) - isdefined(Plots, Symbol("#_make_hist##kw")) && precompile(Tuple{getfield(Plots, Symbol("#_make_hist##kw")), NamedTuple{(:normed, :weights), Tuple{Bool, Array{Int64, 1}}}, typeof(Plots._make_hist), Tuple{Array{Float64, 1}}, Symbol}) - isdefined(Plots, Symbol("#_make_hist##kw")) && precompile(Tuple{getfield(Plots, Symbol("#_make_hist##kw")), NamedTuple{(:normed, :weights), Tuple{Bool, Nothing}}, typeof(Plots._make_hist), Tuple{Array{Float64, 1}, Array{Float64, 1}}, Int64}) - isdefined(Plots, Symbol("#_make_hist##kw")) && precompile(Tuple{getfield(Plots, Symbol("#_make_hist##kw")), NamedTuple{(:normed, :weights), Tuple{Bool, Nothing}}, typeof(Plots._make_hist), Tuple{Array{Float64, 1}, Array{Float64, 1}}, Tuple{Int64, Int64}}) - isdefined(Plots, Symbol("#_make_hist##kw")) && precompile(Tuple{getfield(Plots, Symbol("#_make_hist##kw")), NamedTuple{(:normed, :weights), Tuple{Bool, Nothing}}, typeof(Plots._make_hist), Tuple{Array{Float64, 1}}, Symbol}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:formatter,), Tuple{Symbol}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:formatter,), Tuple{typeof(RecipesPipeline.datetimeformatter)}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:grid, :lims), Tuple{Bool, Tuple{Int64, Int64}}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:grid, :lims, :flip), Tuple{Bool, Tuple{Int64, Int64}, Bool}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:grid,), Tuple{Bool}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:gridlinewidth, :grid, :gridalpha, :gridstyle, :foreground_color_grid), Tuple{Int64, Bool, Float64, Symbol, ColorTypes.RGBA{Float64}}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:guide,), Tuple{String}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:lims, :flip, :ticks, :guide), Tuple{Tuple{Int64, Int64}, Bool, Base.StepRange{Int64, Int64}, String}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:lims,), Tuple{Tuple{Float64, Float64}}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:lims,), Tuple{Tuple{Int64, Float64}}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:lims,), Tuple{Tuple{Int64, Int64}}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:rotation,), Tuple{Int64}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:scale, :guide), Tuple{Symbol, String}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:ticks,), Tuple{Base.UnitRange{Int64}}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#attr!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#attr!##kw")), NamedTuple{(:ticks,), Tuple{Nothing}}, typeof(Plots.attr!), Plots.Axis}) - isdefined(Plots, Symbol("#contour##kw")) && precompile(Tuple{getfield(Plots, Symbol("#contour##kw")), NamedTuple{(:fill,), Tuple{Bool}}, typeof(Plots.contour), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Int}) - isdefined(Plots, Symbol("#default##kw")) && precompile(Tuple{getfield(Plots, Symbol("#default##kw")), NamedTuple{(:titlefont, :legendfontsize, :guidefont, :tickfont, :guide, :framestyle, :yminorgrid), Tuple{Tuple{Int64, String}, Int64, Tuple{Int64, Symbol}, Tuple{Int64, Symbol}, String, Symbol, Bool}}, typeof(Plots.default)}) - isdefined(Plots, Symbol("#gr_polyline##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_polyline##kw")), NamedTuple{(:arrowside, :arrowstyle), Tuple{Symbol, Symbol}}, typeof(Plots.gr_polyline), Array{Float64, 1}, Array{Float64, 1}}) - isdefined(Plots, Symbol("#gr_polyline##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_polyline##kw")), NamedTuple{(:arrowside, :arrowstyle), Tuple{Symbol, Symbol}}, typeof(Plots.gr_polyline), Array{Int64, 1}, Array{Float64, 1}}) - isdefined(Plots, Symbol("#gr_polyline##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_polyline##kw")), NamedTuple{(:arrowside, :arrowstyle), Tuple{Symbol, Symbol}}, typeof(Plots.gr_polyline), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}}) - isdefined(Plots, Symbol("#gr_polyline##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_polyline##kw")), NamedTuple{(:arrowside, :arrowstyle), Tuple{Symbol, Symbol}}, typeof(Plots.gr_polyline), Base.StepRange{Int64, Int64}, Array{Float64, 1}}) - isdefined(Plots, Symbol("#gr_polyline##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_polyline##kw")), NamedTuple{(:arrowside, :arrowstyle), Tuple{Symbol, Symbol}}, typeof(Plots.gr_polyline), Base.UnitRange{Int64}, Array{Float64, 1}}) - isdefined(Plots, Symbol("#gr_polyline##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_polyline##kw")), NamedTuple{(:arrowside, :arrowstyle), Tuple{Symbol, Symbol}}, typeof(Plots.gr_polyline), Base.UnitRange{Int64}, Base.UnitRange{Int64}}) - isdefined(Plots, Symbol("#gr_set_font##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_set_font##kw")), NamedTuple{(:halign, :valign, :rotation), Tuple{Symbol, Symbol, Int64}}, typeof(Plots.gr_set_font), Plots.Font}) - isdefined(Plots, Symbol("#gr_set_font##kw")) && precompile(Tuple{getfield(Plots, Symbol("#gr_set_font##kw")), NamedTuple{(:halign, :valign, :rotation, :color), Tuple{Symbol, Symbol, Int64, ColorTypes.RGBA{Float64}}}, typeof(Plots.gr_set_font), Plots.Font}) - isdefined(Plots, Symbol("#heatmap##kw")) && precompile(Tuple{getfield(Plots, Symbol("#heatmap##kw")), NamedTuple{(:aspect_ratio,), Tuple{Int64}}, typeof(Plots.heatmap), Array{String, 1}, Int}) - isdefined(Plots, Symbol("#histogram##kw")) && precompile(Tuple{getfield(Plots, Symbol("#histogram##kw")), NamedTuple{(:bins, :weights), Tuple{Symbol, Array{Int64, 1}}}, typeof(Plots.histogram), Array{Float64, 1}}) - isdefined(Plots, Symbol("#histogram2d##kw")) && precompile(Tuple{getfield(Plots, Symbol("#histogram2d##kw")), NamedTuple{(:nbins, :show_empty_bins, :normed, :aspect_ratio), Tuple{Tuple{Int64, Int64}, Bool, Bool, Int64}}, typeof(Plots.histogram2d), Array{Base.Complex{Float64}, 1}}) - isdefined(Plots, Symbol("#histogram2d##kw")) && precompile(Tuple{getfield(Plots, Symbol("#histogram2d##kw")), NamedTuple{(:nbins,), Tuple{Int64}}, typeof(Plots.histogram2d), Array{Float64, 1}, Array{Float64, 1}}) - isdefined(Plots, Symbol("#hline!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#hline!##kw")), NamedTuple{(:line,), Tuple{Tuple{Int64, Symbol, Float64, Array{Symbol, 2}}}}, typeof(Plots.hline!), Array{Float64, 2}}) - isdefined(Plots, Symbol("#lens!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#lens!##kw")), NamedTuple{(:inset,), Tuple{Tuple{Int64, Measures.BoundingBox{Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}, Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}}}}}, typeof(Plots.lens!), Array{Int64, 1}, Int}) - isdefined(Plots, Symbol("#pie##kw")) && precompile(Tuple{getfield(Plots, Symbol("#pie##kw")), NamedTuple{(:title, :l), Tuple{String, Float64}}, typeof(Plots.pie), Array{String, 1}, Int}) - isdefined(Plots, Symbol("#plotly_annotation_dict##kw")) && precompile(Tuple{getfield(Plots, Symbol("#plotly_annotation_dict##kw")), NamedTuple{(:xref, :yref), Tuple{String, String}}, typeof(Plots.plotly_annotation_dict), Float64, Float64, Plots.PlotText}) - isdefined(Plots, Symbol("#plotly_annotation_dict##kw")) && precompile(Tuple{getfield(Plots, Symbol("#plotly_annotation_dict##kw")), NamedTuple{(:xref, :yref), Tuple{String, String}}, typeof(Plots.plotly_annotation_dict), Float64, Float64, String}) - isdefined(Plots, Symbol("#plotly_annotation_dict##kw")) && precompile(Tuple{getfield(Plots, Symbol("#plotly_annotation_dict##kw")), NamedTuple{(:xref, :yref), Tuple{String, String}}, typeof(Plots.plotly_annotation_dict), Int64, Float64, Plots.PlotText}) - isdefined(Plots, Symbol("#plotly_annotation_dict##kw")) && precompile(Tuple{getfield(Plots, Symbol("#plotly_annotation_dict##kw")), NamedTuple{(:xref, :yref), Tuple{String, String}}, typeof(Plots.plotly_annotation_dict), Int64, Float64, String}) - isdefined(Plots, Symbol("#portfoliocomposition##kw")) && precompile(Tuple{getfield(Plots, Symbol("#portfoliocomposition##kw")), NamedTuple{(:labels,), Tuple{Array{String, 2}}}, typeof(Plots.portfoliocomposition), Array{Float64, 2}, Int}) - isdefined(Plots, Symbol("#scatter!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#scatter!##kw")), NamedTuple{(:marker, :series_annotations), Tuple{Tuple{Int64, Float64, Symbol}, Array{Any, 1}}}, typeof(Plots.scatter!), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Int}) - isdefined(Plots, Symbol("#scatter!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#scatter!##kw")), NamedTuple{(:markersize, :c), Tuple{Int64, Symbol}}, typeof(Plots.scatter!), Array{Float64, 1}}) - isdefined(Plots, Symbol("#scatter!##kw")) && precompile(Tuple{getfield(Plots, Symbol("#scatter!##kw")), NamedTuple{(:zcolor, :m, :ms, :lab), Tuple{Array{Float64, 1}, Tuple{Symbol, Float64, Plots.Stroke}, Array{Float64, 1}, String}}, typeof(Plots.scatter!), Array{Float64, 1}}) - isdefined(Plots, Symbol("#scatter##kw")) && precompile(Tuple{getfield(Plots, Symbol("#scatter##kw")), NamedTuple{(:framestyle, :title, :color, :layout, :label, :markerstrokewidth, :ticks), Tuple{Array{Symbol, 2}, Array{String, 2}, Base.ReshapedArray{Int64, 2, Base.UnitRange{Int64}, Tuple{}}, Int64, String, Int64, Base.UnitRange{Int64}}}, typeof(Plots.scatter), Array{Array{Float64, 1}, 1}, Array{Array{Float64, 1}, 1}}) - isdefined(Plots, Symbol("#scatter##kw")) && precompile(Tuple{getfield(Plots, Symbol("#scatter##kw")), NamedTuple{(:m, :lab, :bg, :xlim, :ylim), Tuple{Tuple{Int64, Symbol}, Array{String, 2}, Symbol, Tuple{Int64, Int64}, Tuple{Int64, Int64}}}, typeof(Plots.scatter), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Int}) - isdefined(Plots, Symbol("#scatter##kw")) && precompile(Tuple{getfield(Plots, Symbol("#scatter##kw")), NamedTuple{(:marker_z, :color, :legend), Tuple{typeof(Base.:+), Symbol, Bool}}, typeof(Plots.scatter), Array{Float64, 1}, Array{Float64, 1}}) - isdefined(Plots, Symbol("#standalone_html##kw")) && precompile(Tuple{getfield(Plots, Symbol("#standalone_html##kw")), NamedTuple{(:title,), Tuple{String}}, typeof(Plots.standalone_html), Plots.Plot{Plots.PlotlyBackend}}) - isdefined(Plots, Symbol("#test_examples##kw")) && precompile(Tuple{getfield(Plots, Symbol("#test_examples##kw")), NamedTuple{(:skip,), Tuple{Array{Int64, 1}}}, typeof(Plots.test_examples), Symbol}) - precompile(Tuple{typeof(Plots.__init__)}) - precompile(Tuple{typeof(Plots._add_errorbar_kw), Array{Base.Dict{Symbol, Any}, 1}, Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots._add_markershape), Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots._add_smooth_kw), Array{Base.Dict{Symbol, Any}, 1}, Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots._add_the_series), Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots._add_the_series), Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots._as_gradient), PlotUtils.ContinuousColorGradient}) - precompile(Tuple{typeof(Plots._backend_instance), Symbol}) - precompile(Tuple{typeof(Plots._bin_centers), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots._binbarlike_baseline), Float64, Symbol}) - precompile(Tuple{typeof(Plots._cbar_unique), Array{Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, 1}, String}) - precompile(Tuple{typeof(Plots._cbar_unique), Array{Int64, 1}, String}) - precompile(Tuple{typeof(Plots._cbar_unique), Array{Nothing, 1}, String}) - precompile(Tuple{typeof(Plots._cbar_unique), Array{PlotUtils.ContinuousColorGradient, 1}, String}) - precompile(Tuple{typeof(Plots._cbar_unique), Array{Symbol, 1}, String}) - precompile(Tuple{typeof(Plots._create_backend_figure), Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots._create_backend_figure), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots._cycle), Array{Any, 1}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Array{Float64, 1}, Array{Int64, 1}}) - precompile(Tuple{typeof(Plots._cycle), Array{Float64, 1}, Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots._cycle), Array{Float64, 1}, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots._cycle), Array{Float64, 1}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Array{Plots.Subplot{T} where T<:RecipesBase.AbstractBackend, 1}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Array{String, 1}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Base.OneTo{Int64}, Array{Int64, 1}}) - precompile(Tuple{typeof(Plots._cycle), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Base.StepRange{Int64, Int64}, Array{Int64, 1}}) - precompile(Tuple{typeof(Plots._cycle), ColorTypes.RGBA{Float64}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Float64, Int64}) - precompile(Tuple{typeof(Plots._cycle), Int64, Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots._cycle), Int64, Int64}) - precompile(Tuple{typeof(Plots._cycle), Nothing, Array{Int64, 1}}) - precompile(Tuple{typeof(Plots._cycle), Nothing, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots._cycle), Nothing, Int64}) - precompile(Tuple{typeof(Plots._cycle), PlotUtils.ColorPalette, Int64}) - precompile(Tuple{typeof(Plots._cycle), PlotUtils.ContinuousColorGradient, Int64}) - precompile(Tuple{typeof(Plots._cycle), Plots.Shape, Int64}) - precompile(Tuple{typeof(Plots._cycle), Plots.Subplot{Plots.GRBackend}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Plots.Subplot{Plots.PlotlyBackend}, Int64}) - precompile(Tuple{typeof(Plots._cycle), Symbol, Int64}) - precompile(Tuple{typeof(Plots._display), Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots._do_plot_show), Plots.Plot{Plots.GRBackend}, Bool}) - precompile(Tuple{typeof(Plots._do_plot_show), Plots.Plot{Plots.GRBackend}, Symbol}) - precompile(Tuple{typeof(Plots._do_plot_show), Plots.Plot{Plots.PlotlyBackend}, Bool}) - precompile(Tuple{typeof(Plots._expand_subplot_extrema), Plots.Subplot{Plots.GRBackend}, RecipesPipeline.DefaultsDict, Symbol}) - precompile(Tuple{typeof(Plots._expand_subplot_extrema), Plots.Subplot{Plots.PlotlyBackend}, RecipesPipeline.DefaultsDict, Symbol}) - precompile(Tuple{typeof(Plots._heatmap_edges), Array{Float64, 1}, Bool}) - precompile(Tuple{typeof(Plots._hist_edge), Tuple{Array{Float64, 1}}, Int64, Symbol}) - precompile(Tuple{typeof(Plots._hist_edges), Tuple{Array{Float64, 1}, Array{Float64, 1}}, Int64}) - precompile(Tuple{typeof(Plots._hist_edges), Tuple{Array{Float64, 1}, Array{Float64, 1}}, Tuple{Int64, Int64}}) - precompile(Tuple{typeof(Plots._hist_edges), Tuple{Array{Float64, 1}}, Symbol}) - precompile(Tuple{typeof(Plots._initialize_backend), Plots.PlotlyBackend}) - precompile(Tuple{typeof(Plots._override_seriestype_check), RecipesPipeline.DefaultsDict, Symbol}) - precompile(Tuple{typeof(Plots._pick_default_backend)}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Array{Float64, 1}, 1}, Array{Array{Float64, 1}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Array{T, 1} where T, 1}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Array{T, 1} where T, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Base.Complex{Float64}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Dates.DateTime, 1}, Base.UnitRange{Int64}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Float64, 1}, Array{Float64, 1}, Base.UnitRange{Int64}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Float64, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Function, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Function, 1}, Float64, Float64}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Function, 1}, Int64}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Int64, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Int64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Plots.OHLC{T} where T<:Real, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{String, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{String, 1}, Array{String, 1}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Tuple{Int64, Real}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Union{Base.Missing, Int64}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRange{Int64, Int64}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Base.UnitRange{Int64}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Plots.PortfolioComposition}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{Plots.Spy}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{typeof(Base.log), Int64}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Tuple{}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Array{Float64, 1}, 1}, Array{Array{Float64, 1}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Array{T, 1} where T, 1}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Array{T, 1} where T, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Base.Complex{Float64}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Dates.DateTime, 1}, Base.UnitRange{Int64}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Float64, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Function, 1}, Float64, Float64}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Int64, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Int64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Plots.OHLC{T} where T<:Real, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{String, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{String, 1}, Array{String, 1}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Tuple{Int64, Real}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Array{Union{Base.Missing, Int64}, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Base.StepRange{Int64, Int64}, Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Base.UnitRange{Int64}}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Plots.PortfolioComposition}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{Plots.Spy}}) - precompile(Tuple{typeof(Plots._plot!), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Tuple{}}) - precompile(Tuple{typeof(Plots._plot_setup), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Array{Base.Dict{Symbol, Any}, 1}}) - precompile(Tuple{typeof(Plots._plot_setup), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Array{Base.Dict{Symbol, Any}, 1}}) - precompile(Tuple{typeof(Plots._plotly_framestyle), Symbol}) - precompile(Tuple{typeof(Plots._plots_defaults)}) - precompile(Tuple{typeof(Plots._prepare_subplot), Plots.Plot{Plots.GRBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots._prepare_subplot), Plots.Plot{Plots.PlotlyBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots._preprocess_barlike), RecipesPipeline.DefaultsDict, Array{Float64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots._preprocess_barlike), RecipesPipeline.DefaultsDict, Array{Int64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots._preprocess_barlike), RecipesPipeline.DefaultsDict, Base.OneTo{Int64}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots._preprocess_binlike), RecipesPipeline.DefaultsDict, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots._preprocess_userrecipe), Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots._replace_linewidth), RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots._replace_markershape), Array{Symbol, 2}}) - precompile(Tuple{typeof(Plots._replace_markershape), Plots.Shape}) - precompile(Tuple{typeof(Plots._scale_adjusted_values), Type{Float64}, Array{Float64, 1}, Symbol}) - precompile(Tuple{typeof(Plots._series_index), RecipesPipeline.DefaultsDict, Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots._series_index), RecipesPipeline.DefaultsDict, Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots._show), Base.IOStream, Base.Multimedia.MIME{Symbol("image/png")}, Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots._slice_series_args!), Base.Dict{Symbol, Any}, Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}, Int64}) - precompile(Tuple{typeof(Plots._slice_series_args!), Base.Dict{Symbol, Any}, Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}, Int64}) - precompile(Tuple{typeof(Plots._slice_series_args!), RecipesPipeline.DefaultsDict, Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}, Int64}) - precompile(Tuple{typeof(Plots._slice_series_args!), RecipesPipeline.DefaultsDict, Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}, Int64}) - precompile(Tuple{typeof(Plots._subplot_setup), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Array{Base.Dict{Symbol, Any}, 1}}) - precompile(Tuple{typeof(Plots._subplot_setup), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Array{Base.Dict{Symbol, Any}, 1}}) - precompile(Tuple{typeof(Plots._transform_ticks), Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots._transform_ticks), Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots._transform_ticks), Nothing}) - precompile(Tuple{typeof(Plots._transform_ticks), Symbol}) - precompile(Tuple{typeof(Plots._update_axis), Plots.Axis, Base.Dict{Symbol, Any}, Symbol, Int64}) - precompile(Tuple{typeof(Plots._update_axis), Plots.Axis, RecipesPipeline.DefaultsDict, Symbol, Int64}) - precompile(Tuple{typeof(Plots._update_axis), Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Symbol, Int64}) - precompile(Tuple{typeof(Plots._update_axis), Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}, RecipesPipeline.DefaultsDict, Symbol, Int64}) - precompile(Tuple{typeof(Plots._update_axis), Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Symbol, Int64}) - precompile(Tuple{typeof(Plots._update_axis), Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}, RecipesPipeline.DefaultsDict, Symbol, Int64}) - precompile(Tuple{typeof(Plots._update_axis_colors), Plots.Axis}) - precompile(Tuple{typeof(Plots._update_axis_links), Plots.Plot{Plots.GRBackend}, Plots.Axis, Symbol}) - precompile(Tuple{typeof(Plots._update_axis_links), Plots.Plot{Plots.PlotlyBackend}, Plots.Axis, Symbol}) - precompile(Tuple{typeof(Plots._update_clims), Float64, Float64, Float64, Float64}) - precompile(Tuple{typeof(Plots._update_clims), Float64, Float64, Int64, Int64}) - precompile(Tuple{typeof(Plots._update_min_padding!), Plots.GridLayout}) - precompile(Tuple{typeof(Plots._update_min_padding!), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots._update_min_padding!), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots._update_plot_args), Plots.Plot{Plots.GRBackend}, Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots._update_plot_args), Plots.Plot{Plots.GRBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots._update_plot_args), Plots.Plot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots._update_plot_args), Plots.Plot{Plots.PlotlyBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots._update_series_attributes!), RecipesPipeline.DefaultsDict, Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots._update_series_attributes!), RecipesPipeline.DefaultsDict, Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots._update_subplot_args), Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}, Base.Dict{Symbol, Any}, Int64, Bool}) - precompile(Tuple{typeof(Plots._update_subplot_args), Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}, RecipesPipeline.DefaultsDict, Int64, Bool}) - precompile(Tuple{typeof(Plots._update_subplot_args), Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}, Base.Dict{Symbol, Any}, Int64, Bool}) - precompile(Tuple{typeof(Plots._update_subplot_args), Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}, RecipesPipeline.DefaultsDict, Int64, Bool}) - precompile(Tuple{typeof(Plots._update_subplot_colors), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots._update_subplot_colors), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots._update_subplot_periphery), Plots.Subplot{Plots.GRBackend}, Array{Any, 1}}) - precompile(Tuple{typeof(Plots._update_subplot_periphery), Plots.Subplot{Plots.PlotlyBackend}, Array{Any, 1}}) - precompile(Tuple{typeof(Plots.addExtension), String, String}) - precompile(Tuple{typeof(Plots.add_layout_pct!), Base.Dict{Symbol, Any}, Expr, Int64, Int64}) - precompile(Tuple{typeof(Plots.aliasesAndAutopick), RecipesPipeline.DefaultsDict, Symbol, Base.Dict{Symbol, Symbol}, Array{Symbol, 1}, Int64}) - precompile(Tuple{typeof(Plots.allAlphas), Int64}) - precompile(Tuple{typeof(Plots.allStyles), Int64}) - precompile(Tuple{typeof(Plots.allStyles), Symbol}) - precompile(Tuple{typeof(Plots.annotate!), Array{Tuple{Int64, Float64, Plots.PlotText}, 1}}) - precompile(Tuple{typeof(Plots.arrow), Int64}) - precompile(Tuple{typeof(Plots.attr), Plots.EmptyLayout, Symbol, Symbol}) - precompile(Tuple{typeof(Plots.attr), Plots.EmptyLayout, Symbol}) - precompile(Tuple{typeof(Plots.autopick_ignore_none_auto), Array{Symbol, 1}, Int64}) - precompile(Tuple{typeof(Plots.axis_drawing_info), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.axis_drawing_info_3d), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.axis_limits), Plots.Subplot{Plots.GRBackend}, Symbol, Bool, Bool}) - precompile(Tuple{typeof(Plots.axis_limits), Plots.Subplot{Plots.GRBackend}, Symbol}) - precompile(Tuple{typeof(Plots.axis_limits), Plots.Subplot{Plots.PlotlyBackend}, Symbol, Bool, Bool}) - precompile(Tuple{typeof(Plots.axis_limits), Plots.Subplot{Plots.PlotlyBackend}, Symbol}) - precompile(Tuple{typeof(Plots.backend), Plots.GRBackend}) - precompile(Tuple{typeof(Plots.backend), Plots.PlotlyBackend}) - precompile(Tuple{typeof(Plots.backend), Symbol}) - precompile(Tuple{typeof(Plots.backend)}) - precompile(Tuple{typeof(Plots.bar), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.bbox!), Plots.GridLayout, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.bbox!), Plots.Subplot{Plots.GRBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.bbox!), Plots.Subplot{Plots.PlotlyBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.bbox), Float64, Float64, Float64, Float64}) - precompile(Tuple{typeof(Plots.bbox), Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}) - precompile(Tuple{typeof(Plots.bbox_to_pcts), Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Bool}) - precompile(Tuple{typeof(Plots.bbox_to_pcts), Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}) - precompile(Tuple{typeof(Plots.bottom), Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.bottom), Measures.BoundingBox{Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}, Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}}}) - precompile(Tuple{typeof(Plots.bottompad), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.bottompad), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.build_layout), Plots.GridLayout, Int64, Array{Plots.Plot{T} where T<:RecipesBase.AbstractBackend, 1}}) - precompile(Tuple{typeof(Plots.build_layout), Plots.GridLayout, Int64}) - precompile(Tuple{typeof(Plots.build_layout), RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.calc_num_subplots), Plots.EmptyLayout}) - precompile(Tuple{typeof(Plots.calc_num_subplots), Plots.GridLayout}) - precompile(Tuple{typeof(Plots.color_or_nothing!), RecipesPipeline.DefaultsDict, Symbol}) - precompile(Tuple{typeof(Plots.colorbar_style), Plots.Series}) - precompile(Tuple{typeof(Plots.compute_gridsize), Int64, Int64, Int64}) - precompile(Tuple{typeof(Plots.concatenate_fillrange), Base.UnitRange{Int64}, Tuple{Array{Float64, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots.contour), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Int}) - precompile(Tuple{typeof(Plots.contour_levels), Plots.Series, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.convertLegendValue), Bool}) - precompile(Tuple{typeof(Plots.convertLegendValue), Symbol}) - precompile(Tuple{typeof(Plots.convert_sci_unicode), String}) - precompile(Tuple{typeof(Plots.convert_to_polar), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}, Tuple{Int64, Float64}}) - precompile(Tuple{typeof(Plots.copy_series!), Plots.Series, Symbol}) - precompile(Tuple{typeof(Plots.create_grid), Expr}) - precompile(Tuple{typeof(Plots.create_grid), Symbol}) - precompile(Tuple{typeof(Plots.create_grid_curly), Expr}) - precompile(Tuple{typeof(Plots.create_grid_vcat), Expr}) - precompile(Tuple{typeof(Plots.default), Symbol, Bool}) - precompile(Tuple{typeof(Plots.default), Symbol, Int64}) - precompile(Tuple{typeof(Plots.default), Symbol, String}) - precompile(Tuple{typeof(Plots.default), Symbol, Symbol}) - precompile(Tuple{typeof(Plots.default), Symbol}) - precompile(Tuple{typeof(Plots.default_should_widen), Plots.Axis}) - precompile(Tuple{typeof(Plots.discrete_value!), Plots.Axis, Array{String, 1}}) - precompile(Tuple{typeof(Plots.discrete_value!), Plots.Axis, Array{Union{Base.Missing, Float64}, 1}}) - precompile(Tuple{typeof(Plots.discrete_value!), Plots.Axis, Base.Missing}) - precompile(Tuple{typeof(Plots.discrete_value!), Plots.Axis, Char}) - precompile(Tuple{typeof(Plots.discrete_value!), Plots.Axis, String}) - precompile(Tuple{typeof(Plots.ensure_gradient!), RecipesPipeline.DefaultsDict, Symbol, Symbol}) - precompile(Tuple{typeof(Plots.error_coords), Array{Float64, 1}, Array{Float64, 1}, Array{Float64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.error_coords), Array{Float64, 1}, Array{Float64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.error_style!), RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.error_zipit), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Array{Int64, 1}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Base.OneTo{Int64}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Float64}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Int64}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, RecipesPipeline.Surface{Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Axis, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Subplot{Plots.GRBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.expand_extrema!), Plots.Subplot{Plots.PlotlyBackend}, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.extend_by_data!), Array{Float64, 1}, Float64}) - precompile(Tuple{typeof(Plots.extend_series_data!), Plots.Series, Float64, Symbol}) - precompile(Tuple{typeof(Plots.fakedata), Int64, Int64}) - precompile(Tuple{typeof(Plots.fg_color), RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.font), Int64, Int}) - precompile(Tuple{typeof(Plots.font), String, Int}) - precompile(Tuple{typeof(Plots.font), Symbol, Int}) - precompile(Tuple{typeof(Plots.frame), Plots.Animation, Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.frame), Plots.Animation}) - precompile(Tuple{typeof(Plots.get_aspect_ratio), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.get_aspect_ratio), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.get_axis), Plots.Subplot{Plots.GRBackend}, Symbol}) - precompile(Tuple{typeof(Plots.get_axis), Plots.Subplot{Plots.PlotlyBackend}, Symbol}) - precompile(Tuple{typeof(Plots.get_clims), Plots.Series}) - precompile(Tuple{typeof(Plots.get_clims), Plots.Subplot{Plots.GRBackend}, Plots.Series}) - precompile(Tuple{typeof(Plots.get_clims), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.get_clims), Plots.Subplot{Plots.PlotlyBackend}, Plots.Series}) - precompile(Tuple{typeof(Plots.get_clims), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.get_colorgradient), Plots.Series}) - precompile(Tuple{typeof(Plots.get_fillalpha), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.get_fillalpha), Plots.Series}) - precompile(Tuple{typeof(Plots.get_fillcolor), Plots.Series, Float64, Float64, Int64}) - precompile(Tuple{typeof(Plots.get_fillcolor), Plots.Series, Tuple{Float64, Float64}, Int64}) - precompile(Tuple{typeof(Plots.get_fillcolor), Plots.Series, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.get_gradient), PlotUtils.ContinuousColorGradient}) - precompile(Tuple{typeof(Plots.get_linealpha), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.get_linealpha), Plots.Series}) - precompile(Tuple{typeof(Plots.get_linecolor), Plots.Series, Float64, Float64, Int64}) - precompile(Tuple{typeof(Plots.get_linecolor), Plots.Series, Tuple{Float64, Float64}, Int64}) - precompile(Tuple{typeof(Plots.get_linecolor), Plots.Series, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.get_linestyle), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.get_linestyle), Plots.Series}) - precompile(Tuple{typeof(Plots.get_linewidth), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.get_linewidth), Plots.Series}) - precompile(Tuple{typeof(Plots.get_markeralpha), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.get_markercolor), Plots.Series, Float64, Float64, Int64}) - precompile(Tuple{typeof(Plots.get_markerstrokealpha), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.get_markerstrokecolor), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.get_minor_ticks), Plots.Subplot{Plots.GRBackend}, Plots.Axis, Tuple{Array{Float64, 1}, Array{Any, 1}}}) - precompile(Tuple{typeof(Plots.get_minor_ticks), Plots.Subplot{Plots.GRBackend}, Plots.Axis, Tuple{Array{Float64, 1}, Array{String, 1}}}) - precompile(Tuple{typeof(Plots.get_minor_ticks), Plots.Subplot{Plots.GRBackend}, Plots.Axis, Tuple{Array{Int64, 1}, Array{String, 1}}}) - precompile(Tuple{typeof(Plots.get_plotly_marker), Symbol, String}) - precompile(Tuple{typeof(Plots.get_series_color), ColorTypes.RGBA{Float64}, Plots.Subplot{Plots.GRBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_series_color), ColorTypes.RGBA{Float64}, Plots.Subplot{Plots.PlotlyBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_series_color), Int64, Plots.Subplot{Plots.GRBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_series_color), Int64, Plots.Subplot{Plots.PlotlyBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_series_color), PlotUtils.ContinuousColorGradient, Plots.Subplot{Plots.GRBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_series_color), PlotUtils.ContinuousColorGradient, Plots.Subplot{Plots.PlotlyBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_series_color), Symbol, Plots.Subplot{Plots.GRBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_series_color), Symbol, Plots.Subplot{Plots.PlotlyBackend}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.get_subplot), Plots.Plot{Plots.GRBackend}, Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.get_subplot), Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.get_ticks), Plots.Subplot{Plots.GRBackend}, Plots.Axis}) - precompile(Tuple{typeof(Plots.get_ticks), Plots.Subplot{Plots.PlotlyBackend}, Plots.Axis}) - precompile(Tuple{typeof(Plots.get_xy), Array{Plots.OHLC{T} where T<:Real, 1}, Base.OneTo{Int64}}) - precompile(Tuple{typeof(Plots.get_xy), Plots.OHLC{Float64}, Int64, Float64}) - precompile(Tuple{typeof(Plots.gr_axis_height), Plots.Subplot{Plots.GRBackend}, Plots.Axis}) - precompile(Tuple{typeof(Plots.gr_axis_width), Plots.Subplot{Plots.GRBackend}, Plots.Axis}) - precompile(Tuple{typeof(Plots.gr_color), ColorTypes.RGBA{Float64}, Type{ColorTypes.RGB{Float64}}}) - precompile(Tuple{typeof(Plots.gr_colorbar_colors), Plots.Series, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_contour_levels), Plots.Series, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_display), Plots.Plot{Plots.GRBackend}, String}) - precompile(Tuple{typeof(Plots.gr_display), Plots.Subplot{Plots.GRBackend}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.gr_draw_colorbar), Plots.GRColorbar, Plots.Subplot{Plots.GRBackend}, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_draw_marker), Plots.Series, Float64, Float64, Tuple{Float64, Float64}, Int64, Float64, Float64, Plots.Shape}) - precompile(Tuple{typeof(Plots.gr_draw_marker), Plots.Series, Float64, Float64, Tuple{Float64, Float64}, Int64, Float64, Float64, Symbol}) - precompile(Tuple{typeof(Plots.gr_draw_marker), Plots.Series, Int64, Float64, Tuple{Float64, Float64}, Int64, Float64, Float64, Plots.Shape}) - precompile(Tuple{typeof(Plots.gr_draw_marker), Plots.Series, Int64, Float64, Tuple{Float64, Float64}, Int64, Float64, Float64, Symbol}) - precompile(Tuple{typeof(Plots.gr_draw_marker), Plots.Series, Int64, Int64, Tuple{Float64, Float64}, Int64, Float64, Float64, Plots.Shape}) - precompile(Tuple{typeof(Plots.gr_draw_marker), Plots.Series, Int64, Int64, Tuple{Float64, Float64}, Int64, Float64, Float64, Symbol}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Array{Float64, 1}, Array{Float64, 1}, Tuple{Float64, Float64}, Int64, Int64}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Array{Float64, 1}, Array{Float64, 1}, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Array{Int64, 1}, Array{Float64, 1}, Tuple{Float64, Float64}, Int64, Int64}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Array{Int64, 1}, Array{Float64, 1}, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Array{Int64, 1}, Array{Int64, 1}, Tuple{Float64, Float64}, Int64, Int64}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Array{Int64, 1}, Array{Int64, 1}, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Base.OneTo{Int64}, Array{Float64, 1}, Tuple{Float64, Float64}, Array{Float64, 1}, Int64}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Base.OneTo{Int64}, Array{Float64, 1}, Tuple{Float64, Float64}, Int64, Int64}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Base.OneTo{Int64}, Array{Float64, 1}, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}, Tuple{Float64, Float64}, Int64, Int64}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.gr_draw_markers), Plots.Series, Float64, Float64, Tuple{Float64, Float64}, Float64, Float64}) - precompile(Tuple{typeof(Plots.gr_fill_viewport), Array{Float64, 1}, ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_get_ticks_size), Tuple{Array{Float64, 1}, Array{Any, 1}}, Int64}) - precompile(Tuple{typeof(Plots.gr_get_ticks_size), Tuple{Array{Float64, 1}, Array{String, 1}}, Int64}) - precompile(Tuple{typeof(Plots.gr_get_ticks_size), Tuple{Array{Int64, 1}, Array{String, 1}}, Int64}) - precompile(Tuple{typeof(Plots.gr_getcolorind), ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_inqtext), Int64, Int64, String}) - precompile(Tuple{typeof(Plots.gr_legend_pos), Plots.Subplot{Plots.GRBackend}, Float64, Float64}) - precompile(Tuple{typeof(Plots.gr_linetype), Symbol}) - precompile(Tuple{typeof(Plots.gr_polaraxes), Int64, Float64, Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.gr_polyline), Array{Float64, 1}, Array{Float64, 1}, typeof(identity)}) - precompile(Tuple{typeof(Plots.gr_polyline), Array{Float64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.gr_set_bordercolor), ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_set_fill), ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_set_fillcolor), ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_set_font), Plots.Font}) - precompile(Tuple{typeof(Plots.gr_set_gradient), PlotUtils.ContinuousColorGradient}) - precompile(Tuple{typeof(Plots.gr_set_gradient), Plots.Series}) - precompile(Tuple{typeof(Plots.gr_set_line), Float64, Symbol, ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_set_line), Int64, Symbol, ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_set_line), Int64, Symbol, PlotUtils.ContinuousColorGradient}) - precompile(Tuple{typeof(Plots.gr_set_linecolor), PlotUtils.ContinuousColorGradient}) - precompile(Tuple{typeof(Plots.gr_set_markercolor), ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_set_textcolor), ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.gr_set_transparency), ColorTypes.RGBA{Float64}, Float64}) - precompile(Tuple{typeof(Plots.gr_set_transparency), ColorTypes.RGBA{Float64}, Int64}) - precompile(Tuple{typeof(Plots.gr_set_transparency), ColorTypes.RGBA{Float64}, Nothing}) - precompile(Tuple{typeof(Plots.gr_set_transparency), Float64}) - precompile(Tuple{typeof(Plots.gr_set_viewport_polar)}) - precompile(Tuple{typeof(Plots.gr_set_xticks_font), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.gr_set_yticks_font), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.gr_text), Float64, Float64, String}) - precompile(Tuple{typeof(Plots.gr_text_size), String, Int64}) - precompile(Tuple{typeof(Plots.gr_text_size), String}) - precompile(Tuple{typeof(Plots.gr_tick_label), Plots.Axis, String}) - precompile(Tuple{typeof(Plots.gr_update_colorbar!), Plots.GRColorbar, Plots.Series}) - precompile(Tuple{typeof(Plots.gr_viewport_from_bbox), Plots.Subplot{Plots.GRBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.gr_w3tondc), Float64, Float64, Float64}) - precompile(Tuple{typeof(Plots.gui), Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.gui), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.guide_padding), Plots.Axis}) - precompile(Tuple{typeof(Plots.guidefont), Plots.Axis}) - precompile(Tuple{typeof(Plots.handleColors!), Base.Dict{Symbol, Any}, Array{Symbol, 2}, Symbol}) - precompile(Tuple{typeof(Plots.handleColors!), Base.Dict{Symbol, Any}, ColorTypes.RGBA{Float64}, Symbol}) - precompile(Tuple{typeof(Plots.handleColors!), Base.Dict{Symbol, Any}, Plots.Shape, Symbol}) - precompile(Tuple{typeof(Plots.handleColors!), Base.Dict{Symbol, Any}, Symbol, Symbol}) - precompile(Tuple{typeof(Plots.has_attribute_segments), Plots.Series}) - precompile(Tuple{typeof(Plots.has_black_border_for_default), Symbol}) - precompile(Tuple{typeof(Plots.hascolorbar), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.hascolorbar), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.hasgrid), Symbol, Symbol}) - precompile(Tuple{typeof(Plots.heatmap), Array{Dates.DateTime, 1}, Int}) - precompile(Tuple{typeof(Plots.heatmap_edges), Array{Float64, 1}, Symbol, Array{Float64, 1}, Symbol, Tuple{Int64, Int64}}) - precompile(Tuple{typeof(Plots.heatmap_edges), Array{Float64, 1}, Symbol, Base.UnitRange{Int64}, Symbol, Tuple{Int64, Int64}}) - precompile(Tuple{typeof(Plots.heatmap_edges), Array{Float64, 1}, Symbol, Bool}) - precompile(Tuple{typeof(Plots.heatmap_edges), Array{Float64, 1}, Symbol}) - precompile(Tuple{typeof(Plots.heatmap_edges), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Symbol, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Symbol, Tuple{Int64, Int64}}) - precompile(Tuple{typeof(Plots.heatmap_edges), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Symbol, Bool}) - precompile(Tuple{typeof(Plots.heatmap_edges), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Symbol}) - precompile(Tuple{typeof(Plots.heatmap_edges), Base.UnitRange{Int64}, Symbol, Bool}) - precompile(Tuple{typeof(Plots.heatmap_edges), Base.UnitRange{Int64}, Symbol}) - precompile(Tuple{typeof(Plots.ignorenan_extrema), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.ignorenan_extrema), Array{Float64, 2}}) - precompile(Tuple{typeof(Plots.ignorenan_extrema), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}) - precompile(Tuple{typeof(Plots.ignorenan_extrema), Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots.ignorenan_extrema), Plots.Axis}) - precompile(Tuple{typeof(Plots.ignorenan_maximum), Base.OneTo{Int64}}) - precompile(Tuple{typeof(Plots.ignorenan_minimum), Array{Int64, 1}}) - precompile(Tuple{typeof(Plots.ignorenan_minimum), Base.OneTo{Int64}}) - precompile(Tuple{typeof(Plots.inline), Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.inline), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.intersection_point), Float64, Float64, Float64, Float64, Float64, Float64}) - precompile(Tuple{typeof(Plots.is_2tuple), Int64}) - precompile(Tuple{typeof(Plots.is_2tuple), Symbol}) - precompile(Tuple{typeof(Plots.is_2tuple), Tuple{Array{Float64, 1}, Array{Float64, 1}}}) - precompile(Tuple{typeof(Plots.is_2tuple), Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.is_2tuple), Tuple{Int64, Float64}}) - precompile(Tuple{typeof(Plots.is_2tuple), Tuple{Int64, Int64}}) - precompile(Tuple{typeof(Plots.is_2tuple), Tuple{Int64, Measures.BoundingBox{Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}, Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}}}}) - precompile(Tuple{typeof(Plots.is_axis_attr), Symbol}) - precompile(Tuple{typeof(Plots.is_default_attribute), Symbol}) - precompile(Tuple{typeof(Plots.is_marker_supported), Plots.GRBackend, Symbol}) - precompile(Tuple{typeof(Plots.is_marker_supported), Plots.PlotlyBackend, Symbol}) - precompile(Tuple{typeof(Plots.is_marker_supported), Plots.Shape}) - precompile(Tuple{typeof(Plots.is_marker_supported), Plots.Stroke}) - precompile(Tuple{typeof(Plots.is_marker_supported), Symbol}) - precompile(Tuple{typeof(Plots.is_seriestype_supported), Plots.GRBackend, Symbol}) - precompile(Tuple{typeof(Plots.is_seriestype_supported), Plots.PlotlyBackend, Symbol}) - precompile(Tuple{typeof(Plots.is_seriestype_supported), Symbol}) - precompile(Tuple{typeof(Plots.is_uniformly_spaced), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.iscontour), Plots.Series}) - precompile(Tuple{typeof(Plots.isijulia)}) - precompile(Tuple{typeof(Plots.ispolar), Plots.Series}) - precompile(Tuple{typeof(Plots.ispolar), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.ispolar), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.isvertical), Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots.isvertical), RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.iter_segments), Array{Float64, 1}, Array{Float64, 1}, Int}) - precompile(Tuple{typeof(Plots.iter_segments), Array{Float64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.iter_segments), Array{Int64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.iter_segments), Base.OneTo{Int64}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.iter_segments), Base.OneTo{Int64}, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots.iter_segments), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.iter_segments), Base.StepRange{Int64, Int64}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.iter_segments), Base.UnitRange{Int64}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.iter_segments), Plots.Series}) - precompile(Tuple{typeof(Plots.labelfunc), Symbol, Plots.GRBackend}) - precompile(Tuple{typeof(Plots.labelfunc), Symbol, Plots.PlotlyBackend}) - precompile(Tuple{typeof(Plots.layout_args), Base.Dict{Symbol, Any}, Int64}) - precompile(Tuple{typeof(Plots.layout_args), Int64, Int64}) - precompile(Tuple{typeof(Plots.layout_args), Int64, Plots.GridLayout}) - precompile(Tuple{typeof(Plots.layout_args), Int64, Tuple{Int64, Int64}}) - precompile(Tuple{typeof(Plots.layout_args), Int64}) - precompile(Tuple{typeof(Plots.layout_args), Plots.GridLayout}) - precompile(Tuple{typeof(Plots.layout_args), RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.left), Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.left), Measures.BoundingBox{Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}, Tuple{Measures.Length{:w, Float64}, Measures.Length{:h, Float64}}}}) - precompile(Tuple{typeof(Plots.leftpad), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.leftpad), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.legendfont), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.legendfont), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.legendtitlefont), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.link_axes!), Array{RecipesBase.AbstractLayout, 1}, Symbol}) - precompile(Tuple{typeof(Plots.link_axes!), Plots.Axis, Plots.Axis}) - precompile(Tuple{typeof(Plots.link_axes!), Plots.Axis}) - precompile(Tuple{typeof(Plots.link_axes!), Plots.GridLayout, Symbol}) - precompile(Tuple{typeof(Plots.link_axes!), Plots.Subplot{Plots.GRBackend}, Symbol}) - precompile(Tuple{typeof(Plots.link_axes!), Plots.Subplot{Plots.PlotlyBackend}, Symbol}) - precompile(Tuple{typeof(Plots.link_subplots), Array{RecipesBase.AbstractLayout, 1}, Symbol}) - precompile(Tuple{typeof(Plots.locate_annotation), Plots.Subplot{Plots.GRBackend}, Int64, Float64, Plots.PlotText}) - precompile(Tuple{typeof(Plots.locate_annotation), Plots.Subplot{Plots.PlotlyBackend}, Int64, Float64, Plots.PlotText}) - precompile(Tuple{typeof(Plots.make_fillrange_from_ribbon), Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots.make_fillrange_side), Base.UnitRange{Int64}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.make_fillrange_side), Base.UnitRange{Int64}, Base.LinRange{Float64}}) - precompile(Tuple{typeof(Plots.make_fillrange_side), Base.UnitRange{Int64}, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}) - precompile(Tuple{typeof(Plots.make_fillrange_side), Base.UnitRange{Int64}, Int64}) - precompile(Tuple{typeof(Plots.make_steps), Array{Float64, 1}, Symbol}) - precompile(Tuple{typeof(Plots.make_steps), Array{Int64, 1}, Symbol}) - precompile(Tuple{typeof(Plots.make_steps), Base.OneTo{Int64}, Symbol}) - precompile(Tuple{typeof(Plots.make_steps), Nothing, Symbol}) - precompile(Tuple{typeof(Plots.nanappend!), Array{Float64, 1}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.ohlc), Array{Plots.OHLC{T} where T<:Real, 1}}) - precompile(Tuple{typeof(Plots.optimal_ticks_and_labels), Plots.Subplot{Plots.GRBackend}, Plots.Axis, Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots.optimal_ticks_and_labels), Plots.Subplot{Plots.GRBackend}, Plots.Axis, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots.optimal_ticks_and_labels), Plots.Subplot{Plots.GRBackend}, Plots.Axis, Nothing}) - precompile(Tuple{typeof(Plots.optimal_ticks_and_labels), Plots.Subplot{Plots.PlotlyBackend}, Plots.Axis, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots.optimal_ticks_and_labels), Plots.Subplot{Plots.PlotlyBackend}, Plots.Axis, Nothing}) - precompile(Tuple{typeof(Plots.parse_axis_kw), Symbol}) - precompile(Tuple{typeof(Plots.partialcircle), Float64, Float64, Int64, Int64}) - precompile(Tuple{typeof(Plots.partialcircle), Int64, Float64, Int64, Int64}) - precompile(Tuple{typeof(Plots.plotarea!), Plots.GridLayout, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.plotarea!), Plots.Subplot{Plots.GRBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.plotarea!), Plots.Subplot{Plots.PlotlyBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.plotarea), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.plotarea), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.plotly_annotation_dict), Float64, Float64, Plots.PlotText}) - precompile(Tuple{typeof(Plots.plotly_apply_aspect_ratio), Plots.Subplot{Plots.PlotlyBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.plotly_axis), Plots.Plot{Plots.PlotlyBackend}, Plots.Axis, Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.plotly_colorbar_hack), Plots.Series, Base.Dict{Symbol, Any}, Symbol}) - precompile(Tuple{typeof(Plots.plotly_colorscale), PlotUtils.CategoricalColorGradient, Int64}) - precompile(Tuple{typeof(Plots.plotly_colorscale), PlotUtils.ContinuousColorGradient, Int64}) - precompile(Tuple{typeof(Plots.plotly_colorscale), PlotUtils.ContinuousColorGradient, Nothing}) - precompile(Tuple{typeof(Plots.plotly_data), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.plotly_data), Array{Int64, 1}}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, Array{Int64, 1}}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, Base.OneTo{Int64}}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, Nothing}) - precompile(Tuple{typeof(Plots.plotly_data), Plots.Series, Symbol, RecipesPipeline.Surface{Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots.plotly_domain), Plots.Subplot{Plots.PlotlyBackend}, Symbol}) - precompile(Tuple{typeof(Plots.plotly_font), Plots.Font, ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.plotly_font), Plots.Font}) - precompile(Tuple{typeof(Plots.plotly_hover!), Base.Dict{Symbol, Any}, Array{Nothing, 1}}) - precompile(Tuple{typeof(Plots.plotly_hover!), Base.Dict{Symbol, Any}, Nothing}) - precompile(Tuple{typeof(Plots.plotly_html_body), Plots.Plot{Plots.PlotlyBackend}, Nothing}) - precompile(Tuple{typeof(Plots.plotly_html_head), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.plotly_layout), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.plotly_legend_pos), Symbol}) - precompile(Tuple{typeof(Plots.plotly_link_indicies), Plots.Plot{Plots.PlotlyBackend}, Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, Array{Float64, 2}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, Array{Int64, 1}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, Base.OneTo{Int64}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, Base.StepRange{Int64, Int64}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, Base.UnitRange{Int64}}) - precompile(Tuple{typeof(Plots.plotly_native_data), Plots.Axis, RecipesPipeline.Surface{Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots.plotly_polar!), Base.Dict{Symbol, Any}, Plots.Series}) - precompile(Tuple{typeof(Plots.plotly_polaraxis), Plots.Subplot{Plots.PlotlyBackend}, Plots.Axis}) - precompile(Tuple{typeof(Plots.plotly_series), Plots.Plot{Plots.PlotlyBackend}, Plots.Series}) - precompile(Tuple{typeof(Plots.plotly_series), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Array{Float64, 1}, Array{Float64, 1}, Array{Float64, 1}, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Array{Float64, 1}, Array{Float64, 1}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Array{Int64, 1}, Array{Float64, 1}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Array{Int64, 1}, Array{Int64, 1}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Base.OneTo{Int64}, Array{Float64, 1}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Base.OneTo{Int64}, Base.UnitRange{Int64}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}, Array{Float64, 1}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Base.StepRange{Int64, Int64}, Array{Float64, 1}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Base.UnitRange{Int64}, Array{Float64, 1}, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_segments), Plots.Series, Base.Dict{Symbol, Any}, Nothing, Nothing, Nothing, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_series_shapes), Plots.Plot{Plots.PlotlyBackend}, Plots.Series, Tuple{Float64, Float64}}) - precompile(Tuple{typeof(Plots.plotly_surface_data), Plots.Series, RecipesPipeline.Surface{Array{Float64, 2}}}) - precompile(Tuple{typeof(Plots.png), Plots.Plot{Plots.GRBackend}, String}) - precompile(Tuple{typeof(Plots.prepare_output), Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.prepare_output), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.processFillArg), Base.Dict{Symbol, Any}, Bool}) - precompile(Tuple{typeof(Plots.processFillArg), Base.Dict{Symbol, Any}, Int64}) - precompile(Tuple{typeof(Plots.processFillArg), Base.Dict{Symbol, Any}, Symbol}) - precompile(Tuple{typeof(Plots.processFontArg!), Base.Dict{Symbol, Any}, Symbol, Int64}) - precompile(Tuple{typeof(Plots.processFontArg!), Base.Dict{Symbol, Any}, Symbol, String}) - precompile(Tuple{typeof(Plots.processFontArg!), Base.Dict{Symbol, Any}, Symbol, Symbol}) - precompile(Tuple{typeof(Plots.processGridArg!), Base.Dict{Symbol, Any}, Bool, Symbol}) - precompile(Tuple{typeof(Plots.processGridArg!), Base.Dict{Symbol, Any}, Float64, Symbol}) - precompile(Tuple{typeof(Plots.processGridArg!), Base.Dict{Symbol, Any}, Int64, Symbol}) - precompile(Tuple{typeof(Plots.processGridArg!), Base.Dict{Symbol, Any}, Symbol, Symbol}) - precompile(Tuple{typeof(Plots.processGridArg!), RecipesPipeline.DefaultsDict, Bool, Symbol}) - precompile(Tuple{typeof(Plots.processLineArg), Base.Dict{Symbol, Any}, Array{Symbol, 2}}) - precompile(Tuple{typeof(Plots.processLineArg), Base.Dict{Symbol, Any}, Float64}) - precompile(Tuple{typeof(Plots.processLineArg), Base.Dict{Symbol, Any}, Int64}) - precompile(Tuple{typeof(Plots.processLineArg), Base.Dict{Symbol, Any}, Symbol}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, Array{Symbol, 2}}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, Bool}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, ColorTypes.RGBA{Float64}}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, Float64}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, Int64}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, Plots.Shape}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, Plots.Stroke}) - precompile(Tuple{typeof(Plots.processMarkerArg), Base.Dict{Symbol, Any}, Symbol}) - precompile(Tuple{typeof(Plots.processMinorGridArg!), Base.Dict{Symbol, Any}, Bool, Symbol}) - precompile(Tuple{typeof(Plots.process_annotation), Plots.Subplot{Plots.GRBackend}, Int64, Float64, Plots.PlotText, Plots.Font}) - precompile(Tuple{typeof(Plots.process_annotation), Plots.Subplot{Plots.GRBackend}, Int64, Float64, Plots.PlotText}) - precompile(Tuple{typeof(Plots.process_annotation), Plots.Subplot{Plots.PlotlyBackend}, Int64, Float64, Plots.PlotText, Plots.Font}) - precompile(Tuple{typeof(Plots.process_annotation), Plots.Subplot{Plots.PlotlyBackend}, Int64, Float64, Plots.PlotText}) - precompile(Tuple{typeof(Plots.process_axis_arg!), Base.Dict{Symbol, Any}, Base.StepRange{Int64, Int64}, Symbol}) - precompile(Tuple{typeof(Plots.process_axis_arg!), Base.Dict{Symbol, Any}, String, Symbol}) - precompile(Tuple{typeof(Plots.process_axis_arg!), Base.Dict{Symbol, Any}, Symbol, Symbol}) - precompile(Tuple{typeof(Plots.process_axis_arg!), Base.Dict{Symbol, Any}, Tuple{Int64, Int64}, Symbol}) - precompile(Tuple{typeof(Plots.recompute_lengths), Array{Measures.Measure, 1}}) - precompile(Tuple{typeof(Plots.replaceAlias!), Base.Dict{Symbol, Any}, Symbol, Base.Dict{Symbol, Symbol}}) - precompile(Tuple{typeof(Plots.replaceAlias!), RecipesPipeline.DefaultsDict, Symbol, Base.Dict{Symbol, Symbol}}) - precompile(Tuple{typeof(Plots.replaceAliases!), Base.Dict{Symbol, Any}, Base.Dict{Symbol, Symbol}}) - precompile(Tuple{typeof(Plots.replaceAliases!), RecipesPipeline.DefaultsDict, Base.Dict{Symbol, Symbol}}) - precompile(Tuple{typeof(Plots.reset_axis_defaults_byletter!)}) - precompile(Tuple{typeof(Plots.right), Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.rightpad), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.rightpad), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.rowsize), Expr}) - precompile(Tuple{typeof(Plots.rowsize), Symbol}) - precompile(Tuple{typeof(Plots.series_annotations), Array{Any, 1}}) - precompile(Tuple{typeof(Plots.series_annotations), Plots.SeriesAnnotations}) - precompile(Tuple{typeof(Plots.series_annotations_shapes!), Plots.Series, Symbol}) - precompile(Tuple{typeof(Plots.series_idx), Array{Base.Dict{Symbol, Any}, 1}, Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots.shape_data), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.should_add_to_legend), Plots.Series}) - precompile(Tuple{typeof(Plots.showaxis), Symbol, Symbol}) - precompile(Tuple{typeof(Plots.shrink_by), Float64, Float64, Float64}) - precompile(Tuple{typeof(Plots.slice_arg!), Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Int64, Bool}) - precompile(Tuple{typeof(Plots.slice_arg!), Base.Dict{Symbol, Any}, RecipesPipeline.DefaultsDict, Symbol, Int64, Bool}) - precompile(Tuple{typeof(Plots.slice_arg!), RecipesPipeline.DefaultsDict, RecipesPipeline.DefaultsDict, Symbol, Int64, Bool}) - precompile(Tuple{typeof(Plots.slice_arg), Array{ColorTypes.RGBA{Float64}, 2}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Array{Float64, 2}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Array{Measures.Length{:mm, Float64}, 2}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Array{PlotUtils.ContinuousColorGradient, 2}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Array{String, 2}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Array{Symbol, 2}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Base.ReshapedArray{Int64, 2, Base.UnitRange{Int64}, Tuple{}}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Base.StepRange{Int64, Int64}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Base.UnitRange{Int64}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Bool, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), ColorTypes.RGBA{Float64}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Float64, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Int64, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Nothing, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), String, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Symbol, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Tuple{Float64, Float64}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Tuple{Int64, Float64}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), Tuple{Int64, Int64}, Int64}) - precompile(Tuple{typeof(Plots.slice_arg), typeof(identity), Int64}) - precompile(Tuple{typeof(Plots.straightline_data), Plots.Series, Int64}) - precompile(Tuple{typeof(Plots.straightline_data), Tuple{Int64, Int64}, Tuple{Float64, Float64}, Array{Float64, 1}, Array{Float64, 1}, Int64}) - precompile(Tuple{typeof(Plots.stroke), Int64, Int}) - precompile(Tuple{typeof(Plots.supported_markers), Plots.GRBackend}) - precompile(Tuple{typeof(Plots.supported_markers), Plots.PlotlyBackend}) - precompile(Tuple{typeof(Plots.supported_markers)}) - precompile(Tuple{typeof(Plots.supported_styles), Plots.GRBackend}) - precompile(Tuple{typeof(Plots.supported_styles), Plots.PlotlyBackend}) - precompile(Tuple{typeof(Plots.supported_styles)}) - precompile(Tuple{typeof(Plots.test_examples), Symbol}) - precompile(Tuple{typeof(Plots.text), String, Int64, Symbol, Symbol}) - precompile(Tuple{typeof(Plots.text), String, Plots.Font}) - precompile(Tuple{typeof(Plots.text), String, Symbol, Int64, Int}) - precompile(Tuple{typeof(Plots.text), String, Symbol}) - precompile(Tuple{typeof(Plots.text_size), Int64, Int64, Int64}) - precompile(Tuple{typeof(Plots.tick_padding), Plots.Subplot{Plots.PlotlyBackend}, Plots.Axis}) - precompile(Tuple{typeof(Plots.tickfont), Plots.Axis}) - precompile(Tuple{typeof(Plots.ticksType), Tuple{Array{Float64, 1}, Array{Any, 1}}}) - precompile(Tuple{typeof(Plots.ticksType), Tuple{Array{Float64, 1}, Array{String, 1}}}) - precompile(Tuple{typeof(Plots.ticksType), Tuple{Array{Int64, 1}, Array{String, 1}}}) - precompile(Tuple{typeof(Plots.title!), String}) - precompile(Tuple{typeof(Plots.title_padding), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.titlefont), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.titlefont), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.top), Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}}) - precompile(Tuple{typeof(Plots.toppad), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.toppad), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.transpose_z), Plots.Series, Array{Float64, 2}, Bool}) - precompile(Tuple{typeof(Plots.update_child_bboxes!), Plots.GridLayout, Array{Measures.Length{:mm, Float64}, 1}}) - precompile(Tuple{typeof(Plots.update_child_bboxes!), Plots.GridLayout}) - precompile(Tuple{typeof(Plots.update_child_bboxes!), Plots.Subplot{Plots.GRBackend}, Array{Measures.Length{:mm, Float64}, 1}}) - precompile(Tuple{typeof(Plots.update_child_bboxes!), Plots.Subplot{Plots.PlotlyBackend}, Array{Measures.Length{:mm, Float64}, 1}}) - precompile(Tuple{typeof(Plots.update_inset_bboxes!), Plots.Plot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.update_inset_bboxes!), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.vline!), Array{Int64, 1}}) - precompile(Tuple{typeof(Plots.wand_edges), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.warn_on_unsupported), Plots.GRBackend, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.warn_on_unsupported), Plots.PlotlyBackend, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.warn_on_unsupported_args), Plots.GRBackend, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.warn_on_unsupported_args), Plots.PlotlyBackend, RecipesPipeline.DefaultsDict}) - precompile(Tuple{typeof(Plots.warn_on_unsupported_scales), Plots.GRBackend, Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots.warn_on_unsupported_scales), Plots.PlotlyBackend, Base.Dict{Symbol, Any}}) - precompile(Tuple{typeof(Plots.widen), Float64, Float64, Symbol}) - precompile(Tuple{typeof(Plots.wraptuple), Array{Any, 1}}) - precompile(Tuple{typeof(Plots.wraptuple), Array{Float64, 1}}) - precompile(Tuple{typeof(Plots.wraptuple), Base.StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}}}) - precompile(Tuple{typeof(Plots.wraptuple), Bool}) - precompile(Tuple{typeof(Plots.wraptuple), Float64}) - precompile(Tuple{typeof(Plots.wraptuple), Int64}) - precompile(Tuple{typeof(Plots.wraptuple), Nothing}) - precompile(Tuple{typeof(Plots.wraptuple), Plots.SeriesAnnotations}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Array{Symbol, 2}, Int64, Float64, Plots.Stroke}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Array{Symbol, 2}, Int64}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Base.LinRange{Float64}, Base.LinRange{Float64}}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Int64, Array{Symbol, 2}}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Int64, Float64, Symbol, Plots.Stroke}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Int64, Float64, Symbol}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Int64, String}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Int64, Symbol, Float64, Array{Symbol, 2}}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Int64, Symbol, Symbol}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Int64, Symbol}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Plots.Shape, Int64, ColorTypes.RGBA{Float64}}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{String, Symbol}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{String, Tuple{Int64, Int64}, Base.StepRange{Int64, Int64}, Symbol}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Symbol, Float64, Plots.Stroke}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Symbol, Int64}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Symbol, Symbol, Int64, Symbol, Float64}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{Symbol, Symbol, Symbol, Int64, Float64}}) - precompile(Tuple{typeof(Plots.wraptuple), Tuple{}}) - precompile(Tuple{typeof(Plots.write_temp_html), Plots.Plot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.xgrid!), Plots.Plot{Plots.GRBackend}, Symbol, Int}) - precompile(Tuple{typeof(Plots.xgrid!), Plots.Plot{Plots.PlotlyBackend}, Symbol, Int}) - precompile(Tuple{typeof(Plots.xlims), Int64}) - precompile(Tuple{typeof(Plots.xlims), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.xlims), Plots.Subplot{Plots.PlotlyBackend}}) - precompile(Tuple{typeof(Plots.xy_mm_to_pcts), Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}) - precompile(Tuple{typeof(Plots.yaxis!), String, Symbol}) - precompile(Tuple{typeof(Plots.ylims), Int64}) - precompile(Tuple{typeof(Plots.ylims), Plots.Subplot{Plots.GRBackend}}) - precompile(Tuple{typeof(Plots.ylims), Plots.Subplot{Plots.PlotlyBackend}}) -end From 3dd3808895288cf51f8325b26e4c9186fcfc084b Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Sat, 27 Jun 2020 01:26:52 +0200 Subject: [PATCH 02/20] don't run snoopcompilebot on nightly --- .github/workflows/SnoopCompile.yml | 1 - deps/SnoopCompile/snoop_bench.jl | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index df2044687..6532db181 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -17,7 +17,6 @@ jobs: fail-fast: false matrix: version: # NOTE: the versions below should match those in your botconfig - - 'nightly' - '1' - '1.2' os: # NOTE: should match the os setting of your botconfig diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl index 07bcc77ec..6089d1953 100644 --- a/deps/SnoopCompile/snoop_bench.jl +++ b/deps/SnoopCompile/snoop_bench.jl @@ -1,6 +1,6 @@ using SnoopCompile snoop_bench( - BotConfig("Plots", version = [v"1.2", v"1", "nightly"]), + BotConfig("Plots", version = [v"1.2", v"1"]), joinpath(@__DIR__, "precompile_script.jl"), ) From ddcf443f8983dbe08f5886b78afc9f68090e8e36 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Sat, 27 Jun 2020 01:38:59 +0200 Subject: [PATCH 03/20] remove nightly in snoop_bot.jl --- deps/SnoopCompile/snoop_bot.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl index 0bdbd2ad1..8d16e0d73 100644 --- a/deps/SnoopCompile/snoop_bot.jl +++ b/deps/SnoopCompile/snoop_bot.jl @@ -1,6 +1,6 @@ using SnoopCompile snoop_bot( - BotConfig("Plots", version = [v"1.2", v"1", "nightly"]), + BotConfig("Plots", version = [v"1.2", v"1"]), joinpath(@__DIR__, "precompile_script.jl"), ) From fb402d9901cfa22d15b5501a77bdd8fb30d50b1d Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Sat, 27 Jun 2020 02:02:12 +0200 Subject: [PATCH 04/20] don't include precompile_loader --- src/Plots.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Plots.jl b/src/Plots.jl index 0d90f7eea..38219b1c9 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -250,5 +250,4 @@ end const CURRENT_BACKEND = CurrentBackend(:none) -include("precompile_includer.jl") end # module From 86b92698cc6102c85850541eb4bcae21ee39d65f Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Mon, 29 Jun 2020 18:46:53 +0200 Subject: [PATCH 05/20] xvfb-run and update versions --- .github/workflows/SnoopCompile.yml | 12 ++++++- .github/workflows/ci.yml | 2 +- deps/SnoopCompile/snoop_bench.jl | 7 +++- deps/SnoopCompile/snoop_bot.jl | 7 +++- deps/generateprecompiles.jl | 55 ------------------------------ 5 files changed, 24 insertions(+), 59 deletions(-) delete mode 100644 deps/generateprecompiles.jl diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 6532db181..817bdfcaa 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -18,7 +18,8 @@ jobs: matrix: version: # NOTE: the versions below should match those in your botconfig - '1' - - '1.2' + - '1.3' + - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest - windows-latest @@ -26,6 +27,7 @@ jobs: arch: - x64 steps: + # Setup environment - uses: actions/checkout@v2 - uses: julia-actions/setup-julia@latest with: @@ -34,8 +36,16 @@ jobs: run: | julia --project -e 'using Pkg; Pkg.instantiate();' julia -e 'using Pkg; Pkg.add(PackageSpec(url = "https://github.com/timholy/SnoopCompile.jl")); Pkg.develop(PackageSpec(; path=pwd())); using SnoopCompile; SnoopCompile.addtestdep();' + # TESTCMD + - name: Default TESTCMD + run: echo ::set-env name=TESTCMD::"julia" + - name: Ubuntu TESTCMD + if: startsWith(matrix.os,'ubuntu') + run: echo ::set-env name=TESTCMD::"xvfb-run julia" + # Generate precompile files - name: Generating precompile files run: julia --project -e 'include("deps/SnoopCompile/snoop_bot.jl")' # NOTE: must match path + # Run benchmarks - name: Running Benchmark run: julia --project -e 'include("deps/SnoopCompile/snoop_bench.jl")' # NOTE: optional, if have benchmark file - name: Upload all diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4eb858da9..7d9db2348 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,7 +65,7 @@ jobs: if: startsWith(matrix.os,'ubuntu') run: echo ::set-env name=TESTCMD::"xvfb-run julia" - # Julia Deoendencies + # Julia Dependencies - name: Install Julia dependencies uses: julia-actions/julia-buildpkg@latest diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl index 6089d1953..51e3eeba3 100644 --- a/deps/SnoopCompile/snoop_bench.jl +++ b/deps/SnoopCompile/snoop_bench.jl @@ -1,6 +1,11 @@ using SnoopCompile snoop_bench( - BotConfig("Plots", version = [v"1.2", v"1"]), + BotConfig( + "Plots", + else_os = "linux", + version = [v"1.3", v"1", "nightly"], + else_version = v"1", + ), joinpath(@__DIR__, "precompile_script.jl"), ) diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl index 8d16e0d73..6d4ff8afa 100644 --- a/deps/SnoopCompile/snoop_bot.jl +++ b/deps/SnoopCompile/snoop_bot.jl @@ -1,6 +1,11 @@ using SnoopCompile snoop_bot( - BotConfig("Plots", version = [v"1.2", v"1"]), + BotConfig( + "Plots", + else_os = "linux", + version = [v"1.3", v"1", "nightly"], + else_version = v"1", + ), joinpath(@__DIR__, "precompile_script.jl"), ) diff --git a/deps/generateprecompiles.jl b/deps/generateprecompiles.jl deleted file mode 100644 index e522982b8..000000000 --- a/deps/generateprecompiles.jl +++ /dev/null @@ -1,55 +0,0 @@ -# To figure out what should be precompiled, run this script, then move -# precompile_Plots.jl in precompiles_path (see below) to src/precompile.jl - -# This script works by using SnoopCompile to log compilations that take place -# while running the examples on the GR backend. So SnoopCompile must be -# installed, and StatsPlots, RDatasets, and FileIO are also required for -# certain examples. - -# If precompilation fails with an UndefVarError for a module, probably what is -# happening is that the module appears in the precompile statements, but is -# only visible to one of Plots' dependencies, and not Plots itself. Adding the -# module to the blacklist below will remove these precompile statements. - -# Anonymous functions may appear in precompile statements as functions with -# hashes in their name. Those of the form "#something##kw" have to do with -# compiling functions with keyword arguments, and are named reproducibly, so -# can be kept. Others generally will not work. Currently, SnoopCompile includes -# some anonymous functions that not reproducible, but SnoopCompile PR #30 -# (which looks about to be merged) will ensure that anonymous functions are -# actually defined before attempting to precompile them. Alternatively, we can -# keep only the keyword argument related anonymous functions by changing the -# regex that SnoopCompile uses to detect anonymous functions to -# r"#{1,2}[^\"#]+#{1,2}\d+" (see anonrex in SnoopCompile.jl). To exclude all -# precompile statements involving anonymous functions, "#" can also be added to -# the blacklist below. - -using SnoopCompile - -project_flag = string("--project=", joinpath(homedir(), ".julia", "dev", "Plots")) -log_path = joinpath(tempdir(), "compiles.log") -precompiles_path = joinpath(tempdir(), "precompile") - -# run examples with GR backend, logging what needs to be compiled -SnoopCompile.@snoopc project_flag log_path begin - using Plots - Plots.test_examples(:gr) - Plots.test_examples(:plotly, skip = Plots._backend_skips[:plotly]) -end - -# precompile calls containing the following strings are dropped -blacklist = [ - # functions defined in examples - "PlotExampleModule", - # the following are not visible to Plots, only its dependencies - "CategoricalArrays", - "FixedPointNumbers", - "OffsetArrays", - "SparseArrays", - "StaticArrays", - r"#{1,2}[^\"#]+#{1,2}\d+", -] - -data = SnoopCompile.read(log_path) -pc = SnoopCompile.parcel(reverse!(data[2]), blacklist=blacklist) -SnoopCompile.write(precompiles_path, pc) From acd6cfabc12f09df957f0dd470a447b84cce3672 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Mon, 29 Jun 2020 18:53:53 +0200 Subject: [PATCH 06/20] string instead of versionnumber --- deps/SnoopCompile/snoop_bench.jl | 2 +- deps/SnoopCompile/snoop_bot.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl index 51e3eeba3..55c05cddc 100644 --- a/deps/SnoopCompile/snoop_bench.jl +++ b/deps/SnoopCompile/snoop_bench.jl @@ -4,7 +4,7 @@ snoop_bench( BotConfig( "Plots", else_os = "linux", - version = [v"1.3", v"1", "nightly"], + version = ["1.3", "1", "nightly"], else_version = v"1", ), joinpath(@__DIR__, "precompile_script.jl"), diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl index 6d4ff8afa..f06198021 100644 --- a/deps/SnoopCompile/snoop_bot.jl +++ b/deps/SnoopCompile/snoop_bot.jl @@ -4,7 +4,7 @@ snoop_bot( BotConfig( "Plots", else_os = "linux", - version = [v"1.3", v"1", "nightly"], + version = ["1.3", "1", "nightly"], else_version = v"1", ), joinpath(@__DIR__, "precompile_script.jl"), From d0920ac91922a4bcad40b503eedf3afac865a89a Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Mon, 29 Jun 2020 19:07:08 +0200 Subject: [PATCH 07/20] add GKS_ENCODING env variable --- .github/workflows/SnoopCompile.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 817bdfcaa..c882f9dcf 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -12,6 +12,8 @@ defaults: jobs: SnoopCompile: if: "!contains(github.event.head_commit.message, '[skip ci]')" + env: + GKS_ENCODING: "utf8" runs-on: ${{ matrix.os }} strategy: fail-fast: false From 2511d2128b86a7099ee223f814ad218811aeb93e Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Mon, 29 Jun 2020 19:31:02 +0200 Subject: [PATCH 08/20] actually use xvfb-run --- .github/workflows/SnoopCompile.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index c882f9dcf..1e7c46518 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -46,10 +46,10 @@ jobs: run: echo ::set-env name=TESTCMD::"xvfb-run julia" # Generate precompile files - name: Generating precompile files - run: julia --project -e 'include("deps/SnoopCompile/snoop_bot.jl")' # NOTE: must match path + run: $TESTCMD --project -e 'include("deps/SnoopCompile/snoop_bot.jl")' # NOTE: must match path # Run benchmarks - name: Running Benchmark - run: julia --project -e 'include("deps/SnoopCompile/snoop_bench.jl")' # NOTE: optional, if have benchmark file + run: $TESTCMD --project -e 'include("deps/SnoopCompile/snoop_bench.jl")' # NOTE: optional, if have benchmark file - name: Upload all uses: actions/upload-artifact@v2 with: From 3ea521793bcbf3ff99cacadaf9d2e1ea9ab54f3b Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Mon, 29 Jun 2020 19:49:40 +0200 Subject: [PATCH 09/20] add env variables for GR --- .github/workflows/SnoopCompile.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 1e7c46518..c9a833cd2 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -14,6 +14,8 @@ jobs: if: "!contains(github.event.head_commit.message, '[skip ci]')" env: GKS_ENCODING: "utf8" + GKSwstype: "100" + PLOTS_TEST: "true" runs-on: ${{ matrix.os }} strategy: fail-fast: false From cfab4e35cce10d21b3655eb9277adb86b9cc14b7 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Mon, 29 Jun 2020 20:08:45 +0200 Subject: [PATCH 10/20] skip statsplots testimages --- deps/SnoopCompile/precompile_script.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/SnoopCompile/precompile_script.jl b/deps/SnoopCompile/precompile_script.jl index c5ef44349..62bd681eb 100644 --- a/deps/SnoopCompile/precompile_script.jl +++ b/deps/SnoopCompile/precompile_script.jl @@ -1,4 +1,4 @@ using Plots -Plots.test_examples(:gr) +Plots.test_examples(:gr, skip = Plots._backend_skips[:gr]) Plots.test_examples(:plotly, skip = Plots._backend_skips[:plotly]) From 4f791a394e252fac17dbb985ee502cef74ed1925 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 18:37:32 +0200 Subject: [PATCH 11/20] don't display plotly plots --- deps/SnoopCompile/precompile_script.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/SnoopCompile/precompile_script.jl b/deps/SnoopCompile/precompile_script.jl index 62bd681eb..369ac4996 100644 --- a/deps/SnoopCompile/precompile_script.jl +++ b/deps/SnoopCompile/precompile_script.jl @@ -1,4 +1,4 @@ using Plots Plots.test_examples(:gr, skip = Plots._backend_skips[:gr]) -Plots.test_examples(:plotly, skip = Plots._backend_skips[:plotly]) +Plots.test_examples(:plotly, skip = Plots._backend_skips[:plotly], disp = false) From 16618430ed8cbf9bf190762ee60c58b57ab36de5 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 19:25:59 +0200 Subject: [PATCH 12/20] be explicit about julia versions --- .github/workflows/SnoopCompile.yml | 4 ++-- deps/SnoopCompile/snoop_bench.jl | 7 +------ deps/SnoopCompile/snoop_bot.jl | 7 +------ 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index c9a833cd2..00d8a08dd 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -21,8 +21,8 @@ jobs: fail-fast: false matrix: version: # NOTE: the versions below should match those in your botconfig - - '1' - - '1.3' + - '1.4.2' + - '1.3.1' - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl index 55c05cddc..ecb1317c7 100644 --- a/deps/SnoopCompile/snoop_bench.jl +++ b/deps/SnoopCompile/snoop_bench.jl @@ -1,11 +1,6 @@ using SnoopCompile snoop_bench( - BotConfig( - "Plots", - else_os = "linux", - version = ["1.3", "1", "nightly"], - else_version = v"1", - ), + BotConfig("Plots", version = ["1.3.1", "1.4.2", "nightly"]), joinpath(@__DIR__, "precompile_script.jl"), ) diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl index f06198021..7ea101fc1 100644 --- a/deps/SnoopCompile/snoop_bot.jl +++ b/deps/SnoopCompile/snoop_bot.jl @@ -1,11 +1,6 @@ using SnoopCompile snoop_bot( - BotConfig( - "Plots", - else_os = "linux", - version = ["1.3", "1", "nightly"], - else_version = v"1", - ), + BotConfig("Plots", version = ["1.3.1", "1.4.2", "nightly"]), joinpath(@__DIR__, "precompile_script.jl"), ) From 3f521b3322843681ab12d0970ac1f839228b5f7d Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 21:18:04 +0200 Subject: [PATCH 13/20] multios and run on 1.5 --- .github/workflows/SnoopCompile.yml | 5 +++-- deps/SnoopCompile/snoop_bench.jl | 8 +++++++- deps/SnoopCompile/snoop_bot.jl | 8 +++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 00d8a08dd..9575c3304 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -21,8 +21,9 @@ jobs: fail-fast: false matrix: version: # NOTE: the versions below should match those in your botconfig - - '1.4.2' - - '1.3.1' + - '1.3' + - '1.4' + - '1.5' - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl index ecb1317c7..646ad8883 100644 --- a/deps/SnoopCompile/snoop_bench.jl +++ b/deps/SnoopCompile/snoop_bench.jl @@ -1,6 +1,12 @@ using SnoopCompile snoop_bench( - BotConfig("Plots", version = ["1.3.1", "1.4.2", "nightly"]), + BotConfig( + "Plots", + os = ["linux", "windows", "macos"], + else_os = "linux", + version = ["1.3", "1.4", "1.5", "nightly"], + else_version = "1.4", + ), joinpath(@__DIR__, "precompile_script.jl"), ) diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl index 7ea101fc1..1bf762530 100644 --- a/deps/SnoopCompile/snoop_bot.jl +++ b/deps/SnoopCompile/snoop_bot.jl @@ -1,6 +1,12 @@ using SnoopCompile snoop_bot( - BotConfig("Plots", version = ["1.3.1", "1.4.2", "nightly"]), + BotConfig( + "Plots", + os = ["linux", "windows", "macos"], + else_os = "linux", + version = ["1.3", "1.4", "1.5", "nightly"], + else_version = "1.4", + ), joinpath(@__DIR__, "precompile_script.jl"), ) From a2aad6be6638daef57de90b78324ad28aa9617e6 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 21:23:00 +0200 Subject: [PATCH 14/20] don't run on 1.5 --- .github/workflows/SnoopCompile.yml | 2 +- deps/SnoopCompile/snoop_bench.jl | 2 +- deps/SnoopCompile/snoop_bot.jl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 9575c3304..78f2acaec 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -23,7 +23,7 @@ jobs: version: # NOTE: the versions below should match those in your botconfig - '1.3' - '1.4' - - '1.5' + # - '1.5' - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl index 646ad8883..a6db4fc1e 100644 --- a/deps/SnoopCompile/snoop_bench.jl +++ b/deps/SnoopCompile/snoop_bench.jl @@ -5,7 +5,7 @@ snoop_bench( "Plots", os = ["linux", "windows", "macos"], else_os = "linux", - version = ["1.3", "1.4", "1.5", "nightly"], + version = ["1.3", "1.4", "nightly"], else_version = "1.4", ), joinpath(@__DIR__, "precompile_script.jl"), diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl index 1bf762530..b0c856f8e 100644 --- a/deps/SnoopCompile/snoop_bot.jl +++ b/deps/SnoopCompile/snoop_bot.jl @@ -5,7 +5,7 @@ snoop_bot( "Plots", os = ["linux", "windows", "macos"], else_os = "linux", - version = ["1.3", "1.4", "1.5", "nightly"], + version = ["1.3", "1.4", "nightly"], else_version = "1.4", ), joinpath(@__DIR__, "precompile_script.jl"), From 032f76c69b7db932400b8c479b322fbc6c760afe Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 23:22:22 +0200 Subject: [PATCH 15/20] Update deps/SnoopCompile/snoop_bench.jl Co-authored-by: Amin Yahyaabadi --- deps/SnoopCompile/snoop_bench.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deps/SnoopCompile/snoop_bench.jl b/deps/SnoopCompile/snoop_bench.jl index a6db4fc1e..56514d7e6 100644 --- a/deps/SnoopCompile/snoop_bench.jl +++ b/deps/SnoopCompile/snoop_bench.jl @@ -3,9 +3,8 @@ using SnoopCompile snoop_bench( BotConfig( "Plots", - os = ["linux", "windows", "macos"], + yml_path= "SnoopCompile.yml", else_os = "linux", - version = ["1.3", "1.4", "nightly"], else_version = "1.4", ), joinpath(@__DIR__, "precompile_script.jl"), From 6425ff8f4c47382a17f10441b27087a244471d37 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 23:22:35 +0200 Subject: [PATCH 16/20] Update deps/SnoopCompile/snoop_bot.jl Co-authored-by: Amin Yahyaabadi --- deps/SnoopCompile/snoop_bot.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deps/SnoopCompile/snoop_bot.jl b/deps/SnoopCompile/snoop_bot.jl index b0c856f8e..1e752e4c8 100644 --- a/deps/SnoopCompile/snoop_bot.jl +++ b/deps/SnoopCompile/snoop_bot.jl @@ -3,9 +3,8 @@ using SnoopCompile snoop_bot( BotConfig( "Plots", - os = ["linux", "windows", "macos"], + yml_path= "SnoopCompile.yml", else_os = "linux", - version = ["1.3", "1.4", "nightly"], else_version = "1.4", ), joinpath(@__DIR__, "precompile_script.jl"), From fc89578536e740dd27c8a7a8d45269a3ef19ad8a Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 23:35:51 +0200 Subject: [PATCH 17/20] Update .github/workflows/SnoopCompile.yml Co-authored-by: Amin Yahyaabadi --- .github/workflows/SnoopCompile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 78f2acaec..6bb942e93 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -23,7 +23,7 @@ jobs: version: # NOTE: the versions below should match those in your botconfig - '1.3' - '1.4' - # - '1.5' + - '1.5.0-rc1' - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest From dc81c6aa8c6ff6ee8d5024970a5c7436f82e05f4 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Tue, 30 Jun 2020 23:43:55 +0200 Subject: [PATCH 18/20] Update .github/workflows/SnoopCompile.yml --- .github/workflows/SnoopCompile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 6bb942e93..20ea1a5b2 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -23,7 +23,7 @@ jobs: version: # NOTE: the versions below should match those in your botconfig - '1.3' - '1.4' - - '1.5.0-rc1' + - '1.5.0-rc1' - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest From a46ffbe218bab8e987de7012b20af3001583b2b4 Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Wed, 1 Jul 2020 00:06:38 +0200 Subject: [PATCH 19/20] update 1.5 version specification in SnoopCompile.yml --- .github/workflows/SnoopCompile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 20ea1a5b2..7130ed2b6 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -23,7 +23,7 @@ jobs: version: # NOTE: the versions below should match those in your botconfig - '1.3' - '1.4' - - '1.5.0-rc1' + - '1.5.0-0' - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest From 79fac7a85e2a0337d77280b9cfbbf4b05eafea9f Mon Sep 17 00:00:00 2001 From: Daniel Schwabeneder Date: Wed, 1 Jul 2020 00:27:59 +0200 Subject: [PATCH 20/20] use '1.5.0-rc1' until 1.5 is released --- .github/workflows/SnoopCompile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/SnoopCompile.yml b/.github/workflows/SnoopCompile.yml index 7130ed2b6..20ea1a5b2 100644 --- a/.github/workflows/SnoopCompile.yml +++ b/.github/workflows/SnoopCompile.yml @@ -23,7 +23,7 @@ jobs: version: # NOTE: the versions below should match those in your botconfig - '1.3' - '1.4' - - '1.5.0-0' + - '1.5.0-rc1' - 'nightly' os: # NOTE: should match the os setting of your botconfig - ubuntu-latest