Hi, I've been trying to use julia on one of my university machines and having precompilation issues. The machine runs Linux x84_46 and I'm using the 0.5 generic linux binary.
I was trying to use JLD.jl and kept getting precompilation failures for HFD5. On trying to do `using HDF5` in the REPL, it was giving me the same error for Compat.jl. By running `using <module>` for all modules for which precompilation was failing when trying to use JLD(HDF5->(Compat, Blosc), FileIO) I got them all precompiled successfully. However JLD also needed LegacyStrings to be precompiled, which does not have precompilation enabled and has to be precompiled from another module. At which point I was stuck and I decided to just go with `julia --compilecache=no`. julia> using JLD INFO: Precompiling module JLD. ERROR: LoadError: LoadError: Failed to precompile LegacyStrings to /nethome/rvt7/.julia/lib/v0.5/LegacyStrings.ji. in compilecache(::String) at ./loading.jl:593 in require(::Symbol) at ./loading.jl:393 in include_from_node1(::String) at ./loading.jl:488 (repeats 2 times) in macro expansion; at ./none:2 [inlined] in anonymous at ./<missing>:? in eval(::Module, ::Any) at ./boot.jl:234 in process_options(::Base.JLOptions) at ./client.jl:239 in _start() at ./client.jl:318 while loading /nethome/rvt7/.julia/v0.5/JLD/src/jld_types.jl, in expression starting on line 1 while loading /nethome/rvt7/.julia/v0.5/JLD/src/JLD.jl, in expression starting on line 130 ERROR: Failed to precompile JLD to /nethome/rvt7/.julia/lib/v0.5/JLD.ji. in compilecache(::String) at ./loading.jl:593 in require(::Symbol) at ./loading.jl:422 julia> using LegacyStrings WARNING: could not import Base.lastidx into LegacyStrings WARNING: using LegacyStrings.utf8 in module Main conflicts with an existing identifier. WARNING: using LegacyStrings.ascii in module Main conflicts with an existing identifier. julia> using JLD INFO: Precompiling module JLD. WARNING: Module LegacyStrings with uuid 25677385416258011 is missing from the cache. This may mean module LegacyStrings does not support precompilation but is imported by a module that does. ERROR: LoadError: LoadError: Declaring __precompile__(false) is not allowed in files that are being precompiled. in require(::Symbol) at ./loading.jl:385 in include_from_node1(::String) at ./loading.jl:488 (repeats 2 times) in macro expansion; at ./none:2 [inlined] in anonymous at ./<missing>:? in eval(::Module, ::Any) at ./boot.jl:234 in process_options(::Base.JLOptions) at ./client.jl:239 in _start() at ./client.jl:318 while loading /nethome/rvt7/.julia/v0.5/JLD/src/jld_types.jl, in expression starting on line 1 while loading /nethome/rvt7/.julia/v0.5/JLD/src/JLD.jl, in expression starting on line 130 ERROR: Failed to precompile JLD to /nethome/rvt7/.julia/lib/v0.5/JLD.ji. in compilecache(::String) at ./loading.jl:593 in require(::Symbol) at ./loading.jl:422 On a hunch that this was occurring due to a package with precompilation enabled trying to use another precompilation enabled package which hadn't been precompiled yet, I tried making a minimal example to check this. I created 2 packages Foo and Bar, both of which have precompilation enabled. ~/.julia/v0.5/Foo/Foo.jl: module Foo __precompile__() using Bar import Bar: bar end ~/.julia/v0.5/Bar/src/Bar.jl: module Bar __precompile__() export bar const bar = "foo" end Now when I try using Foo, I get a precompilation failed error for Bar. Foo does precompile when Bar is already precompiled though! _ _ _ _(_)_ | A fresh approach to technical computing (_) | (_) (_) | Documentation: http://docs.julialang.org _ _ _| |_ __ _ | Type "?help" for help. | | | | | | |/ _` | | | | |_| | | | (_| | | Version 0.5.0 (2016-09-19 18:14 UTC) _/ |\__'_|_|_|\__'_| | Official http://julialang.org/ release |__/ | x86_64-pc-linux-gnu julia> using Foo INFO: Precompiling module Foo. ERROR: LoadError: Failed to precompile Bar to /nethome/rvt7/.julia/lib/v0.5/Bar.ji. in compilecache(::String) at ./loading.jl:593 in require(::Symbol) at ./loading.jl:393 in include_from_node1(::String) at ./loading.jl:488 in macro expansion; at ./none:2 [inlined] in anonymous at ./<missing>:? in eval(::Module, ::Any) at ./boot.jl:234 in process_options(::Base.JLOptions) at ./client.jl:239 in _start() at ./client.jl:318 while loading /nethome/rvt7/.julia/v0.5/Foo/src/Foo.jl, in expression starting on line 4 ERROR: Failed to precompile Foo to /nethome/rvt7/.julia/lib/v0.5/Foo.ji. in compilecache(::String) at ./loading.jl:593 in require(::Symbol) at ./loading.jl:422 julia> using Bar INFO: Precompiling module Bar. WARNING: replacing module Bar. julia> reload("Foo") WARNING: replacing module Foo INFO: Precompiling module Foo. WARNING: replacing module Foo. julia> versioninfo() Julia Version 0.5.0 Commit 3c9d753 (2016-09-19 18:14 UTC) Platform Info: System: Linux (x86_64-pc-linux-gnu) CPU: Intel(R) Xeon(R) CPU X5650 @ 2.67GHz WORD_SIZE: 64 BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem) LAPACK: libopenblas64_ LIBM: libopenlibm LLVM: libLLVM-3.7.1 (ORCJIT, westmere) Any ideas why this might be occurring? Thanks, Rohit