JuliaGraphics / Winston.jl

2D plotting for Julia
MIT License
171 stars 55 forks source link

Updates for Julia 0.6 #277

Closed ararslan closed 7 years ago

ararslan commented 7 years ago

This PR improves support for Julia 0.6, drops support for 0.4 for ease of maintainability, and removes vestiges of old and unnecessary code.

Fixes #246 Fixes #241 Fixes #205 Fixes #204 Fixes #192

ararslan commented 7 years ago

There's more updating to be done (hence WIP), but currently the tests are failing on 0.6 because Tk, one of the dependencies, does not yet support 0.6.

Edit: It does now. 🙂

ararslan commented 7 years ago

Here's something weird: If you run the following on Julia 0.5, you get a plot, and if you run it on 0.6, you get a message saying, "Winston: no data in range" with a blank plot window.

p = FramedPlot()
x = linspace(0, 3Ï€, 100)
add(p, Curve(x, cos.(x)))

The same is true even for simpler x, e.g. x = [1, 2, 3, 4].

I've been banging my head against this but haven't been able to pinpoint why there would be a difference in behavior between 0.5 and 0.6. @timholy, do you by chance have any insight? (I ask you in particular because you know the subtleties between 0.5 and 0.6 well and are a top contributor here.)

maxruby commented 7 years ago

No problem. I deleted the comment, and I will not file any issues. Thanks for your time.

timholy commented 7 years ago

julia-0.5:

julia> min(NaN, 0.0)
0.0

julia-0.6:

julia> min(NaN, 0.0)
NaN

Start poking around https://github.com/nolta/Winston.jl/blob/8b5e10e1a5916d603dd1c8e50ece9e2897d82a30/src/Winston.jl#L160-L173

ararslan commented 7 years ago

Thanks so much @timholy! I had no idea that min(NaN, 0.0) changed.

ararslan commented 7 years ago

Looks like there's more Tk fixing to be done...