Package evaluation of KSVD on Julia 1.12.0-DEV.1805 (a080deafdd*) started at 2025-03-24T19:26:56.758 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Set-up completed after 8.93s ################################################################################ # Installation # Installing KSVD... Resolving package versions... Updating `~/.julia/environments/v1.12/Project.toml` [778123d0] + KSVD v1.9.0 Updating `~/.julia/environments/v1.12/Manifest.toml` [7d9f7c33] + Accessors v0.1.42 [79e6a3ab] + Adapt v4.3.0 [66dad0bd] + AliasTables v1.1.3 [4fba245c] + ArrayInterface v7.18.0 [198e06fe] + BangBang v0.4.4 [62783981] + BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] + CPUSummary v0.2.6 [ae650224] + ChunkSplitters v3.1.1 [fb6a15b2] + CloseOpenIntervals v0.1.13 [f70d9fcc] + CommonWorldInvalidations v1.0.0 [34da2185] + Compat v4.16.0 [a33af91c] + CompositionsBase v0.1.2 [187b0558] + ConstructionBase v1.5.8 [adafc99b] + CpuId v0.3.1 [9a962f9c] + DataAPI v1.16.0 [864edb3b] + DataStructures v0.18.22 [31c24e10] + Distributions v0.25.118 [ffbed154] + DocStringExtensions v0.9.3 [e2ba6199] + ExprTools v0.1.10 [1a297f60] + FillArrays v1.13.0 [076d061b] + HashArrayMappedTries v0.2.0 [34004b35] + HypergeometricFunctions v0.3.28 [615f187c] + IfElse v0.1.1 [22cec73e] + InitialValues v0.3.1 [3587e190] + InverseFunctions v0.1.17 [92d709cd] + IrrationalConstants v0.2.4 [692b3bcd] + JLLWrappers v1.7.0 [778123d0] + KSVD v1.9.0 ⌅ [0b1a1467] + KrylovKit v0.8.3 [10f19ff3] + LayoutPointers v0.1.17 [2ab3a3ac] + LogExpFunctions v0.3.29 [1914dd2f] + MacroTools v0.5.15 [d125e4d3] + ManualMemory v0.1.8 [e1d29d7a] + Missings v1.2.0 [67456a42] + OhMyThreads v0.8.1 [bac558e1] + OrderedCollections v1.8.0 [90014a1f] + PDMats v0.11.32 [65ce6f38] + PackageExtensionCompat v1.0.2 [f517fe37] + Polyester v0.7.16 [1d0040c9] + PolyesterWeave v0.2.2 [aea7be01] + PrecompileTools v1.2.1 [21216c6a] + Preferences v1.4.3 [92933f4c] + ProgressMeter v1.10.2 [43287f4e] + PtrArrays v1.3.0 [1fd47b50] + QuadGK v2.11.2 [189a3867] + Reexport v1.2.2 [ae029012] + Requires v1.3.1 [79098fc4] + Rmath v0.8.0 [94e857df] + SIMDTypes v0.1.0 [7e506255] + ScopedValues v1.3.0 [a2af1166] + SortingAlgorithms v1.2.1 [276daf66] + SpecialFunctions v2.5.0 [91464d47] + StableTasks v0.1.6 [aedffcd0] + Static v1.2.0 [0d7ed370] + StaticArrayInterface v1.8.0 [10745b16] + Statistics v1.11.1 [82ae8749] + StatsAPI v1.7.0 [2913bbd2] + StatsBase v0.34.4 [4c63d2b9] + StatsFuns v1.3.2 [7792a7ef] + StrideArraysCore v0.5.7 [ed4db957] + TaskLocalValues v0.1.2 [3d91a4ae] + ThreadedDenseSparseMul v0.5.1 [8290d209] + ThreadingUtilities v0.5.2 [a759f4b9] + TimerOutputs v0.5.28 ⌅ [409d34a3] + VectorInterface v0.4.9 [efe28fd5] + OpenSpecFun_jll v0.5.6+0 [f50d1b31] + Rmath_jll v0.5.1+0 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [dc6e5ff7] + JuliaSyntaxHighlighting v1.12.0 [76f85450] + LibGit2 v1.11.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.11.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [ca575930] + NetworkOptions v1.2.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [2f01184e] + SparseArrays v1.12.0 [f489334b] + StyledStrings v1.11.0 [4607b0f0] + SuiteSparse [fa267f1f] + TOML v1.0.3 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.2.0+0 [e37daf67] + LibGit2_jll v1.8.0+0 [29816b5a] + LibSSH2_jll v1.11.0+1 [c8ffd9c3] + MbedTLS_jll v2.28.6+1 [4536629a] + OpenBLAS_jll v0.3.28+3 [05823500] + OpenLibm_jll v0.8.1+3 [bea87d4a] + SuiteSparse_jll v7.8.0+1 [8e850b90] + libblastrampoline_jll v5.11.2+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 4.32s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... ERROR: LoadError: The following 1 direct dependency failed to precompile: KSVD Failed to precompile KSVD [778123d0-3295-4563-8004-fb5c576fbcd9] to "/home/pkgeval/.julia/compiled/v1.12/KSVD/jl_87yNEk". ERROR: LoadError: Attempted to capture and modify outer local variable: DtD See https://juliafolds2.github.io/OhMyThreads.jl/stable/literate/boxing/boxing/ for a fuller explanation. Hint ---- Capturing boxed variables can be not only slow, but also cause surprising and incorrect results. • If you meant for these variables to be local to each loop iteration and not depend on a variable from an outer scope, you should mark them as local inside the closure. • If you meant to reference a variable from the outer scope, but do not want access to it to be boxed, you can wrap uses of it in a let block, like e.g. function foo(x, N) rand(Bool) && x = 1 # This rebinding of x causes it to be boxed ... let x = x # ... Unless we localize it here with the let block @tasks for i in 1:N f(x) end end end • OhMyThreads.jl provides a @localize macro that automates the above let block, i.e. @localize x f(x) is the same as let x=x; f(x) end • If these variables are being re-bound inside a @one_by_one or @only_one block, consider using a mutable Ref instead of re-binding the variable. This error can be bypassed with the @allow_boxed_captures macro. Stacktrace: [1] throw_if_boxed_captures(f::Function) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:348 [2] throw_if_boxed_captures(f::Function) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:356 [3] throw_if_boxed_captures @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:363 [inlined] [4] _tmapreduce(f::Function, op::Function, Arrs::Tuple{Vector{UnitRange{Int64}}}, ::Type{Any}, scheduler::OhMyThreads.Schedulers.DynamicScheduler{OhMyThreads.Schedulers.FixedCount, ChunkSplitters.Consecutive}, mapreduce_kwargs::@NamedTuple{}) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:107 [5] #tmapreduce#16 @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:86 [inlined] [6] tmapreduce @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:70 [inlined] [7] _tmap(::OhMyThreads.Schedulers.DynamicScheduler{OhMyThreads.Schedulers.FixedCount, ChunkSplitters.Consecutive}, ::Function, ::Vector{Tuple{SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}}) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:523 [8] #tmap#64 @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:441 [inlined] [9] tmap @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:405 [inlined] [10] sparse_coding(method::KSVD.ParallelMatchingPursuit, data::Matrix{Float32}, dictionary::Matrix{Float32}; timer::TimerOutputs.TimerOutput, DtD::Nothing, DtY::Nothing) @ KSVD ~/.julia/packages/KSVD/8OHN5/src/matching_pursuit.jl:91 [11] sparse_coding @ ~/.julia/packages/KSVD/8OHN5/src/matching_pursuit.jl:89 [inlined] [12] ksvd(Y::Matrix{Float32}, n_atoms::Int64, max_nnz::Int64; ksvd_update_method::KSVD.BatchedParallelKSVD{false, Float32, OhMyThreads.Schedulers.DynamicScheduler}, sparse_coding_method::KSVD.ParallelMatchingPursuit, minibatch_size::Nothing, D_init::Nothing, maxiters::Int64, maxtime::Nothing, abstol::Float32, reltol::Float32, nnz_per_col_target::Float64, show_trace::Bool, callback_fn::Nothing, verbose::Bool) @ KSVD ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:120 [13] ksvd @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:96 [inlined] [14] macro expansion @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:182 [inlined] [15] macro expansion @ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:78 [inlined] [16] top-level scope @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:181 [17] include(mod::Module, _path::String) @ Base ./Base.jl:300 [18] 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, UInt128}}, source::Nothing) @ Base ./loading.jl:2995 [19] top-level scope @ stdin:6 [20] eval(m::Module, e::Any) @ Core ./boot.jl:485 [21] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:2846 [22] include_string @ ./loading.jl:2856 [inlined] [23] exec_options(opts::Base.JLOptions) @ Base ./client.jl:327 [24] _start() @ Base ./client.jl:558 in expression starting at /home/pkgeval/.julia/packages/KSVD/8OHN5/src/KSVD.jl:1 in expression starting at stdin: in expression starting at /PkgEval.jl/scripts/precompile.jl:37 Precompilation failed after 112.95s ################################################################################ # Testing # Testing KSVD Status `/tmp/jl_Yfsqib/Project.toml` [864edb3b] DataStructures v0.18.22 [31c24e10] Distributions v0.25.118 [778123d0] KSVD v1.9.0 ⌅ [0b1a1467] KrylovKit v0.8.3 [67456a42] OhMyThreads v0.8.1 [aea7be01] PrecompileTools v1.2.1 [92933f4c] ProgressMeter v1.10.2 [e0db7c4e] ReTest v0.3.4 [2913bbd2] StatsBase v0.34.4 [3d91a4ae] ThreadedDenseSparseMul v0.5.1 [a759f4b9] TimerOutputs v0.5.28 [37e2e46d] LinearAlgebra v1.11.0 [9a3f8284] Random v1.11.0 [2f01184e] SparseArrays v1.12.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_Yfsqib/Manifest.toml` [7d9f7c33] Accessors v0.1.42 [79e6a3ab] Adapt v4.3.0 [66dad0bd] AliasTables v1.1.3 [4fba245c] ArrayInterface v7.18.0 [198e06fe] BangBang v0.4.4 [62783981] BitTwiddlingConvenienceFunctions v0.1.6 [2a0fbf3d] CPUSummary v0.2.6 [ae650224] ChunkSplitters v3.1.1 [fb6a15b2] CloseOpenIntervals v0.1.13 [f70d9fcc] CommonWorldInvalidations v1.0.0 [34da2185] Compat v4.16.0 [a33af91c] CompositionsBase v0.1.2 [187b0558] ConstructionBase v1.5.8 [adafc99b] CpuId v0.3.1 [9a962f9c] DataAPI v1.16.0 [864edb3b] DataStructures v0.18.22 [31c24e10] Distributions v0.25.118 [ffbed154] DocStringExtensions v0.9.3 [e2ba6199] ExprTools v0.1.10 [1a297f60] FillArrays v1.13.0 [076d061b] HashArrayMappedTries v0.2.0 [34004b35] HypergeometricFunctions v0.3.28 [615f187c] IfElse v0.1.1 [22cec73e] InitialValues v0.3.1 [bd334432] InlineTest v0.2.0 [3587e190] InverseFunctions v0.1.17 [92d709cd] IrrationalConstants v0.2.4 [692b3bcd] JLLWrappers v1.7.0 [778123d0] KSVD v1.9.0 ⌅ [0b1a1467] KrylovKit v0.8.3 [10f19ff3] LayoutPointers v0.1.17 [2ab3a3ac] LogExpFunctions v0.3.29 [1914dd2f] MacroTools v0.5.15 [d125e4d3] ManualMemory v0.1.8 [e1d29d7a] Missings v1.2.0 [67456a42] OhMyThreads v0.8.1 [bac558e1] OrderedCollections v1.8.0 [90014a1f] PDMats v0.11.32 [65ce6f38] PackageExtensionCompat v1.0.2 [f517fe37] Polyester v0.7.16 [1d0040c9] PolyesterWeave v0.2.2 [aea7be01] PrecompileTools v1.2.1 [21216c6a] Preferences v1.4.3 [92933f4c] ProgressMeter v1.10.2 [43287f4e] PtrArrays v1.3.0 [1fd47b50] QuadGK v2.11.2 [e0db7c4e] ReTest v0.3.4 [189a3867] Reexport v1.2.2 [ae029012] Requires v1.3.1 [79098fc4] Rmath v0.8.0 [94e857df] SIMDTypes v0.1.0 [7e506255] ScopedValues v1.3.0 [a2af1166] SortingAlgorithms v1.2.1 [276daf66] SpecialFunctions v2.5.0 [91464d47] StableTasks v0.1.6 [aedffcd0] Static v1.2.0 [0d7ed370] StaticArrayInterface v1.8.0 [10745b16] Statistics v1.11.1 [82ae8749] StatsAPI v1.7.0 [2913bbd2] StatsBase v0.34.4 [4c63d2b9] StatsFuns v1.3.2 [7792a7ef] StrideArraysCore v0.5.7 [ed4db957] TaskLocalValues v0.1.2 [3d91a4ae] ThreadedDenseSparseMul v0.5.1 [8290d209] ThreadingUtilities v0.5.2 [a759f4b9] TimerOutputs v0.5.28 ⌅ [409d34a3] VectorInterface v0.4.9 [efe28fd5] OpenSpecFun_jll v0.5.6+0 [f50d1b31] Rmath_jll v0.5.1+0 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [8ba89e20] Distributed v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [dc6e5ff7] JuliaSyntaxHighlighting v1.12.0 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.11.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [ca575930] NetworkOptions v1.2.0 [de0858da] Printf v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v0.7.0 [9e88b42a] Serialization v1.11.0 [6462fe0b] Sockets v1.11.0 [2f01184e] SparseArrays v1.12.0 [f489334b] StyledStrings v1.11.0 [4607b0f0] SuiteSparse [fa267f1f] TOML v1.0.3 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.2.0+0 [e37daf67] LibGit2_jll v1.8.0+0 [29816b5a] LibSSH2_jll v1.11.0+1 [c8ffd9c3] MbedTLS_jll v2.28.6+1 [4536629a] OpenBLAS_jll v0.3.28+3 [05823500] OpenLibm_jll v0.8.1+3 [bea87d4a] SuiteSparse_jll v7.8.0+1 [8e850b90] libblastrampoline_jll v5.11.2+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. Testing Running tests... Precompiling packages... Info Given KSVD was explicitly requested, output will be shown live  ERROR: LoadError: Attempted to capture and modify outer local variable: DtD  See https://juliafolds2.github.io/OhMyThreads.jl/stable/literate/boxing/boxing/ for a fuller explanation.   Hint  ----   Capturing boxed variables can be not only slow, but also cause surprising  and incorrect results.   • If you meant for these variables to be local to each loop  iteration and not depend on a variable from an outer scope, you  should mark them as local inside the closure.  • If you meant to reference a variable from the outer scope, but do  not want access to it to be boxed, you can wrap uses of it in a  let block, like e.g.   function foo(x, N)  rand(Bool) && x = 1 # This rebinding of x causes it to be boxed ...  let x = x # ... Unless we localize it here with the let block  @tasks for i in 1:N  f(x)  end  end  end   • OhMyThreads.jl provides a @localize macro that automates the above  let block, i.e. @localize x f(x) is the same as let x=x; f(x) end  • If these variables are being re-bound inside a @one_by_one or  @only_one block, consider using a mutable Ref instead of  re-binding the variable.   This error can be bypassed with the @allow_boxed_captures macro. Stacktrace:  [1] throw_if_boxed_captures(f::Function)  @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:348  [2] throw_if_boxed_captures(f::Function)  @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:356  [3] throw_if_boxed_captures  @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:363 [inlined]  [4] _tmapreduce(f::Function, op::Function, Arrs::Tuple{Vector{UnitRange{Int64}}}, ::Type{Any}, scheduler::OhMyThreads.Schedulers.DynamicScheduler{OhMyThreads.Schedulers.FixedCount, ChunkSplitters.Consecutive}, mapreduce_kwargs::@NamedTuple{})  @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:107  [5] #tmapreduce#16  @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:86 [inlined]  [6] tmapreduce  @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:70 [inlined]  [7] _tmap(::OhMyThreads.Schedulers.DynamicScheduler{OhMyThreads.Schedulers.FixedCount, ChunkSplitters.Consecutive}, ::Function, ::Vector{Tuple{SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}})  @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:523  [8] #tmap#64  @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:441 [inlined]  [9] tmap  @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:405 [inlined]  [10] sparse_coding(method::KSVD.ParallelMatchingPursuit, data::Matrix{Float32}, dictionary::Matrix{Float32}; timer::TimerOutputs.TimerOutput, DtD::Nothing, DtY::Nothing)  @ KSVD ~/.julia/packages/KSVD/8OHN5/src/matching_pursuit.jl:91  [11] sparse_coding  @ ~/.julia/packages/KSVD/8OHN5/src/matching_pursuit.jl:89 [inlined]  [12] ksvd(Y::Matrix{Float32}, n_atoms::Int64, max_nnz::Int64; ksvd_update_method::KSVD.BatchedParallelKSVD{false, Float32, OhMyThreads.Schedulers.DynamicScheduler}, sparse_coding_method::KSVD.ParallelMatchingPursuit, minibatch_size::Nothing, D_init::Nothing, maxiters::Int64, maxtime::Nothing, abstol::Float32, reltol::Float32, nnz_per_col_target::Float64, show_trace::Bool, callback_fn::Nothing, verbose::Bool)  @ KSVD ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:120  [13] ksvd  @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:96 [inlined]  [14] macro expansion  @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:182 [inlined]  [15] macro expansion  @ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:78 [inlined]  [16] top-level scope  @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:181  [17] include(mod::Module, _path::String)  @ Base ./Base.jl:300  [18] 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, UInt128}}, source::Nothing)  @ Base ./loading.jl:2995  [19] top-level scope  @ stdin:6  [20] eval(m::Module, e::Any)  @ Core ./boot.jl:485  [21] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base ./loading.jl:2846  [22] include_string  @ ./loading.jl:2856 [inlined]  [23] exec_options(opts::Base.JLOptions)  @ Base ./client.jl:327  [24] _start()  @ Base ./client.jl:558 in expression starting at /home/pkgeval/.julia/packages/KSVD/8OHN5/src/KSVD.jl:1 in expression starting at stdin:6 ✗ KSVD 0 dependencies successfully precompiled in 41 seconds. 103 already precompiled. ERROR: LoadError: The following 1 direct dependency failed to precompile: KSVD Failed to precompile KSVD [778123d0-3295-4563-8004-fb5c576fbcd9] to "/home/pkgeval/.julia/compiled/v1.12/KSVD/jl_nfK4rz". ERROR: LoadError: Attempted to capture and modify outer local variable: DtD See https://juliafolds2.github.io/OhMyThreads.jl/stable/literate/boxing/boxing/ for a fuller explanation. Hint ---- Capturing boxed variables can be not only slow, but also cause surprising and incorrect results. • If you meant for these variables to be local to each loop iteration and not depend on a variable from an outer scope, you should mark them as local inside the closure. • If you meant to reference a variable from the outer scope, but do not want access to it to be boxed, you can wrap uses of it in a let block, like e.g. function foo(x, N) rand(Bool) && x = 1 # This rebinding of x causes it to be boxed ... let x = x # ... Unless we localize it here with the let block @tasks for i in 1:N f(x) end end end • OhMyThreads.jl provides a @localize macro that automates the above let block, i.e. @localize x f(x) is the same as let x=x; f(x) end • If these variables are being re-bound inside a @one_by_one or @only_one block, consider using a mutable Ref instead of re-binding the variable. This error can be bypassed with the @allow_boxed_captures macro. Stacktrace: [1] throw_if_boxed_captures(f::Function) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:348 [2] throw_if_boxed_captures(f::Function) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:356 [3] throw_if_boxed_captures @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:363 [inlined] [4] _tmapreduce(f::Function, op::Function, Arrs::Tuple{Vector{UnitRange{Int64}}}, ::Type{Any}, scheduler::OhMyThreads.Schedulers.DynamicScheduler{OhMyThreads.Schedulers.FixedCount, ChunkSplitters.Consecutive}, mapreduce_kwargs::@NamedTuple{}) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:107 [5] #tmapreduce#16 @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:86 [inlined] [6] tmapreduce @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:70 [inlined] [7] _tmap(::OhMyThreads.Schedulers.DynamicScheduler{OhMyThreads.Schedulers.FixedCount, ChunkSplitters.Consecutive}, ::Function, ::Vector{Tuple{SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}, SubArray{Float32, 1, Matrix{Float32}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64}, true}}}) @ OhMyThreads.Implementation ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:523 [8] #tmap#64 @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:441 [inlined] [9] tmap @ ~/.julia/packages/OhMyThreads/2Saic/src/implementation.jl:405 [inlined] [10] sparse_coding(method::KSVD.ParallelMatchingPursuit, data::Matrix{Float32}, dictionary::Matrix{Float32}; timer::TimerOutputs.TimerOutput, DtD::Nothing, DtY::Nothing) @ KSVD ~/.julia/packages/KSVD/8OHN5/src/matching_pursuit.jl:91 [11] sparse_coding @ ~/.julia/packages/KSVD/8OHN5/src/matching_pursuit.jl:89 [inlined] [12] ksvd(Y::Matrix{Float32}, n_atoms::Int64, max_nnz::Int64; ksvd_update_method::KSVD.BatchedParallelKSVD{false, Float32, OhMyThreads.Schedulers.DynamicScheduler}, sparse_coding_method::KSVD.ParallelMatchingPursuit, minibatch_size::Nothing, D_init::Nothing, maxiters::Int64, maxtime::Nothing, abstol::Float32, reltol::Float32, nnz_per_col_target::Float64, show_trace::Bool, callback_fn::Nothing, verbose::Bool) @ KSVD ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:120 [13] ksvd @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:96 [inlined] [14] macro expansion @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:182 [inlined] [15] macro expansion @ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:78 [inlined] [16] top-level scope @ ~/.julia/packages/KSVD/8OHN5/src/KSVD.jl:181 [17] include(mod::Module, _path::String) @ Base ./Base.jl:300 [18] 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, UInt128}}, source::Nothing) @ Base ./loading.jl:2995 [19] top-level scope @ stdin:6 [20] eval(m::Module, e::Any) @ Core ./boot.jl:485 [21] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) @ Base ./loading.jl:2846 [22] include_string @ ./loading.jl:2856 [inlined] [23] exec_options(opts::Base.JLOptions) @ Base ./client.jl:327 [24] _start() @ Base ./client.jl:558 in expression starting at /home/pkgeval/.julia/packages/KSVD/8OHN5/src/KSVD.jl:1 in expression starting at stdin: in expression starting at /home/pkgeval/.julia/packages/KSVD/8OHN5/test/runtests.jl:1 Testing failed after 51.59s ERROR: LoadError: Package KSVD errored during testing Stacktrace: [1] pkgerror(msg::String) @ Pkg.Types /opt/julia/share/julia/stdlib/v1.12/Pkg/src/Types.jl:68 [2] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool) @ Pkg.Operations /opt/julia/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:2359 [3] test @ /opt/julia/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:2214 [inlined] [4] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Cmd, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::@Kwargs{io::IOContext{IO}}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:481 [5] test(pkgs::Vector{Pkg.Types.PackageSpec}; io::IOContext{IO}, kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:159 [6] test(pkgs::Vector{String}; kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:147 [7] test @ /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:147 [inlined] [8] #test#81 @ /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:146 [inlined] [9] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:219 [10] include(mod::Module, _path::String) @ Base ./Base.jl:300 [11] exec_options(opts::Base.JLOptions) @ Base ./client.jl:329 [12] _start() @ Base ./client.jl:558 in expression starting at /PkgEval.jl/scripts/evaluate.jl:210 PkgEval failed after 198.95s: package fails to precompile