JuliaCollections / FunctionalCollections.jl

Functional and persistent data structures for Julia
MIT License
123 stars 34 forks source link

RFC: syntax update #29

Closed felixrehren closed 7 years ago

felixrehren commented 7 years ago

Almost compatible with 0.5.0, except some problems marked in the test suite. Not sure what to do here:

julia> PersistentSet(Integer[1,2,3])
ERROR: MethodError: Cannot `convert` an object of type Pair{Int64,Void} to an object of type Pair{Integer,Void}

or here:

julia> append(vec(1:31), 32) == vec(1:32)
true
julia> @test append(vec(1:31), 32) == vec(1:32)
[...] ERROR: MethodError: no method matching unsafe_length(::Int64)
felixrehren commented 7 years ago

Travis passes for nightly, runs into the above errors for 0.5.0, and fails on 0.4.0 because @testset is not defined there

felixrehren commented 7 years ago

Would love help making this functional. Ping @shashi as the last person to commit here

I can unwind parts of this PR if too aggressive?

tkelman commented 7 years ago

You could either depend on BaseTestNext on 0.4, or bump the minimum Julia version to 0.5.

felixrehren commented 7 years ago

Thanks @tkelman. I took the easy way out, requiring 0.5 and avoiding the tests mentioned above that were breaking < v"0.6". Hope build is successful now ...

shashi commented 7 years ago

Thanks @felixrehren! This is a great improvement.

tkelman commented 7 years ago

Since this is almost a complete rewrite, you should probably double-check that it won't break Arbiter or Patchwork, its reverse-dependencies.

shashi commented 7 years ago

Not much has been rewritten, but code has been moved around. Just ran tests for Patchwork and Arbiter on 0.5 - all green.