-
-
Notifications
You must be signed in to change notification settings - Fork 358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: use Requires.jl for backend dependencies #1601
Conversation
At least the performance regression in the first julia> @time using Plots
6.430114 seconds (11.28 M allocations: 622.684 MiB, 7.32% gc time)
julia> @time plot(rand(10))
18.316891 seconds (37.64 M allocations: 1.854 GiB, 7.56% gc time)
julia> @time plot(rand(10))
2.840519 seconds (4.15 M allocations: 209.818 MiB, 3.20% gc time)
julia> @time plot(rand(10))
0.003291 seconds (2.58 k allocations: 150.766 KiB) (There's also a difference between 2nd and 3rd call, which is weird.) |
I'd like to go ahead with this implementation instead of the reorg in #1598. Are there any objections @piever @mkborregaard @apalugniok ? |
I'm fine with this 😄 |
First of all, sorry for being away when such important things are being discussed. I'm just now resurfacing, in fact I'm at JuliaCon at the moment :-) So, sorry for not commenting before the merge. I do whole-heartedly agree with it, though. Amazing work, @daschw , this really does solve some of the big issues we've had, and I suspect that the startup time issue is something that could now be addressed with SnoopCompile? (BTW timings need to be Should we push a version 0.18.0? And - when is the time to start talking in ernest about Plots 1.0? |
To be honest I'd really love to push 0.18.0. I've been waiting for quite some time now. But the tests still fail due to issues in the JuliaImages land - ImageFiltering.jl, I think, but maybe more. I'm not sure if we can tag a new release with failing tests. I opened some small PRs for some JuliaImages packages recently, but I think there are some non-trivial issues that I do not feel compenent enough to resolve and I'm sure Tim Holy has a lot of other stuff to do right now, so I'm not really sure how to proceed. Considering all the complaining on Slack about Plots, it does not really seem like we are ready for a 1.0 release. I really regret now that I did not apply for JuliaCon this year, but I wish you a lot of fun @mkborregaard! |
Yeah, you should have been here! |
Unfortunately it's not about one example, VisualRegressionTests requires Images. |
OK - my suggestion is to run a release with a comment that our test suite is broken by test dependencies but that it does appear to work and is 0.7 compatible - that would make it up to the metadata guys |
do you think there should be two releases - a 0.7 one and a requires one? I do |
it's very late now but i could do the housekeeping in the morning if you agree |
Why two releases? |
I guess for clarity? Don't do too many important changes at once? |
OK, yes, if you volunteer to do it, great! |
Awesome, thanks a lot! |
include(joinpath(@__DIR__, "backends", "gr.jl")) | ||
include(joinpath(@__DIR__, "backends", "web.jl")) | ||
|
||
@require GLVisualize = "4086de5b-f4b6-55f3-abb0-b8c73827585f" include(joinpath(@__DIR__, "backends", "gr.jl")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
..., "backends", "glvisualize.jl"))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh :-O Care to make a PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure, #1660
This is an alternative to #1598 and uses Requires.jl for conditional backend dependencies. Thanks to @piever we can keep the old behaviour of switching backends without calling
import Backend
. This has only been tested for Plotly, GR and PyPlot so far:Comparison
GR
This PR
#1598
Julia 0.6
PyPlot
This PR
#1598
Julia 0.6
I'd go for this version because it does not affect user behaviour.
Also there seems to be quite a regression in the time and memory usage of the first
plot(rand(10))
call from 0.6 to 0.7.