Repository navigation
v0.1.0
EarthSciASTDiff v0.1.0
EarthSciASTDiff v0.1.0
First registered release. EarthSciASTDiff differentiates .esm expression ASTs
symbolically and emits the Jacobian as structured bands, with a Julia reference
implementation (this package) and Python and Rust bindings that are gated
against the same goldens.
This is a new package, so nothing here breaks an earlier release; the
"Breaking changes" entry below is a commit from before the first tag (the port
to EarthSciAST 0.1.x / esm 1.0.0), not a change for users.
Breaking changes
- port!: EarthSciAST 0.1.x / esm 1.0.0 (f4d98fc)
Changelog
- fix(julia): add LICENSE to the package folder, hand-written v0.1.0 notes (3c56c2a)
- docs.yml: publish whole-docs versions on release tags (1a7ba94)
- docs: patch earthsci-ast to the sibling checkout in the Rust examples (1530567)
- fix(julia): accept EarthSciAST 0.6 and SciMLBase 3 (c681580)
- docs: point the Julia example env at the sibling EarthSciAST checkout (fa70e52)
- docs.yml: mint the site dispatch token from the docs GitHub App (555124f)
- TagBot: pass secrets through so the org TagBot App is used (77ea576)
- docs.yml: publish API docs per release tag (versioned API reference) (f8ca3f5)
- docs: publish to earthsci.dev with a cross-language API reference (9484166)
- Release through the shared EarthSciML release workflows; publish the Rust crate (d0da4e6)
- fix: time-band review fixes (#13) (3be52ac)
- fix(julia): accept EarthSciAST 0.5 (930100e)
- spec: specify and golden-gate time-derivative bands (#11) (b532371)
- fix(rust): production assembly review fixes (#12) (19a5b82)
- fix(test): drop the binary32 precision from coupled_chem_advection (18205b7)
- Update EarthSciAST compatibility to version 0.4 (c396a16)
- feat(rust): production-rate Jacobian assembly — compiled band program, plans, matrix-free products (#4 W2, W4, W5) (4898812)
- fix(evaldoc): drop unread observed, refuse element derivatives, cse=false goldens (18b9661)
- fix(scatter): decode plans at bind, refuse contracted lane bands, Rust bind step (edb8389)
- feat(rust): port scatter plans; band_fields for the plan value check (fb88fc3)
- feat(julia): scatter plans for lane blocks, sparse lane blocks, column bands and CSR (4a0da6e)
- test: evaldoc golden for the contracting_observed fixture (e8f2e3d)
- feat(rust): port the evaluation document and hoist_observed (08c36d3)
- feat(julia): trim the source RHS out of the evaluation document; evaldoc goldens (22b8f72)
- fix: capture-avoiding inlining and position-aware nested sums (22fd5bc)
- fix: keep the sum when inlining a contracting observed (99e3074)
- fix: credit arrayed and flattened observed; dedupe observed scans (f99c6fa)
- fix(compat): require EarthSciAST 0.3 (0.1/0.2 predate the faq tag) (f0c6e0f)
- fix(julia): declare LinearAlgebra in the test target (1f94391)
- ci: run all three bindings against EarthSciAST main on PRs and weekly (ee372bd)
- chore(compat): allow EarthSciAST 0.3 (the sibling is 0.3.1; Pkg.test could not resolve) (1cd13a8)
- fix(python): catch up with EarthSciAST main — faq tag, esm 1.0.0 variable model, pruning (4425cf5)
- fix(rust): catch up with EarthSciAST main — faq tag, esm 1.0.0 variable model, pruning (98e3269)
- fix(diff): match the faq node tag, with aggregate as the deprecated alias (33d2b7c)
- Clarify commit message guidelines for Claude (924bb54)
- chore(compat): allow EarthSciAST 0.2 (the sibling has been 0.2.0; Pkg.test could not resolve) (0bd517f)
- feat(assemble): prepare_jacobian(; source_layout) skips the redundant source-model rebuild (7f83c11)
- refactor(rust): follow EarthSciAST's H-3 encapsulation (295c728)
- chore: follow EarthSciAST's load split (985d4c0)
- refactor: follow EarthSciAST's parse_expression -> expression_from_json rename (9cb2864)
- port!: EarthSciAST 0.1.x / esm 1.0.0 (f4d98fc)
- docs(julia): say what was measured, not what was assumed (cbcf141)
- fix(bench): --metaparameters are integers, as the loader's keyword requires (f5301c9)
- perf(julia): filter structural equality by hash before interning (d8025f1)
- perf(julia): make the band calculus linear in the flattened RHS (0c8208f)
- fix(julia): evaluate an :oop derived model, and inline full-rank makearray values (20ee542)
- feat(julia): do not inline observed the differentiation target cannot move (15c7ecc)
- fix(julia): expand templates on the FlattenedSystem sysview path too (91cdefa)
- feat(rust): earthsci-astdiff binding — all three golden gates on first run (5cb0375)
- feat(python): factorization plans — full block byte-parity (4506eb4)
- feat(python): block emission with template CSE, byte-gated block goldens (51d6765)
- feat(python): numeric assembly, gated by cross-runtime value goldens (5026a23)
- chore(python): untrack pycache, add package .gitignore (f89caf8)
- feat(python): earthsci-astdiff band calculus, golden-gated against the reference (a5ee70c)
- feat(julia): contracted-index bands, interp.bilinear derivative, tgrad (f89c559)
- feat(julia): evaluation-model CSE — hoisted observed buffers for band coefficients (fc55626)
- feat(julia): static region clipping — exact patterns without membership guards (a101d76)
- feat(julia): coefficient-size control — template CSE at emission + branch-aware simplification (a9a9b22)
- feat(julia): ODE-solve wiring on the analytical sparse Jacobian (52a5a54)
- feat: analytical sparse Jacobians for .esm models — spec draft + Julia reference (6e79107)
- Initial commit (9b1f212)
Closed issues:
- RFC: Production-rate Jacobian assembly in Rust (#4)
- Inlining a contracting observed drops its sum: the contracted index is captured by the reading faq, giving silently wrong Jacobian bands (#6)
- RFC: Time-derivative bands: specify and golden-gate wrt = time (#11)
- Julia: accept EarthSciAST 0.6 and SciMLBase 3 (#17)
Installation
using Pkg; Pkg.add("EarthSciASTDiff") # Julia
pip install earthsci-astdiff # Python