Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trying to compile Plots dependencies #75

Closed
diegozea opened this issue Jun 4, 2018 · 2 comments
Closed

Trying to compile Plots dependencies #75

diegozea opened this issue Jun 4, 2018 · 2 comments

Comments

@diegozea
Copy link

diegozea commented Jun 4, 2018

I am trying to compile Plots dependencies to make Plots a little faster. The first problem that I found was that compiling all the packages in REQUIRE throws an error because GR cannot be compiled:

compile_package("RecipesBase",
                "PlotUtils",
                "PlotThemes",
                "Reexport",
                "StaticArrays",
                "FixedPointNumbers",
                "Measures",
                "Showoff",
                "StatsBase",
                "JSON",
                "NaNMath",
                "Requires",
                "Contour",
                "GR",
                force = false,
                reuse = false)
signal (11): Segmentation fault
while loading /home/zea/.julia/v0.6/PackageCompiler/sysimg/precompile.jl, in expression starting on line 91377
ERROR: failed process: Process(`/home/zea/bin/julia-d55cadc350/bin/julia -Cnative -J/home/zea/.julia/v0.6/PackageCompiler/sysimg/backup/native/sys.so --compile=yes --depwarn=yes --startup-file=no --precompiled=no --compilecache=no --output-o /home/zea/.julia/v0.6/PackageCompiler/sysimg/sys.o -e 'empty!(Base.LOAD_CACHE_PATH) # reset / remove any builtin paths
        push!(Base.LOAD_CACHE_PATH, abspath("/home/zea/.julia/v0.6/PackageCompiler/sysimg")) # enable usage of precompiled files
        include("/home/zea/.julia/v0.6/PackageCompiler/sysimg/precompile.jl") # include Julia program file
        empty!(Base.LOAD_CACHE_PATH) # reset / remove build-system-relative paths'`, ProcessSignaled(11)) [0]
