Skip to content

using TriangularSolve fails on Julia 1.8.0-beta1 #20

@cscherrer

Description

@cscherrer

On this system

julia> versioninfo()
Julia Version 1.8.0-beta1
Commit 7b711ce699 (2022-02-23 15:09 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: 32 × AMD Ryzen Threadripper 2950X 16-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, znver1)
  Threads: 1 on 32 virtual cores
Environment:
  JULIA_EDITOR = code
  JULIA_NUM_THREADS = 

I get

julia> using TriangularSolve
[ Info: Precompiling TriangularSolve [d5829a12-d9aa-46ab-831f-fb7c9ab06edf]
ERROR: LoadError: DivideError: integer division error
Stacktrace:
  [1] vdiv
    @ ~/.julia/packages/VectorizationBase/yqq6V/src/llvm_intrin/binary_ops.jl:65 [inlined]
  [2] vdiv
    @ ~/.julia/packages/VectorizationBase/yqq6V/src/static.jl:56 [inlined]
  [3] vcld
    @ ~/.julia/packages/VectorizationBase/yqq6V/src/llvm_intrin/binary_ops.jl:79 [inlined]
  [4] rdiv_block_MandN!(spc::LayoutPointers.StridedPointer{Float64, 2, 1, 0, (1, 2), Tuple{Static.StaticInt{8}, Int64}, Tuple{Static.StaticInt{0}, Static.StaticInt{0}}}, spa::LayoutPointers.StridedPointer{Float64, 2, 1, 0, (1, 2), Tuple{Static.StaticInt{8}, Int64}, Tuple{Static.StaticInt{0}, Static.StaticInt{0}}}, spu::LayoutPointers.StridedPointer{Float64, 2, 1, 0, (1, 2), Tuple{Static.StaticInt{8}, Int64}, Tuple{Static.StaticInt{0}, Static.StaticInt{0}}}, M::Int64, N::Int64, #unused#::Val{false}, #unused#::Static.StaticInt{1})
    @ TriangularSolve ~/git/TriangularSolve.jl/src/TriangularSolve.jl:411
  [5] div_dispatch!(C::Matrix{Float64}, A::Matrix{Float64}, U::Matrix{Float64}, #unused#::Val{false}, #unused#::Val{false})
    @ TriangularSolve ~/git/TriangularSolve.jl/src/TriangularSolve.jl:312
  [6] rdiv!
    @ ~/git/TriangularSolve.jl/src/TriangularSolve.jl:323 [inlined]
  [7] top-level scope
    @ ~/git/TriangularSolve.jl/src/TriangularSolve.jl:542
  [8] include
    @ ./Base.jl:422 [inlined]
  [9] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
    @ Base ./loading.jl:1399
 [10] top-level scope
    @ stdin:1

The problem comes in this section

@static if VERSION >= v"1.8.0-beta1"
  let
    while true
      A = rand(1, 1)
      B = rand(1, 1)
      res = similar(A)
      rdiv!(res, A, UpperTriangular(B))
      rdiv!(res, A, UnitUpperTriangular(B))
      rdiv!(res, A, UpperTriangular(B), Val(false))   # <----- THIS LINE
      rdiv!(res, A, UnitUpperTriangular(B), Val(false))

      __init__()
      ldiv!(res, LowerTriangular(B), A)
      ldiv!(res, UnitLowerTriangular(B), A)
      ldiv!(res, LowerTriangular(B), A, Val(false))
      ldiv!(res, UnitLowerTriangular(B), A, Val(false))
      break
    end
  end
end

I've tried commenting this out, loading the package, and then running the section manually. In this case I get a segfault.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions