Skip to content
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

0.6.3 doesn't like Tuple{Int} anymore for overloads #27361

Closed
SimonDanisch opened this issue Jun 1, 2018 · 12 comments
Closed

0.6.3 doesn't like Tuple{Int} anymore for overloads #27361

SimonDanisch opened this issue Jun 1, 2018 · 12 comments
Assignees
Labels
regression Regression in behavior compared to a previous version

Comments

@SimonDanisch
Copy link
Contributor

SimonDanisch commented Jun 1, 2018

Julia 0.6.2

julia> test(::M) where M <: Tuple{2} = nothing
julia> test(::M) where M <: Tuple{3} = nothing

Julia 0.6.3

julia> test(::M) where M <: Tuple{2} = nothing
julia> test(::M) where M <: Tuple{3} = nothing
ERROR: TypeError: UnionAll: expected Type, got Int64
@jaakkor2
Copy link
Contributor

jaakkor2 commented Jun 1, 2018

Same error for 0.7.0-alpha.0

@tknopp
Copy link
Contributor

tknopp commented Jun 1, 2018

@SimonDanisch: Despite the fact that behavior changed, does it actually make sense what you defined. What is Tuple{3}?
Isn't what you want this

julia> test(::M) where M <: NTuple{2,T} where T = nothing
julia> test(::M) where M <: NTuple{3,T} where T = nothing

Or am I on a completely wrong track here?

@SimonDanisch
Copy link
Contributor Author

Well, it's just a minimal working example ;) The original bug is more of that nature (using StaticArrays).

@SimonDanisch
Copy link
Contributor Author

Original issue: JuliaGL/GLAbstraction.jl#91

@tknopp
Copy link
Contributor

tknopp commented Jun 1, 2018

I see

@oschulz
Copy link
Contributor

oschulz commented Jun 2, 2018

Sure, this can't be the (new) expected behaviour?

@skleinbo
Copy link
Contributor

skleinbo commented Jun 3, 2018

I did a bisect from v0.6.2 -- v0.6.3. Commit 7a836d1 introduced the behavior.

@JeffBezanson
Copy link
Member

Thanks for the bisect, very helpful!

@JeffBezanson JeffBezanson self-assigned this Jun 3, 2018
@JeffBezanson JeffBezanson added the regression Regression in behavior compared to a previous version label Jun 3, 2018
@SimonDanisch
Copy link
Contributor Author

Can we get 0.6.4 or have the binaries of 0.6.2 on the julia page to download again? This problem crops up in more places, and some people installed 0.6.3 without being able to go back to 0.6.2....
cc: @ararslan

@ararslan
Copy link
Member

ararslan commented Jun 4, 2018

The 0.6.2 binaries are still available, they just aren't linked on the page. You can copy the 0.6.3 links and replace 3 with 2 and it should work fine.

I might do a 0.6.4 depending on the timeline for 0.7.

@oschulz
Copy link
Contributor

oschulz commented Jun 5, 2018

I'd be very much in favor of a quick 0.6.4, too. Otherwise, we may have to implement workarounds in packages. I know 0.7 is close (and I look forward to it very much), but, the ecosystem is, IMHO, far from ready for 0.7 - so it'll be a few months before it can be used productively. Besides, this issue is kinda serious, and it would be a shame to have it in the last 0.6 version. :-)

@tknopp
Copy link
Contributor

tknopp commented Jun 5, 2018

I have to agree with @oschulz here. We have seen it regularly during the transition from 0.1 to 0.6 that package ecosystem got unstable when a new Julia release is close. For those doing serious work with Julia this is not satisfying.

In this particular case there are two quick possibilities:

  • withdraw 0.6.3 and change the link on the website to 0.6.2
  • make a quick 0.6.4

But letting a broken 0.6.3 be the latest "stable" release is the worst option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression Regression in behavior compared to a previous version
Projects
None yet
Development

No branches or pull requests

7 participants