Stacktrace:
 [1] pipeline_error(::Base.Process) at ./process.jl:682
 [2] run(::Cmd) at ./process.jl:651
 [3] build_object(::String, ::String, ::String, ::Bool, ::String, ::Void, ::Void, ::Void, ::Void, ::Void, ::Void, ::Void, ::Void) at /home/zea/.julia/v0.6/PackageCompiler/src/static_julia.jl:217
 [4] #static_julia#1(::Void, ::String, ::String, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::String, ::Void, ::Void, ::Void, ::Void, ::Void, ::Void, ::Void, ::Void, ::String, ::Void, ::PackageCompiler.#static_julia, ::String) at /home/zea/.julia/v0.6/PackageCompiler/src/static_julia.jl:127
 [5] (::PackageCompiler.#kw##static_julia)(::Array{Any,1}, ::PackageCompiler.#static_julia, ::String) at ./<missing>:0
 [6] #build_sysimg#6(::Bool, ::Bool, ::Void, ::Void, ::Void, ::Void, ::Void, ::Void, ::PackageCompiler.#build_sysimg, ::String, ::String) at /home/zea/.julia/v0.6/PackageCompiler/src/api.jl:22
 [7] #compile_package#25(::Bool, ::Bool, ::Bool, ::Function, ::Tuple{String,String}, ::Vararg{Tuple{String,String},N} where N) at /home/zea/.julia/v0.6/PackageCompiler/src/PackageCompiler.jl:134
 [8] (::PackageCompiler.#kw##compile_package)(::Array{Any,1}, ::PackageCompiler.#compile_package, ::Tuple{String,String}, ::Vararg{Tuple{String,String},N} where N) at ./<missing>:0
 [9] #compile_package#22(::Array{Any,1}, ::Function, ::String, ::Vararg{String,N} where N) at /home/zea/.julia/v0.6/PackageCompiler/src/PackageCompiler.jl:114
 [10] (::PackageCompiler.#kw##compile_package)(::Array{Any,1}, ::PackageCompiler.#compile_package, ::String, ::Vararg{String,N} where N) at ./<missing>:0

I had bad luck of having GR at the end, so it took one hour just to fail (#74).

So, after that, I'd tried it without GR and PackageCompiler ended well.

compile_package("RecipesBase",
                "PlotUtils",
                "PlotThemes",
                "Reexport",
                "StaticArrays",
                "FixedPointNumbers",
                "Measures",
                "Showoff",
                "StatsBase",
                "JSON",
                "NaNMath",
                "Requires",
                "Contour",
                force = false,
                reuse = false)

[...a lot of lines...]

julia_cmd = `/home/zea/bin/julia-d55cadc350/bin/julia -Cnative -J/home/zea/.julia/v0.6/PackageCompiler/sysimg/backup/native/sys.so --compile=yes --depwarn=yes --startup-file=no --precompiled=no --compilecache=no`
done.
INFO: import StaticArrays
INFO: Precompiling module Contour.
INFO: import Contour
INFO: import Compat
WARNING: Module not found: VerticesTests
INFO: import Base
WARNING: Module not found: InterfaceTests
INFO: import Core
WARNING: Not emitted because code couldn't parse: precompile(Tuple{typeof(Base.==), Type{Int}, Type{Int}})
Julia program file:
  "/home/zea/.julia/v0.6/PackageCompiler/sysimg/precompile.jl"
Build directory:
  "/home/zea/.julia/v0.6/PackageCompiler/sysimg"
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
WARNING: redefining constant JULIA_HOME
All done
INFO:     Not replacing system image.
    You can start julia with julia -J /home/zea/.julia/v0.6/PackageCompiler/sysimg/sys.so to load the compiled files.
4772.625897 seconds (10.39 M allocations: 794.277 MiB, 0.02% gc time)
"/home/zea/.julia/v0.6/PackageCompiler/sysimg/sys.so"

However, if I use the new image I get a Segmentation fault as soon as I try to use Plots:

julia> using Compat

julia> using Plots
INFO: Precompiling module Plots.

signal (11): Segmentation fault
while loading no file, in expression starting on line 0
jl_typemap_entry_assoc_exact at /buildworker/worker/package_linux64/build/src/typemap.c:774
jl_typemap_assoc_exact at /buildworker/worker/package_linux64/build/src/julia_internal.h:893 [inlined]
jl_lookup_generic_ at /buildworker/worker/package_linux64/build/src/gf.c:1871 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:1923
julia_cmd at ./util.jl:604
create_expr_cache at ./loading.jl:626
compilecache at ./loading.jl:709
_require at ./loading.jl:497
require at ./loading.jl:405
unknown function (ip: 0x7fcd54ceeebb)
jl_call_fptr_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:339 [inlined]
jl_call_method_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:358 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:1926
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1424 [inlined]
eval_import_path_ at /buildworker/worker/package_linux64/build/src/toplevel.c:403
eval_import_path at /buildworker/worker/package_linux64/build/src/toplevel.c:430 [inlined]
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:495
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/builtins.c:496
eval at ./boot.jl:235
unknown function (ip: 0x7fcd53ff9aef)
jl_call_fptr_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:339 [inlined]
jl_call_method_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:358 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:1926
eval_user_input at ./REPL.jl:66
unknown function (ip: 0x7fcd47ea1e66)
jl_call_fptr_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:339 [inlined]
jl_call_method_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:358 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:1926
macro expansion at ./REPL.jl:97 [inlined]
#1 at ./event.jl:73
unknown function (ip: 0x7fcd47e9fabf)
jl_call_fptr_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:339 [inlined]
jl_call_method_internal at /buildworker/worker/package_linux64/build/src/julia_internal.h:358 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:1926
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1424 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:267
unknown function (ip: 0xffffffffffffffff)
Allocations: 2303594 (Pool: 2295404; Big: 8190); GC: 0
Segmentation fault (core dumped)

Julia version:

Julia Version 0.6.3
Commit d55cadc350 (2018-05-28 20:20 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU           E5606  @ 2.13GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, westmere)

Package versions:

2 required packages:
 - PackageCompiler               0.3.1
 - Plots                         0.17.1
24 additional packages:
 - ArgParse                      0.5.0
 - ColorTypes                    0.6.7
 - Colors                        0.8.2
 - Compat                        0.66.0
 - Contour                       0.4.0
 - DataStructures                0.8.3
 - FixedPointNumbers             0.4.6
 - GR                            0.31.0
 - JSON                          0.17.2
 - Measures                      0.2.0
 - Missings                      0.2.9
 - NaNMath                       0.3.1
 - Nullables                     0.0.5
 - PlotThemes                    0.2.0
 - PlotUtils                     0.4.4
 - RecipesBase                   0.3.1
 - Reexport                      0.1.0
 - Requires                      0.4.3
 - Showoff                       0.2.0
 - SnoopCompile                  0.2.0
 - SortingAlgorithms             0.2.1
 - StaticArrays                  0.7.0
 - StatsBase                     0.23.0
 - TextWrap                      0.2.0

Best regards,

@SimonDanisch
Copy link
Collaborator

Sadly, this is expected until these issues are resolved: JuliaLang/julia#24533
I'd start small and work from there... ;)

@KristofferC
Copy link
Sponsor Member

Seems to work now, e.g.: https://kristofferc.github.io/PackageCompilerX.jl/dev/examples/plots/

KristofferC added a commit that referenced this issue Feb 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants