From 8fb75be20e43a68af04001e1f6bbde351f978b9b Mon Sep 17 00:00:00 2001 From: Tor Erlend Fjelde Date: Sun, 14 Jul 2024 15:10:37 +0200 Subject: [PATCH 1/3] Added work-around for Julia v1.7 and lower only supporting `isassigned(x, ::Int...)` --- src/debug_utils.jl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/debug_utils.jl b/src/debug_utils.jl index dd7f3d10c..bdda3e6ac 100644 --- a/src/debug_utils.jl +++ b/src/debug_utils.jl @@ -286,11 +286,19 @@ function record_varname!(context::DebugContext, varname::VarName, dist) end # tilde +_isassigned(x::AbstractArray, i) = isassigned(x, i) +# HACK(torfjelde): Julia v1.7 only supports `isassigned(::AbstractArray, ::Int...)`. +# TODO(torfjelde): Determine exactly in which version this change was introduced. +if VERSION < v"1.8" + _isassigned(x::AbstractArray, inds::Tuple) = isassigned(x, inds...) + _isassigned(x::AbstractArray, idx::CartesianIndex) = _isassigned(x, Tuple(idx)) +end + _has_missings(x) = ismissing(x) function _has_missings(x::AbstractArray) # Can't just use `any` because `x` might contain `undef`. for i in eachindex(x) - if isassigned(x, i) && _has_missings(x[i]) + if _isassigned(x, i) && _has_missings(x[i]) return true end end From 9533482c63ae5baffa64c0f64c1c1cf245169b1f Mon Sep 17 00:00:00 2001 From: Tor Erlend Fjelde Date: Sun, 14 Jul 2024 18:55:44 +0100 Subject: [PATCH 2/3] Add the work-around for `isassigned` for Julia Date: Mon, 15 Jul 2024 18:33:34 +0100 Subject: [PATCH 3/3] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 78acb2566..06cba77ab 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "DynamicPPL" uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8" -version = "0.28" +version = "0.28.1" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"