# Changelog
All notable changes to SoftGPU are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.8.0] — 2026-09-16
### Added
- HSA executable subset: `hsa_code_object_reader_*`, `hsa_executable_create_alt` /
load_agent / freeze / get_symbol_by_name / symbol_get_info / get_info.
- SoftGPU agent image load: gfx1201 metadata + `.text` extract
(`softgpu-amd-code-object::load_agent_image`), fixture
`fixture_tiny_add_with_text`.
- SoftGPU CC launch for loaded SoftGPU artifacts; AQL
`softgpu_kernel_success` via executable→kernel_object bridge.
- Host gate `phase_hip_load`; ROCm helper
`environments/rocm-x86_64/run-phase-hip-load.sh`.
### Changed
- `ACTIVE_PHASE` → `phase-hip-load`.
- Workspace package version → `0.8.0`.
### Notes
- SoftGPU fixtures use SoftGPU CC (`s[4:5]` kernarg). Arbitrary hipcc `.text`
may still trap until ISA grows; optional hipcc compile is inspect-only.
- Unrestricted HIP / rocBLAS / hardware differential remain unsupported (v0.9).
## [0.7.0] — 2026-09-16
### Added
- Broader SoftGPU gfx1201 compute ISA subset `softgpu-gfx1201-compute-v2`
(SOPC/SOPK/branches, richer SOP1/SOP2, VOP1/VOP2/VOPC) with llvm-mc goldens.
- SoftGPU builtins `clamp64` and `select_gt50` (host differential + `run-kernel`).
- Nested Phase 11 `softgpu-gfx1201-e2e-tiny-v1` / `tiny_add` remains supported.
- Living gap map updates in [`docs/ISA-gap-analysis.md`](docs/ISA-gap-analysis.md).
### Changed
- `ACTIVE_PHASE` → `phase-isa-v2`.
- Workspace package version → `0.7.0`.
### Notes
- HSA executable / HIP module load still stubbed (target of v0.8.0).
- Unrestricted HIP launch and hardware differential remain unsupported (v0.9 / Phase 12).
## [0.6.0] — 2026-09-16
### Added
- Phase 10: `softgpu-amd-isa` sourced gfx1201 SALU foundation (decoder, machine
state, fail-closed traps, llvm-mc goldens, fuzz), `softgpu decode-isa` /
`run-isa`, Article 11.
- Phase 11: e2e tiny subset `softgpu-gfx1201-e2e-tiny-v1` (SMEM/VOP2/GLOBAL),
llvm-mc SoftGPU `tiny_add` text, AQL `softgpu_kernel_success` for registered
kernels with SoftGPU kernarg, `softgpu run-kernel`, Article 12,
[`docs/isa-path.md`](docs/isa-path.md).
### Changed
- `ACTIVE_PHASE` → `phase-11`.
- Workspace / crates.io package version → `0.6.0` (all SoftGPU crates via
`[workspace.package]`, including new `softgpu-amd-isa`).
### Notes
- Unregistered AQL kernels remain `diagnostic_complete_no_execution`.
- SoftGPU e2e tiny calling convention is SoftGPU-defined (not a full AMD ABI claim).
- Unrestricted HIP/`hipcc` launch and full gfx1201 coverage remain **unsupported**.
- Hardware differential deferred to Phase 12.
- Tag `v0.6.0` must match root `Cargo.toml` `[workspace.package] version = "0.6.0"`
(release workflow gate).
## [0.5.0] — 2026-09-16
### Added
- Phase 9: SoftGPU debugger (`softgpu-debug-trace-v1`), breakpoints, state snapshots, hostile JSONL reader, `schedule_seed` wave-order exploration, race minimize; `softgpu debug-functional`; Article 10; `phase9_debug` tests.
- Coverage-focused tests for ELF fail-closed paths, Phase 9 debug edges, and CLI smoke (`debug-functional`, `--sanitize collect`, `check-config`).
### Changed
- `ACTIVE_PHASE` → `phase-9`.
- Workspace / crates.io package version → `0.5.0` (all SoftGPU crates via `[workspace.package]`).
### Notes
- Debugger never invents SFIR→source line maps (provenance string only).
- HIP/HSA AQL kernel success remains **unsupported**.
- gfx1201 ISA execution remains **unsupported** (Phase 10+).
- Tag `v0.5.0` must match root `Cargo.toml` `[workspace.package] version = "0.5.0"` (release workflow gate).
## [0.4.0] — 2026-09-15
### Added
- Phase 8: SoftGPU functional sanitizer (shadow state, SoftGPU happens-before races, missing barrier, OOB/UAF/uninit, replay bundles); `--sanitize` on `run-functional`; Article 9; `phase8_sanitize` tests.
### Changed
- `ACTIVE_PHASE` → `phase-8`.
### Notes
- HIP/HSA AQL kernel success remains **unsupported** (diagnostic complete ≠ success).
- gfx1201 ISA execution remains **unsupported** (Phase 10+).
- Fidelity claimed for Phase 8 path: **Sanitized** (declared SoftGPU HB subset on SFIR).
## [0.3.0] — 2026-09-15
### Added
- Phase 7: SoftGPU software waves/lanes, group memory, barrier segments, structured `if`/`while`, compares/`and`, selected `atomic_add`; `wave_barrier` schedule; Article 8; `phase7_semantics` tests.
- Phase 6: `softgpu-functional` SoftGPU Functional IR (`softgpu-sfir-v1`) CPU interpreter, `softgpu run-functional`, fixtures under `fixtures/functional/`, [`docs/functional-path.md`](docs/functional-path.md), Article 7.
- Coverage harness: shared `tools/coverage.sh`, enforced line/function floors, HTML+LCOV artifacts, `llvm-tools-preview` in toolchain.
- Tests: SoftGPU-owned fake SFIR programs + forged/null HSA handle fail-closed checks (no mock framework); CLI smoke for Phase 5/6 commands.
### Changed
- `ACTIVE_PHASE` → `phase-7` (then Phase 6 markers in earlier notes).
- Honesty: functional CPU execution ≠ gfx1201 ISA emulation; HIP/HSA AQL still diagnostic-only for kernels.
- Release publish order includes `softgpu-functional`.
### Fixed
- Release workflow: skip `cargo publish --dry-run` for crates whose SoftGPU sibling deps are not yet on crates.io; use `cargo info --registry crates-io` so local workspace versions are not mistaken for published crates.
### Notes
- HIP/HSA AQL kernel success remains **unsupported** (diagnostic complete ≠ success).
- gfx1201 ISA execution remains **unsupported** (Phase 10+).
- Fidelity claimed for Phase 6–7 path: **Functional** (disclosed SFIR on CPU).
## [0.2.0] — 2026-09-15
### Added
- Phase 3: Path C memory (legacy regions + AMD pools), signals, queue create/observe, charter stress, Article 4.
- Phase 4: AQL packet validate/trace, diagnostic complete/reject contract, capture/replay, Article 5, [`docs/aql-diagnostic-contract.md`](docs/aql-diagnostic-contract.md).
- Phase 5: `softgpu-amd-code-object` bounded ELF64 + MessagePack AMDHSA metadata (`NT_AMDGPU_METADATA`, `gfx1201` gate), `softgpu inspect-code-object`, fixtures/provenance, Article 6, [`docs/code-object.md`](docs/code-object.md).
- ROCm probes through Phase 5 (`phase3`/`phase4`/`phase5` helpers in the load-proof harness).
### Changed
- Agent `FEATURE=KERNEL_DISPATCH` means queue + AQL intercept + metadata inspect — **not** kernel execution.
- `ACTIVE_PHASE` → `phase-5`; CI `push` triggers narrowed to `main`/`master` (PR runs once via `pull_request`).
### Notes
- Kernel / gfx1201 ISA execution remains **unsupported** (Phase 6+).
- Diagnostic AQL completion is never claimed as kernel success.
- Fidelity claimed: **ABI** / protocol observation (see README and `docs/status.md`).
## [0.1.0] — 2026-09-14
### Added
- Phase 0 charter: fidelity vocabulary, fail-closed unsupported policy, profile schema with provenance.
- Phase 1: SoftGPU `libhsa_runtime64` (`softgpu-hsa`) with fail-closed HSA stubs, `ROCR_1` ELF version node, pinned ROCm **7.14.0** HIP load proof in CI.
- Phase 2: generation-safe handles, one virtual GPU agent (`FEATURE=0`), profile-backed identity, HIP-linked HSA discovery probe.
- Workspace crates: `softgpu` (CLI), `softgpu-core`, `softgpu-hsa`.
- CI: core (macOS/Linux), ROCm integration gate, coverage → Coveralls, code quality, dependency (`cargo-deny`) checks, tag-driven crates.io release workflow.
### Notes
- Queues, AQL, kernels, and `hipGetDeviceCount > 0` remain **unsupported** / out of scope for 0.1.0.
- Fidelity claimed: **ABI** (see README and `docs/status.md`).
[Unreleased]: https://github.com/thanos/SoftGPU/compare/v0.8.0...HEAD
[0.8.0]: https://github.com/thanos/SoftGPU/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/thanos/SoftGPU/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/thanos/SoftGPU/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/thanos/SoftGPU/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/thanos/SoftGPU/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/thanos/SoftGPU/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/thanos/SoftGPU/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/thanos/SoftGPU/releases/tag/v0.1.0