Skip to content

Conversation

@JeffBezanson
Copy link
Contributor

I'm not sure why there was no case for including precompile statements for v1.8. Is there some reason? In any case adding this fixes it and significantly improves TTFP.

(Also the version checks are wrong; you can have 1.8 versions greater than 1.8.9, but that can be fixed separately.)

@codecov
Copy link

codecov bot commented Apr 12, 2022

Codecov Report

Merging #4179 (d9d70be) into master (4f9a708) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4179      +/-   ##
==========================================
- Coverage   77.55%   77.54%   -0.02%     
==========================================
  Files          28       28              
  Lines        7054     7054              
==========================================
- Hits         5471     5470       -1     
- Misses       1583     1584       +1     
Impacted Files Coverage Δ
src/axes.jl 85.26% <0.00%> (-0.23%) ⬇️
src/backends/gr.jl 89.01% <0.00%> (-0.09%) ⬇️
src/recipes.jl 63.45% <0.00%> (ø)
src/args.jl 74.39% <0.00%> (+0.15%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4f9a708...d9d70be. Read the comment docs.

@t-bltg
Copy link
Member

t-bltg commented Apr 12, 2022

See #4079, generating precompilation statements on 1.8 in CI was hanging, last time I checked.

@JeffBezanson
Copy link
Contributor Author

I can see that nightly might be broken sometimes since it can change a lot, but 1.8 has been branched and is nearing release, so it probably makes sense to add it. E.g. the "nightly" test in this PR was using a 1.9-dev version, so 1.8 wasn't tested here at all.

@t-bltg
Copy link
Member

t-bltg commented Apr 12, 2022

I could swear this was on 1.8 ... Anyway, I'll try to have a look tomorrow. Do you know if we can pin beta versions in ci ?

@giordano
Copy link
Contributor

Do you know if we can pin beta versions in ci ?

For example ^1.8.0-0: https://github.com/julia-actions/setup-julia/blob/b69122e25a41dfa3fc1b74a4e8c21fd842fc57c7/README.md#examples. Also ~1.8.0-0 should work

@t-bltg t-bltg merged commit 616d724 into JuliaPlots:master Apr 14, 2022
@t-bltg
Copy link
Member

t-bltg commented Apr 14, 2022

Doesn't look too good with 1.8 in ci :/

 ERROR: LoadError: failed process: Process(`/opt/hostedtoolcache/julia/1.8.0-beta3/x64/bin/julia -Cnative -J/opt/hostedtoolcache/julia/1.8.0-beta3/x64/lib/julia/sys.so -g1 --code-coverage=none --project=@. -e "
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:4 =#
    using SnoopCompileCore
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:6 =#
    data = #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:6 =# @snoopi(tmin = 0.01, begin
                #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:7 =#
                begin
                    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:196 =#
                    include(\"/home/runner/work/Plots.jl/Plots.jl/deps/SnoopCompile/precompile_script.jl\")
                end
            end)
; 
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:29 =#
    packageSym = Symbol(\"Plots\")
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:32 =#
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:32 =# @info \"Processsing the generated precompile signatures\"
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:34 =#
    using SnoopCompile
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:37 =#
    pc = SnoopCompile.parcel(data; subst = Pair{Union{Regex, AbstractChar, AbstractString}, Union{Regex, AbstractChar, AbstractString}}[], exclusions = Union{Regex, AbstractChar, AbstractString}[], check_eval = true)
    #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:38 =#
    if !(haskey(pc, packageSym))
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:39 =#
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:39 =# @warn \"no precompile signature is found for Plots. Don't load the package before snooping. Restart your Julia session.\"
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:40 =#
        if !(isdir(\"/home/runner/work/Plots.jl/Plots.jl/deps/SnoopCompile/precompile/1.8\"))
            #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:41 =#
            mkpath(\"/home/runner/work/Plots.jl/Plots.jl/deps/SnoopCompile/precompile/1.8\")
        end
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:43 =#
        Base.write(\"/home/runner/work/Plots.jl/Plots.jl/deps/SnoopCompile/precompile/1.8/precompile_Plots.jl\", \"function _precompile_()\n    # nothing\nend\n\")
    else
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:49 =#
        onlypackage = Dict(packageSym => Base.sort(pc[packageSym]))
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:50 =#
        SnoopCompile.write(\"/home/runner/work/Plots.jl/Plots.jl/deps/SnoopCompile/precompile/1.8\", onlypackage)
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:51 =#
        #= /home/runner/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:51 =# @info \"precompile signatures were written to /home/runner/work/Plots.jl/Plots.jl/deps/SnoopCompile/precompile/1.8\"
    end
;"`, ProcessSignaled(9)) [0]

Stacktrace:
  [1] pipeline_error
    @ ./process.jl:561 [inlined]
  [2] run(::Cmd; wait::Bool)
    @ Base ./process.jl:476
  [3] run(::Cmd)
    @ Base ./process.jl:474
  [4] top-level scope
    @ ~/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:139
  [5] eval
    @ ./boot.jl:368 [inlined]
  [6] snoop_bot(config::BotConfig, path_to_example_script::String, test_modul::Module; snoop_mode::Symbol)
    @ CompileBot ~/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:199
  [7] snoop_bot (repeats 2 times)
    @ ~/.julia/packages/CompileBot/Y2Oal/src/snoop_bot.jl:194 [inlined]
  [8] top-level scope
    @ ~/work/Plots.jl/Plots.jl/deps/SnoopCompile/snoop_bot.jl:3
  [9] include(fname::String)
    @ Base.MainInclude ./client.jl:476
 [10] top-level scope
    @ none:1
in expression starting at /home/runner/work/Plots.jl/Plots.jl/deps/SnoopCompile/snoop_bot.jl:3

@t-bltg
Copy link
Member

t-bltg commented Apr 16, 2022

Opened up aminya/CompileBot.jl#50.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants