[julia-users] Re: How to fix package after breaking change in 0.4?
Fixed. The issue was that the PQ was being generated based on version, both branches of the conditional that tested against VERSION were being compiled, and I introduced the @compat syntax only in the branch that actually needed it. That meant that the other branch (applicable to 0.3) was failing compile. Sorry for the bother. On Sunday, April 19, 2015 at 6:20:28 PM UTC-7, Seth wrote: > > Sorry about this: please don't disregard. It is possible that the > TypeError here is being generated during compilation, not during execution, > in which case I still need help :) > > > > On Sunday, April 19, 2015 at 4:54:08 PM UTC-7, Seth wrote: >> >> Disregard - this appears to be another issue. Will post separately. >> >> On Sunday, April 19, 2015 at 4:17:42 PM UTC-7, Seth wrote: >>> >>> Thanks, Matt - this is very helpful. >>> >>> I'm running into what a problem with PriorityQueue in Base.Collections, >>> though. I changed >>> >>> PriorityQueue((Float64,Array{Edge,1},Int), Float64) >>> >>> to >>> >>> >>> PriorityQueue(@compat(Tuple{Float64,Array{Edge,1},Int}), Float64) >>> >>> and am getting an error: >>> >>> ERROR: TypeError: apply_type: in PriorityQueue, expected Type{T}, got >>> Tuple{DataType,DataType,DataType} >>> >>> What am I doing wrong? >>> >>> >>> On Sunday, April 19, 2015 at 2:17:26 PM UTC-7, Matt Bauman wrote: I think this is what your after (for Foo = Int and Bar = Float64): julia> Tuple{Int,Float64}[] 0-element Array{Tuple{Int64,Float64},1} julia> push!(ans, (1, 2.)) 1-element Array{Tuple{Int64,Float64},1}: (1,2.0) Documentation is unfortunately still in the process of being updated. Basically, anywhere you had a tuple of types, you now must write `Tuple{Int, Float64}` instead of `(Int, Float64)`. In cases where you had a vararg tuple specification, you now write `Tuple{Int, Vararg{Float64}}` instead of `(Int, Float64...)`. That latter vararg syntax is still up for debate. On the plus side, you no longer need to work around constructing tuples by splatting: (1, (2,3)…) now works as you would expect it to. And there's no longer a strange type/value duality to (). On Sunday, April 19, 2015 at 5:06:00 PM UTC-4, Seth wrote: > > Following up: > > How does one now write > > foo = (Foo, Bar)[] > > ? > > Sorry for all the questions here. I really don't understand the > changes that were made and I'd like to get my package working again as > quickly as possible. > > Are there docs anywhere (written for novices, that is) on what changed > and how to adapt? > > > On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: >> >> That will cause the code to not work on 0.3. To get code that works >> on both 0.3 and 0.4, use the Compat.jl package, and >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, >> edgelist::Vector{@compat(Tuple{T,T})}) >> >> >> On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: >>> >>> >>> Try this: >>> >>> function _make_simple_undirected_graph{T<:Integer}(n::T, >>> edgelist::Vector{Tuple{T,T}}) >>> >>> On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: Could someone please explain what's going on here and what I need to do to fix my package with the latest 0.4 tuple changes? Here's the error (from pkg.julialang.org): ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, expected Type{T}, got Tuple{TypeVar,TypeVar} in include at ./boot.jl:250 in include_from_node1 at ./loading.jl:129 in include at ./boot.jl:250 in include_from_node1 at ./loading.jl:129 in reload_path at ./loading.jl:153 in _require at ./loading.jl:68 in require at ./loading.jl:51 in include at ./boot.jl:250 in include_from_node1 at loading.jl:129 in process_options at ./client.jl:299 in _start at ./client.jl:398 while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in expression starting on line 120 while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in expression starting on line 93 while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in expression starting on line 4 Here's the line in question: function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: Vector{(T,T)}) I confess to not yet fully understanding the new change to tuples, and I'm lost as to how to fix my code to comply with the new rules. Thanks. >>>
[julia-users] Re: How to fix package after breaking change in 0.4?
Sorry about this: please don't disregard. It is possible that the TypeError here is being generated during compilation, not during execution, in which case I still need help :) On Sunday, April 19, 2015 at 4:54:08 PM UTC-7, Seth wrote: > > Disregard - this appears to be another issue. Will post separately. > > On Sunday, April 19, 2015 at 4:17:42 PM UTC-7, Seth wrote: >> >> Thanks, Matt - this is very helpful. >> >> I'm running into what a problem with PriorityQueue in Base.Collections, >> though. I changed >> >> PriorityQueue((Float64,Array{Edge,1},Int), Float64) >> >> to >> >> >> PriorityQueue(@compat(Tuple{Float64,Array{Edge,1},Int}), Float64) >> >> and am getting an error: >> >> ERROR: TypeError: apply_type: in PriorityQueue, expected Type{T}, got >> Tuple{DataType,DataType,DataType} >> >> What am I doing wrong? >> >> >> On Sunday, April 19, 2015 at 2:17:26 PM UTC-7, Matt Bauman wrote: >>> >>> I think this is what your after (for Foo = Int and Bar = Float64): >>> >>> julia> Tuple{Int,Float64}[] >>> 0-element Array{Tuple{Int64,Float64},1} >>> >>> >>> julia> push!(ans, (1, 2.)) >>> 1-element Array{Tuple{Int64,Float64},1}: >>> (1,2.0) >>> >>> Documentation is unfortunately still in the process of being updated. >>> Basically, anywhere you had a tuple of types, you now must write >>> `Tuple{Int, Float64}` instead of `(Int, Float64)`. In cases where you had >>> a vararg tuple specification, you now write `Tuple{Int, Vararg{Float64}}` >>> instead of `(Int, Float64...)`. That latter vararg syntax is still up for >>> debate. >>> >>> On the plus side, you no longer need to work around constructing tuples >>> by splatting: (1, (2,3)…) now works as you would expect it to. And there's >>> no longer a strange type/value duality to (). >>> >>> On Sunday, April 19, 2015 at 5:06:00 PM UTC-4, Seth wrote: Following up: How does one now write foo = (Foo, Bar)[] ? Sorry for all the questions here. I really don't understand the changes that were made and I'd like to get my package working again as quickly as possible. Are there docs anywhere (written for novices, that is) on what changed and how to adapt? On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: > > That will cause the code to not work on 0.3. To get code that works on > both 0.3 and 0.4, use the Compat.jl package, and > > function _make_simple_undirected_graph{T<:Integer}(n::T, > edgelist::Vector{@compat(Tuple{T,T})}) > > > On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: >> >> >> Try this: >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, >> edgelist::Vector{Tuple{T,T}}) >> >> On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: >>> >>> Could someone please explain what's going on here and what I need to >>> do to fix my package with the latest 0.4 tuple changes? >>> >>> Here's the error (from pkg.julialang.org): >>> >>> ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in >>> alias, expected Type{T}, got Tuple{TypeVar,TypeVar} >>> in include at ./boot.jl:250 >>> in include_from_node1 at ./loading.jl:129 >>> in include at ./boot.jl:250 >>> in include_from_node1 at ./loading.jl:129 >>> in reload_path at ./loading.jl:153 >>> in _require at ./loading.jl:68 >>> in require at ./loading.jl:51 >>> in include at ./boot.jl:250 >>> in include_from_node1 at loading.jl:129 >>> in process_options at ./client.jl:299 >>> in _start at ./client.jl:398 >>> while loading >>> /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in >>> expression starting on line 120 >>> while loading >>> /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in >>> expression starting on line 93 >>> while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in >>> expression starting on line 4 >>> >>> >>> Here's the line in question: >>> >>> function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: >>> Vector{(T,T)}) >>> >>> I confess to not yet fully understanding the new change to tuples, >>> and I'm lost as to how to fix my code to comply with the new rules. >>> >>> Thanks. >>> >>
[julia-users] Re: How to fix package after breaking change in 0.4?
Disregard - this appears to be another issue. Will post separately. On Sunday, April 19, 2015 at 4:17:42 PM UTC-7, Seth wrote: > > Thanks, Matt - this is very helpful. > > I'm running into what a problem with PriorityQueue in Base.Collections, > though. I changed > > PriorityQueue((Float64,Array{Edge,1},Int), Float64) > > to > > > PriorityQueue(@compat(Tuple{Float64,Array{Edge,1},Int}), Float64) > > and am getting an error: > > ERROR: TypeError: apply_type: in PriorityQueue, expected Type{T}, got > Tuple{DataType,DataType,DataType} > > What am I doing wrong? > > > On Sunday, April 19, 2015 at 2:17:26 PM UTC-7, Matt Bauman wrote: >> >> I think this is what your after (for Foo = Int and Bar = Float64): >> >> julia> Tuple{Int,Float64}[] >> 0-element Array{Tuple{Int64,Float64},1} >> >> >> julia> push!(ans, (1, 2.)) >> 1-element Array{Tuple{Int64,Float64},1}: >> (1,2.0) >> >> Documentation is unfortunately still in the process of being updated. >> Basically, anywhere you had a tuple of types, you now must write >> `Tuple{Int, Float64}` instead of `(Int, Float64)`. In cases where you had >> a vararg tuple specification, you now write `Tuple{Int, Vararg{Float64}}` >> instead of `(Int, Float64...)`. That latter vararg syntax is still up for >> debate. >> >> On the plus side, you no longer need to work around constructing tuples >> by splatting: (1, (2,3)…) now works as you would expect it to. And there's >> no longer a strange type/value duality to (). >> >> On Sunday, April 19, 2015 at 5:06:00 PM UTC-4, Seth wrote: >>> >>> Following up: >>> >>> How does one now write >>> >>> foo = (Foo, Bar)[] >>> >>> ? >>> >>> Sorry for all the questions here. I really don't understand the changes >>> that were made and I'd like to get my package working again as quickly as >>> possible. >>> >>> Are there docs anywhere (written for novices, that is) on what changed >>> and how to adapt? >>> >>> >>> On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: That will cause the code to not work on 0.3. To get code that works on both 0.3 and 0.4, use the Compat.jl package, and function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist::Vector{@compat(Tuple{T,T})}) On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: > > > Try this: > > function _make_simple_undirected_graph{T<:Integer}(n::T, > edgelist::Vector{Tuple{T,T}}) > > On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: >> >> Could someone please explain what's going on here and what I need to >> do to fix my package with the latest 0.4 tuple changes? >> >> Here's the error (from pkg.julialang.org): >> >> ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, >> expected Type{T}, got Tuple{TypeVar,TypeVar} >> in include at ./boot.jl:250 >> in include_from_node1 at ./loading.jl:129 >> in include at ./boot.jl:250 >> in include_from_node1 at ./loading.jl:129 >> in reload_path at ./loading.jl:153 >> in _require at ./loading.jl:68 >> in require at ./loading.jl:51 >> in include at ./boot.jl:250 >> in include_from_node1 at loading.jl:129 >> in process_options at ./client.jl:299 >> in _start at ./client.jl:398 >> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, >> in expression starting on line 120 >> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, >> in expression starting on line 93 >> while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in >> expression starting on line 4 >> >> >> Here's the line in question: >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: >> Vector{(T,T)}) >> >> I confess to not yet fully understanding the new change to tuples, >> and I'm lost as to how to fix my code to comply with the new rules. >> >> Thanks. >> >
[julia-users] Re: How to fix package after breaking change in 0.4?
Thanks, Matt - this is very helpful. I'm running into what a problem with PriorityQueue in Base.Collections, though. I changed PriorityQueue((Float64,Array{Edge,1},Int), Float64) to PriorityQueue(@compat(Tuple{Float64,Array{Edge,1},Int}), Float64) and am getting an error: ERROR: TypeError: apply_type: in PriorityQueue, expected Type{T}, got Tuple{ DataType,DataType,DataType} What am I doing wrong? On Sunday, April 19, 2015 at 2:17:26 PM UTC-7, Matt Bauman wrote: > > I think this is what your after (for Foo = Int and Bar = Float64): > > julia> Tuple{Int,Float64}[] > 0-element Array{Tuple{Int64,Float64},1} > > > julia> push!(ans, (1, 2.)) > 1-element Array{Tuple{Int64,Float64},1}: > (1,2.0) > > Documentation is unfortunately still in the process of being updated. > Basically, anywhere you had a tuple of types, you now must write > `Tuple{Int, Float64}` instead of `(Int, Float64)`. In cases where you had > a vararg tuple specification, you now write `Tuple{Int, Vararg{Float64}}` > instead of `(Int, Float64...)`. That latter vararg syntax is still up for > debate. > > On the plus side, you no longer need to work around constructing tuples by > splatting: (1, (2,3)…) now works as you would expect it to. And there's no > longer a strange type/value duality to (). > > On Sunday, April 19, 2015 at 5:06:00 PM UTC-4, Seth wrote: >> >> Following up: >> >> How does one now write >> >> foo = (Foo, Bar)[] >> >> ? >> >> Sorry for all the questions here. I really don't understand the changes >> that were made and I'd like to get my package working again as quickly as >> possible. >> >> Are there docs anywhere (written for novices, that is) on what changed >> and how to adapt? >> >> >> On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: >>> >>> That will cause the code to not work on 0.3. To get code that works on >>> both 0.3 and 0.4, use the Compat.jl package, and >>> >>> function _make_simple_undirected_graph{T<:Integer}(n::T, >>> edgelist::Vector{@compat(Tuple{T,T})}) >>> >>> >>> On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: Try this: function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist::Vector{Tuple{T,T}}) On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: > > Could someone please explain what's going on here and what I need to > do to fix my package with the latest 0.4 tuple changes? > > Here's the error (from pkg.julialang.org): > > ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, > expected Type{T}, got Tuple{TypeVar,TypeVar} > in include at ./boot.jl:250 > in include_from_node1 at ./loading.jl:129 > in include at ./boot.jl:250 > in include_from_node1 at ./loading.jl:129 > in reload_path at ./loading.jl:153 > in _require at ./loading.jl:68 > in require at ./loading.jl:51 > in include at ./boot.jl:250 > in include_from_node1 at loading.jl:129 > in process_options at ./client.jl:299 > in _start at ./client.jl:398 > while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, > in expression starting on line 120 > while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, > in expression starting on line 93 > while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in > expression starting on line 4 > > > Here's the line in question: > > function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: > Vector{(T,T)}) > > I confess to not yet fully understanding the new change to tuples, and > I'm lost as to how to fix my code to comply with the new rules. > > Thanks. >
[julia-users] Re: How to fix package after breaking change in 0.4?
I think this is what your after (for Foo = Int and Bar = Float64): julia> Tuple{Int,Float64}[] 0-element Array{Tuple{Int64,Float64},1} julia> push!(ans, (1, 2.)) 1-element Array{Tuple{Int64,Float64},1}: (1,2.0) Documentation is unfortunately still in the process of being updated. Basically, anywhere you had a tuple of types, you now must write `Tuple{Int, Float64}` instead of `(Int, Float64)`. In cases where you had a vararg tuple specification, you now write `Tuple{Int, Vararg{Float64}}` instead of `(Int, Float64...)`. That latter vararg syntax is still up for debate. On the plus side, you no longer need to work around constructing tuples by splatting: (1, (2,3)…) now works as you would expect it to. And there's no longer a strange type/value duality to (). On Sunday, April 19, 2015 at 5:06:00 PM UTC-4, Seth wrote: > > Following up: > > How does one now write > > foo = (Foo, Bar)[] > > ? > > Sorry for all the questions here. I really don't understand the changes > that were made and I'd like to get my package working again as quickly as > possible. > > Are there docs anywhere (written for novices, that is) on what changed and > how to adapt? > > > On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: >> >> That will cause the code to not work on 0.3. To get code that works on >> both 0.3 and 0.4, use the Compat.jl package, and >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, >> edgelist::Vector{@compat(Tuple{T,T})}) >> >> >> On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: >>> >>> >>> Try this: >>> >>> function _make_simple_undirected_graph{T<:Integer}(n::T, >>> edgelist::Vector{Tuple{T,T}}) >>> >>> On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: Could someone please explain what's going on here and what I need to do to fix my package with the latest 0.4 tuple changes? Here's the error (from pkg.julialang.org): ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, expected Type{T}, got Tuple{TypeVar,TypeVar} in include at ./boot.jl:250 in include_from_node1 at ./loading.jl:129 in include at ./boot.jl:250 in include_from_node1 at ./loading.jl:129 in reload_path at ./loading.jl:153 in _require at ./loading.jl:68 in require at ./loading.jl:51 in include at ./boot.jl:250 in include_from_node1 at loading.jl:129 in process_options at ./client.jl:299 in _start at ./client.jl:398 while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in expression starting on line 120 while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in expression starting on line 93 while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in expression starting on line 4 Here's the line in question: function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: Vector{(T,T)}) I confess to not yet fully understanding the new change to tuples, and I'm lost as to how to fix my code to comply with the new rules. Thanks. >>>
[julia-users] Re: How to fix package after breaking change in 0.4?
Following up: How does one now write foo = (Foo, Bar)[] ? Sorry for all the questions here. I really don't understand the changes that were made and I'd like to get my package working again as quickly as possible. Are there docs anywhere (written for novices, that is) on what changed and how to adapt? On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: > > That will cause the code to not work on 0.3. To get code that works on > both 0.3 and 0.4, use the Compat.jl package, and > > function _make_simple_undirected_graph{T<:Integer}(n::T, > edgelist::Vector{@compat(Tuple{T,T})}) > > > On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: >> >> >> Try this: >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, >> edgelist::Vector{Tuple{T,T}}) >> >> On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: >>> >>> Could someone please explain what's going on here and what I need to do >>> to fix my package with the latest 0.4 tuple changes? >>> >>> Here's the error (from pkg.julialang.org): >>> >>> ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, >>> expected Type{T}, got Tuple{TypeVar,TypeVar} >>> in include at ./boot.jl:250 >>> in include_from_node1 at ./loading.jl:129 >>> in include at ./boot.jl:250 >>> in include_from_node1 at ./loading.jl:129 >>> in reload_path at ./loading.jl:153 >>> in _require at ./loading.jl:68 >>> in require at ./loading.jl:51 >>> in include at ./boot.jl:250 >>> in include_from_node1 at loading.jl:129 >>> in process_options at ./client.jl:299 >>> in _start at ./client.jl:398 >>> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in >>> expression starting on line 120 >>> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in >>> expression starting on line 93 >>> while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in >>> expression starting on line 4 >>> >>> >>> Here's the line in question: >>> >>> function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: >>> Vector{(T,T)}) >>> >>> I confess to not yet fully understanding the new change to tuples, and >>> I'm lost as to how to fix my code to comply with the new rules. >>> >>> Thanks. >>> >>
[julia-users] Re: How to fix package after breaking change in 0.4?
Sorry - please disregard. I managed to omit the Vector{} in my paste. It's working correctly. Thank you. On Sunday, April 19, 2015 at 12:44:38 PM UTC-7, Seth wrote: > > This isn't a drop-in replacement: > > ERROR: LoadError: MethodError: `_make_simple_undirected_graph` has no > method matching _make_simple_undirected_graph(::Int64, ::Array{(Int64, > Int64),1}) > > I'm calling it like so: > > function PetersenGraph() > e = [ > (1, 2), (1, 5), (1, 6), > (2, 3), (2, 7), > (3, 4), (3, 8), > (4, 5), (4, 9), > (5, 10), > (6, 8), (6, 9), > (7, 9), (7, 10), > (8, 10) > ] > return _make_simple_undirected_graph(10,e) > end > > > > > On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: >> >> That will cause the code to not work on 0.3. To get code that works on >> both 0.3 and 0.4, use the Compat.jl package, and >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, >> edgelist::Vector{@compat(Tuple{T,T})}) >> >> >> On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: >>> >>> >>> Try this: >>> >>> function _make_simple_undirected_graph{T<:Integer}(n::T, >>> edgelist::Vector{Tuple{T,T}}) >>> >>> On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: Could someone please explain what's going on here and what I need to do to fix my package with the latest 0.4 tuple changes? Here's the error (from pkg.julialang.org): ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, expected Type{T}, got Tuple{TypeVar,TypeVar} in include at ./boot.jl:250 in include_from_node1 at ./loading.jl:129 in include at ./boot.jl:250 in include_from_node1 at ./loading.jl:129 in reload_path at ./loading.jl:153 in _require at ./loading.jl:68 in require at ./loading.jl:51 in include at ./boot.jl:250 in include_from_node1 at loading.jl:129 in process_options at ./client.jl:299 in _start at ./client.jl:398 while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in expression starting on line 120 while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in expression starting on line 93 while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in expression starting on line 4 Here's the line in question: function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: Vector{(T,T)}) I confess to not yet fully understanding the new change to tuples, and I'm lost as to how to fix my code to comply with the new rules. Thanks. >>>
[julia-users] Re: How to fix package after breaking change in 0.4?
This isn't a drop-in replacement: ERROR: LoadError: MethodError: `_make_simple_undirected_graph` has no method matching _make_simple_undirected_graph(::Int64, ::Array{(Int64,Int64 ),1}) I'm calling it like so: function PetersenGraph() e = [ (1, 2), (1, 5), (1, 6), (2, 3), (2, 7), (3, 4), (3, 8), (4, 5), (4, 9), (5, 10), (6, 8), (6, 9), (7, 9), (7, 10), (8, 10) ] return _make_simple_undirected_graph(10,e) end On Sunday, April 19, 2015 at 12:09:27 PM UTC-7, Tony Kelman wrote: > > That will cause the code to not work on 0.3. To get code that works on > both 0.3 and 0.4, use the Compat.jl package, and > > function _make_simple_undirected_graph{T<:Integer}(n::T, > edgelist::Vector{@compat(Tuple{T,T})}) > > > On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: >> >> >> Try this: >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, >> edgelist::Vector{Tuple{T,T}}) >> >> On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: >>> >>> Could someone please explain what's going on here and what I need to do >>> to fix my package with the latest 0.4 tuple changes? >>> >>> Here's the error (from pkg.julialang.org): >>> >>> ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, >>> expected Type{T}, got Tuple{TypeVar,TypeVar} >>> in include at ./boot.jl:250 >>> in include_from_node1 at ./loading.jl:129 >>> in include at ./boot.jl:250 >>> in include_from_node1 at ./loading.jl:129 >>> in reload_path at ./loading.jl:153 >>> in _require at ./loading.jl:68 >>> in require at ./loading.jl:51 >>> in include at ./boot.jl:250 >>> in include_from_node1 at loading.jl:129 >>> in process_options at ./client.jl:299 >>> in _start at ./client.jl:398 >>> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in >>> expression starting on line 120 >>> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in >>> expression starting on line 93 >>> while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in >>> expression starting on line 4 >>> >>> >>> Here's the line in question: >>> >>> function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist:: >>> Vector{(T,T)}) >>> >>> I confess to not yet fully understanding the new change to tuples, and >>> I'm lost as to how to fix my code to comply with the new rules. >>> >>> Thanks. >>> >>
[julia-users] Re: How to fix package after breaking change in 0.4?
That will cause the code to not work on 0.3. To get code that works on both 0.3 and 0.4, use the Compat.jl package, and function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist::Vector{@compat(Tuple{T,T})}) On Sunday, April 19, 2015 at 11:58:42 AM UTC-7, Avik Sengupta wrote: > > > Try this: > > function _make_simple_undirected_graph{T<:Integer}(n::T, > edgelist::Vector{Tuple{T,T}}) > > On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: >> >> Could someone please explain what's going on here and what I need to do >> to fix my package with the latest 0.4 tuple changes? >> >> Here's the error (from pkg.julialang.org): >> >> ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, >> expected Type{T}, got Tuple{TypeVar,TypeVar} >> in include at ./boot.jl:250 >> in include_from_node1 at ./loading.jl:129 >> in include at ./boot.jl:250 >> in include_from_node1 at ./loading.jl:129 >> in reload_path at ./loading.jl:153 >> in _require at ./loading.jl:68 >> in require at ./loading.jl:51 >> in include at ./boot.jl:250 >> in include_from_node1 at loading.jl:129 >> in process_options at ./client.jl:299 >> in _start at ./client.jl:398 >> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in >> expression starting on line 120 >> while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in >> expression starting on line 93 >> while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in expression >> starting on line 4 >> >> >> Here's the line in question: >> >> function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist::Vector >> {(T,T)}) >> >> I confess to not yet fully understanding the new change to tuples, and >> I'm lost as to how to fix my code to comply with the new rules. >> >> Thanks. >> >
[julia-users] Re: How to fix package after breaking change in 0.4?
Try this: function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist::Vector{Tuple{T,T}}) On Monday, 20 April 2015 00:18:33 UTC+5:30, Seth wrote: > > Could someone please explain what's going on here and what I need to do to > fix my package with the latest 0.4 tuple changes? > > Here's the error (from pkg.julialang.org): > > ERROR: LoadError: LoadError: LoadError: TypeError: apply_type: in alias, > expected Type{T}, got Tuple{TypeVar,TypeVar} > in include at ./boot.jl:250 > in include_from_node1 at ./loading.jl:129 > in include at ./boot.jl:250 > in include_from_node1 at ./loading.jl:129 > in reload_path at ./loading.jl:153 > in _require at ./loading.jl:68 > in require at ./loading.jl:51 > in include at ./boot.jl:250 > in include_from_node1 at loading.jl:129 > in process_options at ./client.jl:299 > in _start at ./client.jl:398 > while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/smallgraphs.jl, in > expression starting on line 120 > while loading /home/vagrant/testpkg/v0.4/LightGraphs/src/LightGraphs.jl, in > expression starting on line 93 > while loading /vagrant/nightlyAL/PKGEVAL_LightGraphs_using.jl, in expression > starting on line 4 > > > Here's the line in question: > > function _make_simple_undirected_graph{T<:Integer}(n::T, edgelist::Vector > {(T,T)}) > > I confess to not yet fully understanding the new change to tuples, and I'm > lost as to how to fix my code to comply with the new rules. > > Thanks. >