InfiniteArrays.jl
InfiniteArrays.jl copied to clipboard
Type for `broadcast(-, 1:2:∞, 0.3)` changed in Julia 1.8
# 1.8
julia> broadcast(-, 1:2:∞, 0.3) |> typeof
StepRangeLen{Infinities.Infinity, Float64, Int64, Integer}
# 1.7
julia> broadcast(-, 1:2:∞, 0.3) |> typeof
InfiniteArrays.InfStepRange{Float64, Float64}
This breaks some stuff later:
julia> broadcast(-, 1:2:∞, 0.3)
Error showing value of type StepRangeLen{Infinities.Infinity, Float64, Int64, Integer}:
ERROR: MethodError: no method matching Infinities.Infinity(::Float64)
Closest candidates are:
(::Type{T})(::T) where T<:Number at ~/julia/usr/share/julia/base/boot.jl:772
Infinities.Infinity() at ~/.julia/packages/Infinities/WAhkk/src/Infinities.jl:24
(::Type{T})(::AbstractChar) where T<:Union{AbstractChar, Number} at ~/julia/usr/share/julia/base/char.jl:50
...
Stacktrace:
[1] unsafe_getindex(r::StepRangeLen{Infinities.Infinity, Float64, Int64, Integer}, i::Int64)
@ Base ./range.jl:940
[2] show(io::IOContext{Base.TTY}, r::StepRangeLen{Infinities.Infinity, Float64, Int64, Integer})
@ Base ./range.jl:0
[3] show(io::IOContext{Base.TTY}, #unused#::MIME{Symbol("text/plain")}, r::StepRangeLen{Infinities.Infinity, Float64, Int64, Integer})
...
Maybe something has to be overloaded for StepRangeLen as well?
Is 1.8 close to RC? I tend to wait to RC before making any changes (I was bit once changing + to .+ only to have to change it all back.)
No, not really close, but the process of getting to an RC is done by checking that there aren't a bunch of regressions in package tests so having package authors ensure that their package work on nightly greatly helps with getting an RC earlier since the PkgEval logs will be cleaner.