From dbcedfba289798cf1474153f0d52705c8237a92f Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Tue, 19 May 2026 17:53:28 +0530 Subject: [PATCH 1/2] Revise 0.15.0 HISTORY.md --- HISTORY.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 4cc01a81..ed9f6628 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,6 +1,6 @@ ## 0.15.0 -New evaluator-preparation and AD interface: `prepare` binds a callable to a sample input (vector or `NamedTuple`); `value_and_gradient!!` / `value_and_jacobian!!` return value-and-derivative pairs from the resulting `Prepared` wrapper. The `!!` suffix signals the returned derivative may alias the cache — copy if you need to keep it. +Added a new evaluator-preparation interface for AD backends. `prepare` binds a callable to a sample input, either a vector or a `NamedTuple`, and returns a `Prepared` wrapper. `value_and_gradient!!` and `value_and_jacobian!!` then compute value-and-derivative pairs from that wrapper. The `!!` suffix means the returned derivative may alias backend cache storage, so copy it if you need to keep it across calls. ```julia using ADTypes, Mooncake # or DifferentiationInterface + ForwardDiff @@ -10,7 +10,14 @@ val, grad = value_and_gradient!!(prepared, [1.0, 2.0, 3.0]) # val == -7.0; grad == [-1.0, -2.0, -3.0] ``` -Two new AD-backend extensions ship with it: `AbstractPPLDifferentiationInterfaceExt` (any DI backend) and `AbstractPPLMooncakeExt` (`AutoMooncake`, `AutoMooncakeForward`). `AbstractPPLTestExt` gains a conformance harness via `generate_testcases` / `run_testcases` (reserved groups: `:vector`, `:namedtuple`, `:edge`, `:cache_reuse`). +Added two AD-backend extensions: + +- `AbstractPPLDifferentiationInterfaceExt`, supporting DifferentiationInterface backends. +- `AbstractPPLMooncakeExt`, supporting `AutoMooncake` and `AutoMooncakeForward`. + +The new evaluator path supports scalar gradients, vector-output Jacobians, `NamedTuple` inputs, reusable AD caches, input-shape checks, and constant context arguments via `context::Tuple`. + +`AbstractPPLTestExt` now provides a small AD conformance harness through `generate_testcases` and `run_testcases`, with reserved groups `:vector`, `:namedtuple`, `:edge`, and `:cache_reuse`. See [`docs/src/evaluators.md`](docs/src/evaluators.md) for the full interface, the `check_dims` and `context::Tuple` options, the `NamedTuple` input path, and extension-author guidance. From 0dc87d1584411abefbf03c8e3b43efb3af1761d7 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Tue, 19 May 2026 18:01:56 +0530 Subject: [PATCH 2/2] format --- HISTORY.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index ed9f6628..7b730187 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -12,8 +12,8 @@ val, grad = value_and_gradient!!(prepared, [1.0, 2.0, 3.0]) Added two AD-backend extensions: -- `AbstractPPLDifferentiationInterfaceExt`, supporting DifferentiationInterface backends. -- `AbstractPPLMooncakeExt`, supporting `AutoMooncake` and `AutoMooncakeForward`. + - `AbstractPPLDifferentiationInterfaceExt`, supporting DifferentiationInterface backends. + - `AbstractPPLMooncakeExt`, supporting `AutoMooncake` and `AutoMooncakeForward`. The new evaluator path supports scalar gradients, vector-output Jacobians, `NamedTuple` inputs, reusable AD caches, input-shape checks, and constant context arguments via `context::Tuple`.