Hello, 

I didn't realize NamedArrays was broken on release-0.3, because of my lack 
of travis skills.  I had a different 0.4 incompatibility: 
"(Dict{K,V})(ks::AbstractArray{K},vs::AbstractArray{V}) 
is deprecated, use (Dict{K,V})(zip(ks,vs)) instead".  Foolishly I replace 
my construct

Dict(keys, values)

by 

@Compat.dict(zip(keys, values))

but that breaks on release-0.3. 

Is there a recommended way to solve this incompatibility?

Cheers, 

---david



On Saturday, October 11, 2014 8:17:38 PM UTC+2, Stefan Karpinski wrote:
>
> This announcement is primarily for Julia package developers. Since there 
> is already some syntax breakage between Julia v0.3 and v0.4, and there will 
> be more, it's increasingly tricky to make packages to work on both 
> versions. The Compat package <https://github.com/JuliaLang/Compat.jl> was 
> just created to help: it provides compatibility constructs that will work 
> in both versions without warnings.
>
> For example, in v0.3 you could create a dictionary like this:
>
> julia> [ :foo => 1, :bar => 2 ]
> Dict{Symbol,Int64} with 2 entries:
>   :bar => 2
>   :foo => 1
>
>
> This still works in v0.4 but it produces a warning. The new syntax is this:
>
> julia> Dict(:foo => 1, :bar => 2)
> Dict{Symbol,Int64} with 2 entries:
>   :bar => 2
>   :foo => 1
>
>
> However, this newer syntax won't work in v0.3, so you're a bit stuck if 
> you want to write a dictionary literal in a way that will work in both v0.3 
> and v0.4 without producing a warning. Compat to the rescue!:
>
> julia> using Compat
>
> julia> @Compat.Dict(:foo => 2, :bar => 2)
> Dict{Symbol,Int64} with 2 entries:
>   :bar => 2
>   :foo => 2
>
>
> This works with no warning on both v0.3 and v0.4. We've intentionally not 
> exported the Dict macro so that the usage needs to be prefixed with 
> "Compat.", which will make usages of the compatibility workarounds easier 
> to find and remove later when they're no longer necessary.
>
> Currently, there's only a couple of definitions in the Compat package, but 
> if you have your own hacks that have helped make it easier to write 
> cross-version package code, please contribute them and we can build up a 
> nice little collection.
>

Reply via email to