JuliaGraphics / Immerse.jl

Dive deeper into your data with interactive graphics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Failure on mac

ViralBShah opened this issue · comments

I'm getting an error on mac. All the bindeps were handled through brew, and a boatload of them came through. Getting an error when I try to use it in the precompilation. Looks like a package dependency issue?

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.1 (2015-11-08 10:33 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-apple-darwin13.4.0

julia> using Immerse
INFO: Precompiling module Immerse...
2015-12-03 17:29:58.518 julia[13795:4842540] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
ERROR: LoadError: LoadError: UndefVarError: absolute_native_units not defined
 in include at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include_from_node1 at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include_from_node1 at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from none:2
 in anonymous at no file:0
 in process_options at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in _start at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
while loading /Users/viral/.julia/v0.4/Immerse/src/compose.jl, in expression starting on line 13
while loading /Users/viral/.julia/v0.4/Immerse/src/Immerse.jl, in expression starting on line 31
ERROR: Failed to precompile Immerse to /Users/viral/.julia/lib/v0.4/Immerse.ji
 in error at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 in compilecache at loading.jl:384
 in require at /Users/viral/Desktop/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib

You probably have a dirty or pinned dependency? What does Pkg.status() say?

I only had JuliaParser and Jewel on master, and everything else was clean. I just deleted all the precompiled packages and am trying again.

Deleting all .ji files and doing using Immerse gave this warning that I reported here: GiovineItalia/Gadfly.jl#759

It did work now, but I got a bunch of output on the terminal:

 WARNING: Error in @guarded callback
ERROR: MethodError: `find_inmask` has no method matching find_inmask(::Compose.ImmerseBackend, ::Tuple{Measures.BoundingBox{Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}},Compose.UnitBox{Float64,Float64,Float64,Float64},Compose.IdentityTransform}, ::Compose.Form{Compose.SimplePolygonPrimitive{P<:NTuple{N,Measures.Measure}}}, ::Array{Bool,2})
Closest candidates are:
  find_inmask(::Compose.Backend, ::Any, ::Compose.Form{P<:Compose.CirclePrimitive{P<:NTuple{N,Measures.Measure},M<:Measures.Measure}}, ::Any)
  find_inmask(::Compose.Backend, ::Any, ::Compose.Form{P<:Compose.LinePrimitive{P<:NTuple{N,Measures.Measure}}}, ::Any)
 in select_points at /Users/viral/.julia/v0.4/Immerse/src/select.jl:77
 [inlined code] from /Users/viral/.julia/v0.4/Immerse/src/select.jl:42
 in anonymous at /Users/viral/.julia/v0.4/Gtk/src/base.jl:86
 in mouseup_cb at /Users/viral/.julia/v0.4/Gtk/src/events.jl:177
 in anonymous at /Users/viral/.julia/v0.4/Gtk/src/events.jl:2
 in g_sigatom at /Users/viral/.julia/v0.4/Gtk/src/GLib/signals.jl:168
 in gtk_main at /Users/viral/.julia/v0.4/Gtk/src/events.jl:1
WARNING: Error in @guarded callback
ERROR: MethodError: `find_inmask` has no method matching find_inmask(::Compose.ImmerseBackend, ::Tuple{Measures.BoundingBox{Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}},Compose.UnitBox{Float64,Float64,Float64,Float64},Compose.IdentityTransform}, ::Compose.Form{Compose.SimplePolygonPrimitive{P<:NTuple{N,Measures.Measure}}}, ::Array{Bool,2})
Closest candidates are:
  find_inmask(::Compose.Backend, ::Any, ::Compose.Form{P<:Compose.CirclePrimitive{P<:NTuple{N,Measures.Measure},M<:Measures.Measure}}, ::Any)
  find_inmask(::Compose.Backend, ::Any, ::Compose.Form{P<:Compose.LinePrimitive{P<:NTuple{N,Measures.Measure}}}, ::Any)
 in select_points at /Users/viral/.julia/v0.4/Immerse/src/select.jl:77
 [inlined code] from /Users/viral/.julia/v0.4/Immerse/src/select.jl:42
 in anonymous at /Users/viral/.julia/v0.4/Gtk/src/base.jl:86
 in mouseup_cb at /Users/viral/.julia/v0.4/Gtk/src/events.jl:177
 in anonymous at /Users/viral/.julia/v0.4/Gtk/src/events.jl:2
 in g_sigatom at /Users/viral/.julia/v0.4/Gtk/src/GLib/signals.jl:168
 in gtk_main at /Users/viral/.julia/v0.4/Gtk/src/events.jl:1

GiovineItalia/Gadfly.jl#759 is independent of Immerse: it's from https://github.com/shashi/Patchwork.jl, one of @shashi's DOM/JSON packages, and since this is a Gtk-based package it doesn't use any web-related functionality.

Looks like it was triggered by a mouseup_cb, so it implies you probably didn't see these with using Immerse, but instead must have been triggered by some sequence of commands and mouse clicks. Can you provide a reproducible test case? Otherwise, there's nothing I can do to guess how this happened.

I can reproduce it quite easily, it turns out. I am using the example from the README.

using Immerse, Distributions
X = rand(MultivariateNormal([0.0, 0.0], [1.0 0.5; 0.5 1.0]), 10000)
plot(x=X[1,:], y=X[2,:], Geom.hexbin)

Click the lasso button. Draw a line through the plot, and you get the error.

Great. OK, for lasso, Geom.hexbin isn't yet supported; Geom.point is.

I'll add it to my TODO list.

Thanks! That explains it.

Maybe just make the first example use points in the README so that new users don't stumble upon this?