Releases: TuringLang/AbstractPPL.jl
v0.13.6
AbstractPPL v0.13.6
Fix a missing qualifier in AbstractPPLDistributionsExt.
Closed issues:
- Move design documentations in README to doc (#113)
v0.13.5
AbstractPPL v0.13.5
Implemented a generic varname_leaves and varname_and_value_leaves for other unsupported types.
Merged pull requests:
- fix varname_..._leaves for other types (#146) (@penelopeysm)
v0.13.4
AbstractPPL v0.13.4
Added missing methods for subsumes(::IndexLens, ::PropertyLens) and vice versa.
Merged pull requests:
- shift interface in README to docs (#144) (@penelopeysm)
- Fix missing subsumes methods for different lens types (#145) (@penelopeysm)
Closed issues:
- subsumes is missing a method (#129)
v0.13.3
AbstractPPL v0.13.3
Bumped compatibility for JSON.jl to include v1.
Merged pull requests:
- bump compatibility for JSON.jl to include v1 (#143) (@penelopeysm)
v0.13.2
AbstractPPL v0.13.2
Implemented varname_leaves for LinearAlgebra.Cholesky.
Merged pull requests:
- CompatHelper: add new compat entry for OrderedCollections at version 1 for package test, (keep existing compat) (#137) (@github-actions[bot])
- Split up varname.jl into more manageable bits (#140) (@penelopeysm)
- Add missing method for
varname_leaves; add tests (#141) (@penelopeysm)
Closed issues:
v0.13.1
AbstractPPL v0.13.1
Merged pull requests:
- CompatHelper: add new compat entry for Distributions at version 0.25 for package test, (keep existing compat) (#128) (@github-actions[bot])
- Add Aqua tests for automated quality assurance (#130) (@Copilot)
- move varname leaves code to AbstractPPL (#134) (@penelopeysm)
- patch release is fine (#135) (@penelopeysm)
Closed issues:
- Add
Aquatests (#120)
v0.13.0
AbstractPPL v0.13.0
There are no breaking changes; however, we opted to make a minor release given the substantial amount of new code.
Minimum compatibility has been bumped to Julia 1.10.
Added the new functions hasvalue(container::T, ::VarName[, ::Distribution]) and getvalue(container::T, ::VarName[, ::Distribution]), where T is either NamedTuple or AbstractDict{<:VarName}.
These functions check whether a given VarName has a value in the given NamedTuple or AbstractDict, and return the value if it exists.
The optional Distribution argument allows one to reconstruct a full value from its component indices.
For example, if container has x[1] and x[2], then hasvalue(container, @varname(x), dist) will return true if size(dist) == (2,) (for example, MvNormal(zeros(2), I)).
In this case plain hasvalue(container, @varname(x)) would return false, since we can not know whether the vector-valued variable x has all of its elements specified in container (there might be an x[3] missing).
These functions (without the Distribution argument) were previously in DynamicPPL.jl (albeit unexported).
Merged pull requests:
- Move
hasvalueandgetvaluefrom DynamicPPL; implement extra Distributions-based methods (#125) (@penelopeysm)
Closed issues:
- hasvalue and getvalue (#124)
v0.12.0
AbstractPPL v0.12.0
Breaking changes
VarName constructors
Removed the constructors VarName(vn, optic) (this wasn't deprecated, but was dangerous as it would silently discard the existing optic in vn), and VarName(vn, ::Tuple) (which was deprecated).
Usage of VarName(vn, optic) can be directly replaced with VarName{getsym(vn)}(optic).
Other changes
Optic normalisation
In the inner constructor of a VarName, its optic is now normalised to ensure that the associativity of ComposedFunction is always the same, and that compositions with identity are removed.
This helps to prevent subtle bugs where VarNames with semantically equal optics are not considered equal.
Merged pull requests:
- Normalise optics when constructing VarName; remove extra constructors (#123) (@penelopeysm)
Closed issues:
v0.11.0
AbstractPPL v0.11.0
Breaking changes
- Added
prefixandunprefixfunctions forVarNames, please see documentation for details.
Merged pull requests:
- Documentation and Turing Navigation CI improvement (#115) (@shravanngoswamii)
- Implement varname prefix / unprefix (#119) (@penelopeysm)
Closed issues:
v0.10.1
AbstractPPL v0.10.1
StatsBase.predict in v0.10.0 calls a four argument implementation of predict, which is a mistake. This release resolves this by removing the unintended NamedTuple argument. Now it called the intended three-argument StatsBase.predict(Random.default_rng(), model, params).
Merged pull requests: