timbitz / Whippet.jl

Lightweight and Fast; RNA-seq quantification at the event-level
MIT License
105 stars 21 forks source link

Cannot build whippet... #49

Closed nickschurch closed 6 years ago

nickschurch commented 7 years ago

I'm getting lots of compile errors when trying to install whippet:

> julia dependencies.jl
INFO: Updating METADATA...
INFO: Computing changes...
INFO: No packages to install, update or remove
Checking IndexableBitVectors ... Found version 0.1.2
Checking DataStructures ... Found version 0.5.3
Checking ArgParse ... Found version 0.5.0
Checking SuffixArrays ... Found version 0.1.0
Checking FMIndexes ... Found version 0.0.1
Checking IntArrays ... Found version 0.0.1
Checking IntervalTrees ... Found version 0.1.0
Checking Libz ... Found version 0.2.4
Checking StatsBase ... Found version 0.17.0
Checking Distributions ... Found version 0.13.0
Checking Glob ... Found version 1.1.1
Checking Bio ... Found version 0.4.7
Checking Requests ... Found version 0.4.1
INFO: Loading and precompiling... 
WARNING: Method definition count() in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number, Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
ERROR: LoadError: error compiling __init__: could not load library "/home/nick/.julia/v0.5/Blosc/src/../deps/libblosc"
/home/nick/.julia/v0.5/Blosc/src/../deps/libblosc.so: cannot open shared object file: No such file or directory
 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:242
 in _start() at ./client.jl:321
while loading /home/nick/.julia/v0.5/Blosc/src/Blosc.jl, in expression starting on line 481
ERROR: LoadError: LoadError: Failed to precompile Blosc to /home/nick/.julia/lib/v0.5/Blosc.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:242
 in _start() at ./client.jl:321
while loading /home/nick/.julia/v0.5/HDF5/src/blosc_filter.jl, in expression starting on line 1
while loading /home/nick/.julia/v0.5/HDF5/src/HDF5.jl, in expression starting on line 509
ERROR: LoadError: Failed to precompile HDF5 to /home/nick/.julia/lib/v0.5/HDF5.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:242
 in _start() at ./client.jl:321
while loading /home/nick/.julia/v0.5/JLD/src/JLD.jl, in expression starting on line 4
ERROR: LoadError: LoadError: Failed to precompile JLD to /home/nick/.julia/lib/v0.5/JLD.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:242
 in _start() at ./client.jl:321
while loading /home/nick/.julia/v0.5/LightGraphs/src/persistence/jld.jl, in expression starting on line 1
while loading /home/nick/.julia/v0.5/LightGraphs/src/LightGraphs.jl, in expression starting on line 160
ERROR: LoadError: LoadError: Failed to precompile LightGraphs to /home/nick/.julia/lib/v0.5/LightGraphs.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:242
 in _start() at ./client.jl:321
while loading /home/nick/.julia/v0.5/Bio/src/phylo/Phylo.jl, in expression starting on line 14
while loading /home/nick/.julia/v0.5/Bio/src/Bio.jl, in expression starting on line 15
ERROR: LoadError: Failed to precompile Bio to /home/nick/.julia/lib/v0.5/Bio.ji.
 in compilecache(::String) at ./loading.jl:593
 in require(::Symbol) at ./loading.jl:422
 in include_from_node1(::String) at ./loading.jl:488
 in process_options(::Base.JLOptions) at ./client.jl:265
 in _start() at ./client.jl:321
while loading /home/nick/Temp/Whippet.jl/dependencies.jl, in expression starting on line 47
> 

The dependencies all seem fine, julia is v0.5.2:

> julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.2 (2017-05-06 16:34 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-pc-linux-gnu

julia> 
timbitz commented 7 years ago

Hi @nickschurch, your installation might be failing to build Blosc which is a dependency of HDF5.jl (not Whippet). I found an old issue thats potentially related (but maybe not) https://github.com/JuliaIO/HDF5.jl/issues/234 . Can you try running Pkg.build("Blosc") and separately $ julia -e 'versioninfo()'.

Here is a link to the travis-build for the current master (which finishes cleanly on x86_64-pc-linux-gnu): https://travis-ci.com/timbitz/Whippet.jl/jobs/81877782

nickschurch commented 7 years ago

Pkg.build("Blosc") works fine and, oddly, running it seems to have allowed julia dependencies.jl to build (albeit with a load of warnings. Anything I should be concerned about here? It's my first time running anything built with julia so I don't have a good feel for whether I should be worried or not about these warnings...

> julia dependencies.jl
INFO: Updating METADATA...
INFO: Computing changes...
INFO: No packages to install, update or remove
Checking IndexableBitVectors ... Found version 0.1.2
Checking DataStructures ... Found version 0.5.3
Checking ArgParse ... Found version 0.5.0
Checking SuffixArrays ... Found version 0.1.0
Checking FMIndexes ... Found version 0.0.1
Checking IntArrays ... Found version 0.0.1
Checking IntervalTrees ... Found version 0.1.0
Checking Libz ... Found version 0.2.4
Checking StatsBase ... Found version 0.17.0
Checking Distributions ... Found version 0.13.0
Checking Glob ... Found version 1.1.1
Checking Bio ... Found version 0.4.7
Checking Requests ... Found version 0.4.1
INFO: Loading and precompiling... 
WARNING: Method definition count() in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number, Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count() in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number, Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.

WARNING: deprecated syntax "call(::Type{IntArray{w,T}}, ...)".
Use "(::Type{IntArray{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntArray{w,T}}, ...)".
Use "(::Type{IntArray{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntArray{w,T}}, ...)".
Use "(::Type{IntArray{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntArray{w,T}}, ...)".
Use "(::Type{IntArray{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntArray{w,T}}, ...)".
Use "(::Type{IntArray{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntArray{w,T,n}}, ...)".
Use "(::Type{IntArray{w,T,n}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntArray{w,T,n}}, ...)".
Use "(::Type{IntArray{w,T,n}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntVector{w,T}}, ...)".
Use "(::Type{IntVector{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntVector{w,T}}, ...)".
Use "(::Type{IntVector{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntVector{w,T}}, ...)".
Use "(::Type{IntVector{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntVector{w,T}}, ...)".
Use "(::Type{IntVector{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntMatrix{w,T}}, ...)".
Use "(::Type{IntMatrix{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntMatrix{w,T}}, ...)".
Use "(::Type{IntMatrix{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntMatrix{w,T}}, ...)".
Use "(::Type{IntMatrix{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{IntMatrix{w,T}}, ...)".
Use "(::Type{IntMatrix{w,T}})(...)" instead.

WARNING: deprecated syntax "call(::Type{WaveletMatrix{w}}, ...)".
Use "(::Type{WaveletMatrix{w}})(...)" instead.

WARNING: deprecated syntax "call(::Core.kwftype(Type{WaveletMatrix{w}}), ...)".
Use "(::Core.kwftype(Type{WaveletMatrix{w}}))(...)" instead.

WARNING: deprecated syntax "call(::Type{WaveletMatrix}, ...)".
Use "(::Type{WaveletMatrix})(...)" instead.

WARNING: deprecated syntax "call(::Type{WaveletMatrix}, ...)".
Use "(::Type{WaveletMatrix})(...)" instead.
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/nick/.julia/v0.5/FMIndexes/src/FMIndexes.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/nick/.julia/v0.5/FMIndexes/src/FMIndexes.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/nick/.julia/v0.5/FMIndexes/src/FMIndexes.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/nick/.julia/v0.5/FMIndexes/src/FMIndexes.jl:481
WARNING: Method definition count() in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
WARNING: Method definition count(Number, Number) in module Iterators at deprecated.jl:49 overwritten in module IterTools at deprecated.jl:49.
elapsed time: 42.28263831 seconds
julia -e 'versioninfo() '
Julia Version 0.5.2
Commit f4c6c9d (2017-05-06 16:34 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.7.1 (ORCJIT, haswell)
timbitz commented 7 years ago

Oh great!

Yah it thought you were missing the .julia/v0.5/Blosc/src/../deps/libblosc.so library which could have been a result of a faulty Blosc.jl build for some reason originally.

Yah the warnings are fine. Julia syntax has just been changing a little between v0.4, v0.5, and now v0.6 (which have been released fairly rapidly in the last couple years), so those are just deprecation warnings, suggesting that the old syntax will throw errors in the next version of Julia. Its the only downside to a language that isn't solidified at v1.0 yet...

timbitz commented 7 years ago

Hey @nickschurch, I added a quick note to the readme about the deprecated syntax warnings for code in dependent packages. Did you have any other trouble running Whippet? Can we close this issue?

timbitz commented 6 years ago

As of #55 which sets new dependencies on Julia v0.6, this is no longer relevant.