[julia-users] Re: How to fix package after breaking change in 0.4?

2015-04-19 Thread Seth
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?

2015-04-19 Thread Matt Bauman
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?

2015-04-19 Thread Avik Sengupta

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?

2015-04-19 Thread Seth
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?

2015-04-19 Thread Tony Kelman
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?

2015-04-19 Thread Seth
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?

2015-04-19 Thread Seth
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?

2015-04-19 Thread Seth
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.