JuliaLinearAlgebra / LinearMaps.jl

A Julia package for defining and working with linear maps, also known as linear transformations or linear operators acting on vectors. The only requirement for a LinearMap is that it can act on a vector (by multiplication) efficiently.
Other
303 stars 42 forks source link

Add Invalidations.yml #190

Closed ranocha closed 2 years ago

ranocha commented 2 years ago

This is based on https://github.com/julia-actions/julia-invalidations. Adding such checks came up in https://discourse.julialang.org/t/potential-performance-regressions-in-julia-1-8-for-special-un-precompiled-type-dispatches-and-how-to-fix-them/86359. I suggest to add this check here since this package is widely used as a dependency.

See also SciML/MuladdMacro.jl#26 and SciML/MuladdMacro.jl#29

dkarrasch commented 2 years ago

Wow, thanks, what a service. Unfortunately, CI doesn't run on this. Besides the mentioned PRs above, do you have a case where one can see the output for a failed "invalidation test"? In the ones listed above, there is not much of visual output.

ranocha commented 2 years ago

In SciML, we decided to skip CI for this (since we needed to update ~100 repos). I changed the commit message here to let CI run. I don't have an example of a failing check.

codecov[bot] commented 2 years ago

Codecov Report

Base: 98.63% // Head: 99.58% // Increases project coverage by +0.94% :tada:

Coverage data is based on head (59ce747) compared to base (e39cbc1). Patch has no changes to coverable lines.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #190 +/- ## ========================================== + Coverage 98.63% 99.58% +0.94% ========================================== Files 17 17 Lines 1396 1448 +52 ========================================== + Hits 1377 1442 +65 + Misses 19 6 -13 ``` | [Impacted Files](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra) | Coverage Δ | | |---|---|---| | [src/show.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL3Nob3cuamw=) | `100.00% <0.00%> (ø)` | | | [src/getindex.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL2dldGluZGV4Lmps) | `100.00% <0.00%> (ø)` | | | [src/LinearMaps.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL0xpbmVhck1hcHMuamw=) | `100.00% <0.00%> (ø)` | | | [src/conversion.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL2NvbnZlcnNpb24uamw=) | `100.00% <0.00%> (ø)` | | | [src/composition.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL2NvbXBvc2l0aW9uLmps) | `100.00% <0.00%> (ø)` | | | [src/linearcombination.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL2xpbmVhcmNvbWJpbmF0aW9uLmps) | `100.00% <0.00%> (ø)` | | | [src/uniformscalingmap.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL3VuaWZvcm1zY2FsaW5nbWFwLmps) | `100.00% <0.00%> (ø)` | | | [src/kronecker.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL2tyb25lY2tlci5qbA==) | `98.80% <0.00%> (+0.01%)` | :arrow_up: | | [src/blockmap.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL2Jsb2NrbWFwLmps) | `99.33% <0.00%> (+0.06%)` | :arrow_up: | | [src/embeddedmap.jl](https://codecov.io/gh/JuliaLinearAlgebra/LinearMaps.jl/pull/190/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra#diff-c3JjL2VtYmVkZGVkbWFwLmps) | `95.83% <0.00%> (+27.08%)` | :arrow_up: | Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JuliaLinearAlgebra)

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

ranocha commented 2 years ago

This is how it looks like when you create invalidations: https://github.com/ranocha/InvalidationsTest.jl/pull/1

dkarrasch commented 2 years ago

Ok, so it just triggers a fail, but no further information.

ranocha commented 2 years ago

In my experience, fixing invalidations is a quite manual process, so you also need to experiment locally. Please note that the numbers of invalidations are reported, too (in a previous step).