Version: dev

Upstream RFC drafts

Status: drafts, 2026-10-13, filed upstream as issues on 2026-10-23 (the Issue column). Needed-by dates updated 2026-10-14 for milestone M4b (D37). Upstream progress updated 2026-10-26 (the table below the list). The 2026-10-14 reuse audit (survey §6) verified that each ask names a real gap: none of U1–U15 duplicates existing upstream code.

These are the changes EarthSciIntegrator needs in sibling repos. Each draft follows the EarthSciAST RFC format and cites current upstream code by file:line. Anything a draft could not verify is labelled as an assumption. The integrator-side context is in ../architecture.md §13 and ../decisions.md .

#TargetDraftIssueNeeded by
U1EarthSciAST specsolver.external : a document points at its run config (esm 1.3.0)EarthSciAST#538M2
U2EarthSciAST flattenPer-term provenance : equation_contributions beside flattened equationsEarthSciAST#539M2
U3EarthSciAST runtimesRange-restricted RHS : operator subsets over tiles with halos, and lanes; bitwise assembly contractEarthSciAST#540M3, M5
U4EarthSciAST runtimesReentrant RHS : Rust RhsProgram (Send + Sync), plus a reentrant Julia entryEarthSciAST#541M3
U5EarthSciASTFloat32 integration : what a declared Float32 governs, and what the integrator ownsEarthSciAST#542M5g, M7
U6EarthSciASTStrip and expose : events, parameter updates and algebraic equations returned to the caller; standalone observed kernelsEarthSciAST#543M4b (eqice on shared memory, D37)
U7EarthSciASTDiffForcing and array-parameter columnsEarthSciASTDiff#1M4
U8EarthSciASTDiffSecond-order bands for Rosenbrock discrete adjointsEarthSciASTDiff#2M4
U9EarthSciASTDiffFiltered faq, non-+ reductions, recurrences ; column_block structure; VJP modelsEarthSciASTDiff#3M4, M4b, M7
U10EarthSciASTDiffProduction-rate Rust assembly , after a catch-up stepEarthSciASTDiff#4M3
U11EarthSciIOAsync prefetch and rank windowsEarthSciIO#8M5 (prefetch from M3)
U12EarthSciIORust streaming region writer : commit protocol, indexed recordsEarthSciIO#9M4, M5
U13EarthSciAST.jl (Reactant ext)Traceable per-operator StableHLO for the Julia GPU pathEarthSciAST#544M5g
U14EarthSciAST specDeclared vs unspecified precision (D29)EarthSciAST#545M5g, M7
U15EarthSciAST.jlRecurrence execution , native and StableHLOEarthSciAST#546M7
U16EarthSciAST specsolver.time_span : the run interval a document asks for (D60)EarthSciAST#550M2
U17EarthSciASTDiffTime-derivative bands : ∂f/∂t as a specified, golden-gated band model, for Rosenbrock’s f_tEarthSciASTDiff#11M3 (restores M2’s time-dependent Rosenbrock cases)

Upstream progress (2026-10-26):

#State
U1Done: released in EarthSciAST v0.4.0 (esm 1.3.0), esm-spec §2.2.6, with the location accessor.
U2Done: released in EarthSciAST v0.4.0, equation_contributions (esm-libraries-spec §4.7.5), plus Rust’s equation_lifted.
U3Done: released in EarthSciAST v0.5.0 (EarthSciAST#557; esm stays 1.3.0), range-restricted right-hand sides over tiles and lanes in Julia and Rust (API_SPEC §5.8, CONFORMANCE_SPEC §5.50). Published 2026-10-26 to Julia’s General registry, crates.io and PyPI.
U4Done: released in EarthSciAST v0.5.0 (EarthSciAST#561), rhs_program with forcing sets in Julia and Rust’s RhsProgram (Send + Sync) (API_SPEC §5.8, CONFORMANCE_SPEC §5.51). Rust’s M2 end-to-end runs can use it (spec/toy-problems.md §4).
U10Merged on EarthSciASTDiff main, closing EarthSciASTDiff#4: catch-up (W0, #5), trimmed evaluation document (W1, #8), scatter plans (W3, #10), Rust production assembly (W2, W4, W5, #12). To be released with EarthSciASTDiff 0.2.
U16Done: released in EarthSciAST v0.4.0 (esm 1.3.0), esm-spec §2.2.7, with resolve_time_span in every binding.
U17Done on EarthSciASTDiff main (EarthSciASTDiff#13, closing #11): esm-jacobian-spec.md §4.2 specifies wrt: "time" bands, §8 their evaluation document, and the tgrad_photolysis goldens gate them in Julia, Rust and Python. To be released with EarthSciASTDiff 0.2.
othersOpen. EarthSciASTDiff 0.2 (its Rust crate is on EarthSciAST 0.6; its Julia package is 0.1.0 with compat EarthSciAST “0.4, 0.5” and SciMLBase “2”, so it cannot yet share an environment with EarthSciIntegrator.jl, spec/plan.md §10 item 12) is expected before M2’s stage 2; spec/plan.md is written against its main.

Cross-cutting prerequisites (architecture §13):

  • esm 1.3.0 for the three model repos.
  • EarthSciAST’s unmerged fix/f59-mounted-leaf-precision branch (for U14).
  • A spec clarification permitting batched recurrence positions (for U15).
  • The EarthSciASTDiff Rust/Python catch-up (U10 step W0).