Skip to content

Releases: TuringLang/AbstractPPL.jl

v0.13.6

07 Nov 17:23
0086beb

Choose a tag to compare

AbstractPPL v0.13.6

Diff since v0.13.5

Fix a missing qualifier in AbstractPPLDistributionsExt.

Closed issues:

  • Move design documentations in README to doc (#113)

v0.13.5

19 Oct 22:58
bb5fa01

Choose a tag to compare

AbstractPPL v0.13.5

Diff since v0.13.4

Implemented a generic varname_leaves and varname_and_value_leaves for other unsupported types.

Merged pull requests:

v0.13.4

17 Oct 12:28
f3c890f

Choose a tag to compare

AbstractPPL v0.13.4

Diff since v0.13.3

Added missing methods for subsumes(::IndexLens, ::PropertyLens) and vice versa.

Merged pull requests:

Closed issues:

  • subsumes is missing a method (#129)

v0.13.3

17 Oct 01:44
575ccfa

Choose a tag to compare

AbstractPPL v0.13.3

Diff since v0.13.2

Bumped compatibility for JSON.jl to include v1.

Merged pull requests:

v0.13.2

05 Oct 16:08
3f6c538

Choose a tag to compare

AbstractPPL v0.13.2

Diff since v0.13.1

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:

  • varname.jl needs to be split up imo (#126)
  • Add more tests for varname_{,and_value_}leaves (#138)

v0.13.1

31 Aug 01:23
e472027

Choose a tag to compare

AbstractPPL v0.13.1

Diff since v0.13.0

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 Aqua tests (#120)

v0.13.0

16 Jul 16:28
6511882

Choose a tag to compare

AbstractPPL v0.13.0

Diff since v0.12.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 hasvalue and getvalue from DynamicPPL; implement extra Distributions-based methods (#125) (@penelopeysm)

Closed issues:

  • hasvalue and getvalue (#124)

v0.12.0

06 Jul 11:16
7be9556

Choose a tag to compare

AbstractPPL v0.12.0

Diff since v0.11.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:

  • Testing the interface with simulation-based calibration (#27)
  • Use 'pre' for CI rather than nightly (#118)
  • nasty edge cases with prefix and unprefix (#122)

v0.11.0

04 Mar 22:02
c094f3a

Choose a tag to compare

AbstractPPL v0.11.0

Diff since v0.10.1

Breaking changes

  • Added prefix and unprefix functions for VarNames, please see documentation for details.

Merged pull requests:

Closed issues:

  • Test on 'pre' (Julia prerelease) rather than 'nightly' (too unstable) (#116)
  • Prefixing & unprefixing varnames should go here (#117)

v0.10.1

20 Dec 04:30
310c50d

Choose a tag to compare

AbstractPPL v0.10.1

Diff since v0.10.0

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:

  • Fix bugs and add test for StatsBase.predict (#114) (@sunxd3)