Does this qualify as a bug?

Following the advice, that you can do proper debugging by inserting print/display commands, i’ve put some (3) print/displays into a function of BinDeps to trace what library option are evalutated and this works in the first place. Once i reload(“BinDeps”) it fails with:

julia> BinDeps.debug("Cairo")
INFO: Reading build script...

signal (11): Segmentation fault
while loading no file, in expression starting on line 0
push_root at /home/lobi/julia05/src/gc.c:1367 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1386 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1484 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1484 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1434
_jl_gc_collect at /home/lobi/julia05/src/gc.c:1706 [inlined]
jl_gc_collect at /home/lobi/julia05/src/gc.c:1883
jl_gc_pool_alloc at /home/lobi/julia05/src/gc.c:828
jl_gc_alloc_ at /home/lobi/julia05/src/julia_internal.h:170 [inlined]
jl_gc_alloc at /home/lobi/julia05/src/gc.c:1906
jl_alloc_svec_uninit at /home/lobi/julia05/src/simplevector.c:47
jl_alloc_svec at /home/lobi/julia05/src/simplevector.c:56
intersect_tuple at /home/lobi/julia05/src/jltypes.c:601
jl_type_intersect at /home/lobi/julia05/src/jltypes.c:992
jl_type_intersection_matching at /home/lobi/julia05/src/jltypes.c:1521
jl_lookup_match at /home/lobi/julia05/src/typemap.c:376 [inlined]
jl_typemap_intersection_node_visitor at /home/lobi/julia05/src/typemap.c:507
jl_typemap_intersection_visitor at /home/lobi/julia05/src/typemap.c:569
ml_matches at /home/lobi/julia05/src/gf.c:2287 [inlined]
jl_matching_methods at /home/lobi/julia05/src/gf.c:2308
_methods_by_ftype at ./reflection.jl:223
unknown function (ip: 0x7fdc7a38a002)
...

We really can’t tell without seeing the exact code you used. Can you make it available somewhere?

https://github.com/lobingera/BinDeps.jl/tree/findlib-debug

               _
   _       _ _(_)_     |  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)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |  x86_64-linux-gnu

julia> using BinDeps

julia> BinDeps.debug("Cairo")
INFO: Reading build script...
...

julia> reload("BinDeps")
WARNING: replacing module BinDeps.
WARNING: Method definition run(Function) in module BinDeps at /home/lobi/.julia/v0.5/BinDeps/src/BinDeps.jl:476 overwritten in module BinDeps at /home/lobi/.julia/v0.5/BinDeps/src/BinDeps.jl:476.

julia> BinDeps.debug("Cairo")
INFO: Reading build script...

signal (11): Segmentation fault
while loading /home/lobi/.julia/v0.5/Cairo/deps/build.jl, in expression starting on line 17
push_root at /home/lobi/julia05/src/gc.c:1367 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1386 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1484 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1484 [inlined]
gc_push_root at /home/lobi/julia05/src/gc.c:1183
push_root at /home/lobi/julia05/src/gc.c:1434
_jl_gc_collect at /home/lobi/julia05/src/gc.c:1706 [inlined]
jl_gc_collect at /home/lobi/julia05/src/gc.c:1883
jl_gc_pool_alloc at /home/lobi/julia05/src/gc.c:828
inlining_pass at ./inference.jl:2956
inlining_pass at ./inference.jl:2930
inlining_pass at ./inference.jl:2930
unknown function (ip: 0x7f96b38ec616)
...

Thanks. Have you tried on Julia 0.6 or on master?

I was able to test v0.6 → without sig11.

Cool. Then I don’t think it will be fixed in the 0.5 series unless there’s a real use case in which it’s problematic.

I see.