Julia 1.0 support just landed on Gadfly master

package
announcement
plotting
gadfly

#1

Hi everyone,

I’m pleased to announce that Julia 1.0 support just landed on Gadfly.jl :sparkles:. Gadfly is the native Julia grammar of graphics plotting library that is particularly well suited to 2D statistical plots :chart_with_upwards_trend::bar_chart:, but can do a lot more. We have a nice gallery of what’s possible here: http://gadflyjl.org/latest/gallery/geometries.html

It would be great for everyone who uses Gadfly and wants to help us battle test our 1.0 support to give the master branch a spin. On Julia 1.0 it should be as easy as

julia> using Pkg
julia> pkg"add Compose#master"
julia> pkg"add Gadfly#master"

I hope you enjoy and please report any bugs to our issues page

Finally, I would like to especially thank @bjarthur, @Mattriks, @nalimilan, @andreasnoack and many others for the herculean effort to get the Gadfly stack working on Julia 1.0.


#2

related: Beta Gadfly available for 1.0


#3

Shoot, I didn’t realize that Ben already posted about it. Sorry for the spam.


#4

Orly?, because I have errors on trying to compile the thing. Pretty miserable right now.

julia> using Gadfly
[ Info: Precompiling Gadfly [c91e804a-d5a3-530f-b6f0-dfbca275c004]
ERROR: LoadError: syntax: try without catch or finally
Stacktrace:
 [1] include at .\boot.jl:317 [inlined]
 [2] include_relative(::Module, ::String) at .\loading.jl:1038
 [3] include(::Module, ::String) at .\sysimg.jl:29
 [4] top-level scope at none:2
 [5] eval at .\boot.jl:319 [inlined]
 [6] eval(::Expr) at .\client.jl:389
 [7] top-level scope at .\none:3
in expression starting at C:\Users\u\.julia\packages\Compose\y7cU7\src\Co
mpose.jl:207
ERROR: LoadError: Failed to precompile Compose [a81c6b42-2e10-5240-aca2-a61377ec
d94b] to C:\Users\u\.julia\compiled\v1.0\Compose\sbiEw.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] macro expansion at .\logging.jl:313 [inlined]
 [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1184
 [4] _require(::Base.PkgId) at .\logging.jl:311
 [5] require(::Base.PkgId) at .\loading.jl:852
 [6] macro expansion at .\logging.jl:311 [inlined]
 [7] require(::Module, ::Symbol) at .\loading.jl:834
 [8] include at .\boot.jl:317 [inlined]
 [9] include_relative(::Module, ::String) at .\loading.jl:1038
 [10] include(::Module, ::String) at .\sysimg.jl:29
 [11] top-level scope at none:2
 [12] eval at .\boot.jl:319 [inlined]
 [13] eval(::Expr) at .\client.jl:389
 [14] top-level scope at .\none:3
in expression starting at C:\Users\u\.julia\packages\Gadfly\p8TXc\src\Gad
fly.jl:7
ERROR: Failed to precompile Gadfly [c91e804a-d5a3-530f-b6f0-dfbca275c004] to C:\
Users\u\.julia\compiled\v1.0\Gadfly\DvECm.ji.
Stacktrace:
 [1] error(::String) at .\error.jl:33
 [2] macro expansion at .\logging.jl:313 [inlined]
 [3] compilecache(::Base.PkgId, ::String) at .\loading.jl:1184
 [4] _require(::Base.PkgId) at .\logging.jl:311
 [5] require(::Base.PkgId) at .\loading.jl:852
 [6] macro expansion at .\logging.jl:311 [inlined]
 [7] require(::Module, ::Symbol) at .\loading.jl:834

#5

I just had the same error earlier today, the fix was to add Compose at master, i.e. ]add Compose#master


#6

BTW, an occasion to say a big thanks, Gadfly is so far the only plotting package besides UnicodePlots that I’m able to install on my system!!


#7

As this error suggests, the problem is with Compose’s precompilation since the latest tagged version doesn’t support 1.0.

I mention in the OP above that you need both Compose and Gadfly master for this to work for now until we tag both packages.


#8

Indeed, but I added Compose#master and then Gadfly#master.
Then I see this error.


#9

That shouldn’t be happening because that error is from an old version of Compose. Maybe it’s still loading the old version somehow?

Can you give the output of Pkg.status()?


#10

With the following from Pkg.status()

...
  [a81c6b42] Compose v0.6.1+ #master (https://github.com/GiovineItalia/Compose.jl.git)
...
  [c91e804a] Gadfly v0.8.0+ #master (https://github.com/GiovineItalia/Gadfly.jl.git)
  ...

I’m getting error regarding No deps.jl file could be found. Please try running Pkg.build("Arpack"). And Arpack won’t build either.


#11

Can you try to run:

using Pkg
pkg"dev Compose"
pkg"dev Gadfly"

It might be that it’s not grabbing the lastest versions of master.


#12

or pkg"resolve"


#13

Still the same error with Arpack

Error: Error building `Arpack`: 
│ ┌ Warning: Could not extract the platform key of https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz; continuing...

#14

It is working fine on my Win10 64bit computer with Julia 1.0. I followed the following steps

  1. ] add Compose#master
  2. add Gadfly#master
  3. build Gadfly
    4 .using Gadfly

#15

I’m on x86 linux, maybe that makes a difference

(v1.0) pkg> build Gadfly
  Building Arpack ──────────→ `~/.julia/packages/Arpack/WP3ru/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ┌ Warning: Could not extract the platform key of https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz; continuing...
│ └ @ BinaryProvider ~/.julia/packages/BinaryProvider/UTYxu/src/Prefix.jl:224
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/akako/.julia/packages/Arpack/WP3ru/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/akako/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:409
│  [2] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/akako/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:396
│  [3] top-level scope at none:0
│  [4] include(::String) at ./client.jl:388
│  [5] top-level scope at none:0
│ in expression starting at /home/akako/.julia/packages/Arpack/WP3ru/deps/build.jl:40
└ @ Pkg.Operations /build/julia/src/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

I think this is the bug https://bugs.archlinux.org/task/59741 , and solution is probably use the official binary.
Also here https://github.com/JuliaLinearAlgebra/Arpack.jl/issues/33


#16

That’s almost certainly https://github.com/JuliaLinearAlgebra/Arpack.jl/issues/5 that you’re running into (basically the new BinaryBuilder seems to take the very annoying position that Julia packages with binary dependencies should never use OS-provided libraries). That thread has some workarounds; I’m working around it currently by literally copying libarpack.so.2.0.0 into the appropriate location in the Arpack.jl deps folder.


#17

That’s annoying but okay let’s wait for an official fix.