Skip to content

Releases: TuringLang/AbstractPPL.jl

v0.13.0

16 Jul 16:28
6511882
Compare
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
Compare
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
Compare
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
Compare
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)

v0.10.0

19 Dec 17:39
f1ffda1
Compare
Choose a tag to compare

AbstractPPL v0.10.0

Diff since v0.9.0

Breaking changes

  • In this release, we add an interface function StatsBase.predict, which draws posterior predictive samples

Merged pull requests:

  • Add StatsBase.predict to the interface (#81) (@sethaxen)
  • Update CompatHelper.yml (#105) (@penelopeysm)
  • CompatHelper: bump compat for Documenter to 1 for package test, (keep existing compat) (#106) (@github-actions[bot])
  • CompatHelper: add new compat entry for Accessors at version 0.1 for package test, (keep existing compat) (#107) (@github-actions[bot])
  • Add fix and unfix functions for parameter fixing and unfixing (#109) (@sunxd3)
  • Use new GitHub actions (#110) (@penelopeysm)
  • Add varname tests from DPPL + format repo (#111) (@penelopeysm)

v0.9.0

01 Oct 12:18
1cbcd1c
Compare
Choose a tag to compare

AbstractPPL v0.9.0

Diff since v0.8.4

Merged pull requests:

Closed issues:

  • condition method with weights (#39)
  • serialisation / deserialisation of VarName (#98)
  • Colon doesn't subsume itself (#99)

v0.8.4

17 Apr 16:24
b9cd48b
Compare
Choose a tag to compare

AbstractPPL v0.8.4

Diff since v0.8.3

Merged pull requests:

v0.8.3

12 Apr 13:38
6fbeffd
Compare
Choose a tag to compare

AbstractPPL v0.8.3

Diff since v0.8.2

Merged pull requests:

  • Ignore identity optic when composing (#96) (@sunxd3)

v0.8.2

09 Apr 12:40
29cdd41
Compare
Choose a tag to compare

AbstractPPL v0.8.2

Diff since v0.8.1

Merged pull requests:

  • Bring back function between varname and optic (#95) (@sunxd3)

v0.8.1

08 Apr 08:03
9d35b63
Compare
Choose a tag to compare

AbstractPPL v0.8.1

Diff since v0.8.0

Merged pull requests: