• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

JuliaLang / julia / #37881
77%

Build:
DEFAULT BRANCH: master
Ran 25 Aug 2024 11:22AM UTC
Jobs 1
Files 359
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 Aug 2024 03:35AM UTC coverage: 85.137% (-2.1%) from 87.259%
#37881

push

local

web-flow
Fix self-recursion in generic triangular (l/r)mul! (#55547)

This fixes a stack-overflow in the following:
```julia
julia> using LinearAlgebra

julia> struct MyTriangularWithoutLRMul{T, A<:LinearAlgebra.AbstractTriangular{T}} <: LinearAlgebra.AbstractTriangular{T}
           data :: A
       end

julia> Base.size(A::MyTriangularWithoutLRMul) = size(A.data)

julia> Base.getindex(A::MyTriangularWithoutLRMul, i::Int, j::Int) = A.data[i,j]

julia> M = MyTriangularWithoutLRMul(UpperTriangular(rand(4,4)));

julia> A = rand(4,4);

julia> lmul!(M, A)
Warning: detected a stack overflow; program state may be corrupted, so further execution might be unreliable.
ERROR: StackOverflowError:
Stacktrace:
     [1] unsafe_copyto!
       @ ./genericmemory.jl:122 [inlined]
     [2] _copyto_impl!
       @ ./array.jl:308 [inlined]
     [3] copyto!
       @ ./array.jl:299 [inlined]
     [4] copyto!
       @ ./array.jl:322 [inlined]
     [5] _trimul!(C::Matrix{Float64}, A::MyTriangularWithoutLRMul{Float64, UpperTriangular{Float64, Matrix{Float64}}}, B::Matrix{Float64})
       @ LinearAlgebra ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.12/LinearAlgebra/src/triangular.jl:961
     [6] lmul!(A::MyTriangularWithoutLRMul{Float64, UpperTriangular{Float64, Matrix{Float64}}}, B::Matrix{Float64})
       @ LinearAlgebra ~/.julia/juliaup/julia-nightly/share/julia/stdlib/v1.12/LinearAlgebra/src/triangular.jl:982--- the above 2 lines are repeated 39990 more times ---
```
This is done by rerouting the generic `lmul!`/`rmul!` methods to those
for `UpperTriangular` or `LowerTriangular`, depending on which
triangular half is populated.

A similar issue with `ldiv!`/`rdiv!` is also resolved.

16 of 16 new or added lines in 1 file covered. (100.0%)

2397 existing lines in 73 files now uncovered.

75732 of 88953 relevant lines covered (85.14%)

14910158.09 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
92.67
-0.2% base/io.jl
1
87.97
-0.41% base/subarray.jl
1
90.91
42.58% stdlib/Random/src/generation.jl
1
86.51
-0.19% base/broadcast.jl
1
98.55
-1.45% base/uuid.jl
1
56.25
-6.25% base/traits.jl
1
99.27
-0.73% base/accumulate.jl
1
94.85
-0.14% base/range.jl
1
88.43
1.52% base/process.jl
1
95.77
-0.37% base/reduce.jl
1
95.61
-0.88% base/version.jl
1
93.82
-0.56% base/strings/basic.jl
1
89.76
0.0% base/compiler/tfuncs.jl
1
95.57
-0.63% stdlib/LinearAlgebra/src/svd.jl
1
96.97
-0.28% base/strings/util.jl
1
90.87
-0.48% base/abstractdict.jl
1
65.31
-0.27% base/task.jl
2
50.0
-50.0% stdlib/LinearAlgebra/src/deprecated.jl
2
90.91
-6.06% base/strings/lazy.jl
2
96.04
-0.15% stdlib/LinearAlgebra/src/diagonal.jl
3
98.5
0.0% stdlib/LinearAlgebra/src/cholesky.jl
3
86.17
-1.6% base/essentials.jl
3
95.03
-0.23% stdlib/Test/src/Test.jl
3
84.85
-9.09% base/generator.jl
3
96.17
-0.55% stdlib/LinearAlgebra/src/generic.jl
3
88.89
-4.99% base/simdloop.jl
3
87.14
-0.95% base/iostream.jl
4
72.82
-1.92% base/int.jl
4
89.82
-0.67% stdlib/LinearAlgebra/src/matmul.jl
4
85.57
-1.1% base/boot.jl
5
79.15
-1.93% base/promotion.jl
5
88.47
-0.26% base/show.jl
6
83.64
-10.91% base/idset.jl
6
90.78
-0.44% base/abstractarray.jl
7
98.01
-1.27% base/complex.jl
8
93.31
-0.75% base/array.jl
8
88.49
-4.47% base/floatfuncs.jl
8
62.42
-5.1% base/libc.jl
10
94.81
-4.33% base/bitset.jl
10
92.73
-3.27% base/strings/string.jl
12
86.36
-6.14% base/operators.jl
12
66.15
-18.92% base/number.jl
13
78.34
-3.86% base/ryu/shortest.jl
15
71.43
-9.55% base/sysinfo.jl
17
38.28
-13.66% base/env.jl
18
75.73
-17.48% base/div.jl
22
61.76
-10.92% base/path.jl
23
89.41
-4.67% base/intfuncs.jl
23
42.53
-26.08% base/rounding.jl
24
75.95
-4.81% base/float.jl
24
87.7
-9.56% base/reducedim.jl
26
64.81
-11.82% base/special/exp.jl
29
45.54
-31.45% base/irrationals.jl
30
76.0
-20.0% base/combinatorics.jl
31
83.23
-4.8% base/mpfr.jl
34
69.16
-15.96% base/parse.jl
36
90.94
-5.93% stdlib/LinearAlgebra/src/symmetric.jl
39
9.3
-90.7% stdlib/UUIDs/src/UUIDs.jl
51
42.39
-55.41% base/multinverses.jl
51
76.77
-17.17% base/strings/io.jl
52
58.33
-36.22% base/abstractset.jl
59
82.16
-12.24% base/math.jl
59
83.23
-7.06% base/multidimensional.jl
72
75.41
-23.63% base/rational.jl
93
0.0
-86.36% stdlib/Mmap/src/Mmap.jl
109
67.99
-17.19% base/gmp.jl
115
12.14
-82.14% base/fastmath.jl
116
79.94
-18.63% stdlib/LinearAlgebra/src/dense.jl
124
86.28
-6.21% stdlib/LinearAlgebra/src/triangular.jl
146
64.02
-27.76% base/iterators.jl
167
54.37
-40.52% base/set.jl
240
62.22
-33.79% base/sort.jl
386
49.86
-37.09% stdlib/Serialization/src/Serialization.jl
Jobs
ID Job ID Ran Files Coverage
1 #37881.1 25 Aug 2024 11:22AM UTC 359
85.14
Source Files on build #37881
  • Tree
  • List 359
  • Changed 277
  • Source Changed 0
  • Coverage Changed 91
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • eb5587da on github
  • Prev Build on master
  • Next Build on master
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc