On this page
Final 1.9.9 API snapshot and exact diff from 1.9.0
The 1.9.9 convergence gate publishes the final candidate public-API snapshot and its exact diff from 1.9.0. The machine-readable source is api-snapshot-final-1.9.9.json; the frozen declaration baseline remains public-api-1.9.json, and the exact proposed 1.9-to-2.0 consequences remain api-diff-1.9-to-2.0.json.
The final candidate surface
The 2.0 candidate surface has exactly two parts:
1. The 1.9.0 public API surface, unchanged. The 2,880-row frozen snapshot is byte-identical from 1.9.0 through 1.9.9. Every src/*.pas interface digest matches the baseline, so 1.9.1–1.9.9 added no declaration, removed no declaration, and changed no signature, default, behavior, warning, or package membership. 2. The closed 1.10.0 additions. The closed capability manifest declares TVector2D.Rotate for 1.10.0 only and applies no deprecation. 1.9.x adds no declaration.
Exact diff from 1.9.0, by category
| Category | Exact 1.9.0-to-1.9.9 consequence |
|---|---|
| Compatibility-preserving corrections | None. No source declaration, behavior, warning, or packaging correction was required after 1.9.0. |
| Source | Empty. No declaration is added, removed, renamed, hidden, or re-signatured in the 1.9.x line. |
| Behaviour | Empty. No numerical rule, ownership/mutation/aliasing contract, exception, status, tolerance, RNG, callback, or thread-safety behavior changes. |
| Warnings | Empty. No deprecation or compiler warning is added or removed. |
| Packaging | Empty. All units, direct-source use, and the Lazarus package remain present. |
| 2.0 documentation | The 1.9.3 documentary defaults (common paths first, compatibility differences explicit, generic scaffolding labelled implementation support) plus the versioned web/offline documentation, checked examples, and evidence accumulated across 1.9.x. |
Closure
The diff has no open questions. The compiled 1.9-to-2.0 proposal remains the empty source/behaviour/warning/packaging diff published by 1.9.3; the only future source change is the closed 1.10.0 addition declared in the manifest. tools/check_convergence.py fails if the snapshot status, the diff categories, or the manifest disagree with the roadmap and the 1.9.3 decision artifacts.