On this page
Closed 1.10.0 capability manifest
Version 1.9.9 closes the additive public work assigned to 1.10.0. This page explains the closed manifest; the machine-readable source is capability-manifest-1.10.0.json, checked by tools/check_convergence.py against the roadmap, the 1.9.3 API decision, the 1.9.7 migration rehearsal, and the frozen 1.9 API snapshot.
The manifest is a declaration list, not an implementation. 1.9.9 adds no public declaration; 1.10.0 implements exactly the closed declarations and nothing else.
Accepted declaration: TVector2D.Rotate
1.10.0 adds one allocation-free value operation to GeometryLib.Geometry:
function TVector2D.Rotate(const Angle: Double): TVector2D;
Closed behavior contract:
Angleis in radians; positive values rotate counter-clockwise about the origin.- The source vector is not modified; the result is a new value.
- The operation is O(1) and allocation-free on the fixed-size record.
Rotate(Pi / 2)agrees withPerpendicularandRotate(-a)invertsRotate(a)within a stated 1e-15 relative tolerance.- The magnitude is preserved within the stated tolerance for finite inputs.
V := V.Rotate(a)is an ordinary value assignment and is safe.- Rotating the zero vector returns the exact zero vector.
- Non-finite angle or components follow the documented GeometryLib non-finite contract.
The closed test plan covers orientation, angle conventions, perpendicular agreement, magnitude preservation, source immutability, zero-vector, non-finite, and allocation-free (heap-traced) fixtures across the standard test builds. The documentation plan extends the GeometryLib reference, the runnable geometry example, the capability inventory, and the 1.10.0 release notes.
Accepted declaration: deprecation marking
1.10.0 marks no declaration as deprecated:
- The 1.9.7 migration rehearsal retained
TPressureKit,EPressureError,TVelocityKit, andEVelocityErrorwith exact type/exception identity and no hidden dependency. That decision is closed; no warning or package move follows. - All 21 plain compiler aliases reviewed by the 1.9.3 decision remain retained. The common
TFluidDynamicsKit/EFluidDynamicsErrornames stay preferred documentation for new cross-fluid code only. IMatrix,TMatrixKit, andTMatrixKitSparseremain supported compatibility paths; no removal runway starts.- Full 1.x source compatibility is retained throughout 1.10.0.
The closed test plan re-runs the 1.9.7 consumer projects and alias-boundary package evidence against the 1.10.0 candidate and requires the alias review statuses to stay retain/review-only.
Explicit deferrals beyond 2.0
Every proposal that is not accepted into 1.10.0 is explicitly deferred rather than left open:
| Proposal | Routing | Reason |
|---|---|---|
| 3-D vector rotation | Deferred beyond 2.0 | Axis-angle/quaternion/matrix semantics plus orientation, units, normalization, and naming need a dedicated design |
| Bessel, elliptic, exponential-integral families | Deferred beyond 2.0 | No stable implementation or demonstrated downstream need |
| Advanced sparse direct algorithms | Deferred beyond 2.0 | Fill-reducing, multifrontal, distributed, out-of-core, GPU paths need separate storage/performance design |
| Block/flexible Krylov, AMG, parallel/SIMD dispatch | Deferred beyond 2.0 | No stable parallelism design; portable serial solvers remain the path |
| Advanced spectral families | Deferred beyond 2.0 | Dedicated design required beyond symmetric/Hermitian and partial solvers |
| Advanced DSP design and wavelet packets | Deferred beyond 2.0 | Conditional capability without qualified validation |
| Survival/factor analysis, robust covariance, boosting | Deferred beyond 2.0 | Prerequisite numerical validation unavailable |
| General model/decomposition persistence | Deferred beyond 2.0 | Selected adapters are stable; general persistence needs its own design |
| Additional domains or algorithm families | Deferred beyond 2.0 | New domains require the governance contribution gate |
Release discipline for 1.10.0
- 1.10.0 implements only this closed manifest plus the exact documentation, snapshot-diff, migration, and release-candidate work in the roadmap.
- At least two 2.0 release-candidate cycles run from tagged source and offline-documentation archives; the freeze accepts only release-blocking fixes with regression evidence and a reviewed API diff.
- 2.0.0 then requires only version/release metadata and promotion of the qualified candidate.
Closure status
unresolved_api_questions is empty. The final 1.9.9 API snapshot and diff record an empty compiled 1.9.0-to-1.9.9 diff, and every capability gap is either accepted into this manifest or explicitly deferred. No API design question remains open for the 1.10.0/2.0 handoff.