diff --git a/HISTORY.md b/HISTORY.md index 1ee17908..e27fbc73 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,7 @@ +## 0.15.5 + +Widened the `Mooncake` compat bound to `0.5.27, 0.6` (#180). Mooncake 0.6 is a breaking release (forward-mode redesign), but the reverse-mode rule API and the prepared-cache API `AbstractPPLMooncakeExt` uses (`prepare_gradient_cache`, `prepare_derivative_cache`, `prepare_hessian_cache`, `value_and_gradient!!`, `value_gradient_and_hessian!!`, `AutoMooncake`, `AutoMooncakeForward`) are unchanged, so the extension works as-is. + ## 0.15.4 `value_and_gradient!!`, `value_and_jacobian!!`, and `value_gradient_and_hessian!!` now accept a `context=` keyword that overrides, for a single call, the `context` frozen at `prepare` — without re-preparing (#167). The default (`context=nothing`) leaves the hot path unchanged; a `Tuple` override must match the frozen context's element types and shapes — a type mismatch (or a non-`Tuple` override) throws an `ArgumentError` — and reuses the type-keyed cache. Backends that bake context into their prepared state throw an `ArgumentError` for a non-empty-input override (re-`prepare` instead): compiled-tape ReverseDiff (`AutoReverseDiff(; compile=true)`) on all three entry points, and Mooncake's Hessian; Mooncake Jacobian preps are context-free by construction, so only an empty override validates there. Empty input runs no derivative machinery, so no backend rejects an override there (it is still validated). diff --git a/docs/Project.toml b/docs/Project.toml index 18adc32e..06e3d720 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -11,7 +11,7 @@ AbstractPPL = {path = ".."} [compat] ADTypes = "1.22.0" -AbstractPPL = "0.15.4" +AbstractPPL = "0.15.5" Distributions = "0.25.126" Documenter = "1.17.0" ForwardDiff = "1.4.1" diff --git a/test/ext/differentiationinterface/Project.toml b/test/ext/differentiationinterface/Project.toml index a91676d3..ed2db218 100644 --- a/test/ext/differentiationinterface/Project.toml +++ b/test/ext/differentiationinterface/Project.toml @@ -9,7 +9,7 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] ADTypes = "1" -AbstractPPL = "0.15.4" +AbstractPPL = "0.15.5" DifferentiationInterface = "0.6, 0.7" ForwardDiff = "1" ReverseDiff = "1" diff --git a/test/ext/forwarddiff/Project.toml b/test/ext/forwarddiff/Project.toml index 0c9b6ef9..0ecda93f 100644 --- a/test/ext/forwarddiff/Project.toml +++ b/test/ext/forwarddiff/Project.toml @@ -8,7 +8,7 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] ADTypes = "1" -AbstractPPL = "0.15.4" +AbstractPPL = "0.15.5" DiffResults = "1" ForwardDiff = "0.10, 1" julia = "1.10" diff --git a/test/ext/mooncake/Project.toml b/test/ext/mooncake/Project.toml index 1bf4d769..214fbcc1 100644 --- a/test/ext/mooncake/Project.toml +++ b/test/ext/mooncake/Project.toml @@ -8,6 +8,6 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] ADTypes = "1" -AbstractPPL = "0.15.4" +AbstractPPL = "0.15.5" Mooncake = "0.5.27, 0.6" julia = "1.10"