Skip to content

Commit 1c368e0

Browse files
Recompile invalidations from Static.jl
Since we know that Static.jl gives a lot of invalidations, and this is the spot where the yare introduced into downstream usage, this can be done to force recompilation and get much better precompile caches. While this will increase precompilation time, this should just be spread out among other packages and not necessarily be as noticable (in fact maybe reducing the amount done in OrdinaryDiffEq?)
1 parent b182daf commit 1c368e0

File tree

1 file changed

+45
-42
lines changed

1 file changed

+45
-42
lines changed

src/StaticArrayInterface.jl

Lines changed: 45 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -14,47 +14,51 @@ else
1414
end
1515
end
1616

17-
using ArrayInterface
18-
import ArrayInterface: allowed_getindex, allowed_setindex!, aos_to_soa, buffer,
19-
parent_type, fast_matrix_colors, findstructralnz,
20-
has_sparsestruct,
21-
issingular, isstructured, matrix_colors, restructure,
22-
lu_instance,
23-
safevec, zeromatrix, undefmatrix, ColoringAlgorithm,
24-
fast_scalar_indexing, parameterless_type,
25-
is_forwarding_wrapper,
26-
map_tuple_type, flatten_tuples, GetIndex, SetIndex!,
27-
defines_strides, ndims_index, ndims_shape,
28-
stride_preserving_index
29-
30-
# ArrayIndex subtypes and methods
31-
import ArrayInterface: ArrayIndex, MatrixIndex, VectorIndex, BidiagonalIndex,
32-
TridiagonalIndex
33-
# managing immutables
34-
import ArrayInterface: ismutable, can_change_size, can_setindex
35-
# constants
36-
import ArrayInterface: MatAdjTrans, VecAdjTrans, UpTri, LoTri
37-
# device pieces
38-
import ArrayInterface: AbstractDevice, AbstractCPU, CPUPointer, CPUTuple, CheckParent,
39-
CPUIndex, GPU, can_avx, device
40-
41-
using Static
42-
using Static: Zero, One, nstatic, eq, ne, gt, ge, lt, le, eachop, eachop_tuple,
43-
permute, invariant_permutation, field_type, reduce_tup, find_first_eq,
44-
OptionallyStaticUnitRange, OptionallyStaticStepRange, OptionallyStaticRange,
45-
IntType,
46-
SOneTo, SUnitRange
47-
48-
using IfElse
49-
50-
using Base.Cartesian
51-
using Base: @propagate_inbounds, tail, OneTo, LogicalIndex, Slice, ReinterpretArray,
52-
ReshapedArray, AbstractCartesianIndex
53-
54-
using Base.Iterators: Pairs
55-
using LinearAlgebra
56-
57-
import Compat
17+
using PrecompileTools
18+
19+
@recompile_invalidations begin
20+
using ArrayInterface
21+
import ArrayInterface: allowed_getindex, allowed_setindex!, aos_to_soa, buffer,
22+
parent_type, fast_matrix_colors, findstructralnz,
23+
has_sparsestruct,
24+
issingular, isstructured, matrix_colors, restructure,
25+
lu_instance,
26+
safevec, zeromatrix, undefmatrix, ColoringAlgorithm,
27+
fast_scalar_indexing, parameterless_type,
28+
is_forwarding_wrapper,
29+
map_tuple_type, flatten_tuples, GetIndex, SetIndex!,
30+
defines_strides, ndims_index, ndims_shape,
31+
stride_preserving_index
32+
33+
# ArrayIndex subtypes and methods
34+
import ArrayInterface: ArrayIndex, MatrixIndex, VectorIndex, BidiagonalIndex,
35+
TridiagonalIndex
36+
# managing immutables
37+
import ArrayInterface: ismutable, can_change_size, can_setindex
38+
# constants
39+
import ArrayInterface: MatAdjTrans, VecAdjTrans, UpTri, LoTri
40+
# device pieces
41+
import ArrayInterface: AbstractDevice, AbstractCPU, CPUPointer, CPUTuple, CheckParent,
42+
CPUIndex, GPU, can_avx, device
43+
44+
using Static
45+
using Static: Zero, One, nstatic, eq, ne, gt, ge, lt, le, eachop, eachop_tuple,
46+
permute, invariant_permutation, field_type, reduce_tup, find_first_eq,
47+
OptionallyStaticUnitRange, OptionallyStaticStepRange, OptionallyStaticRange,
48+
IntType,
49+
SOneTo, SUnitRange
50+
51+
using IfElse
52+
53+
using Base.Cartesian
54+
using Base: @propagate_inbounds, tail, OneTo, LogicalIndex, Slice, ReinterpretArray,
55+
ReshapedArray, AbstractCartesianIndex
56+
57+
using Base.Iterators: Pairs
58+
using LinearAlgebra
59+
60+
import Compat
61+
end
5862

5963
"""
6064
StrideIndex(x)
@@ -492,7 +496,6 @@ end
492496

493497
## Precompilation
494498

495-
using PrecompileTools
496499
@setup_workload begin
497500
# Putting some things in `setup` can reduce the size of the
498501
# precompile file and potentially make loading faster.

0 commit comments

Comments
 (0)