feat: release v0.29.0 with RISC-V GOOBJ, debugger enhancements, and new
CLI commands
This commit is contained in:
@@ -9,6 +9,42 @@ and this project adheres to [Conventional Commits](https://www.conventionalcommi
|
||||
|
||||
Unreleased changes on the `development` branch.
|
||||
|
||||
## [0.29.0] — 2026-08-05
|
||||
|
||||
RISC-V GOOBJ emission, YMM vector register display, named buffer allocation
|
||||
in the debugger, two new CLI commands (`diff`, `profile`), go-to-definition in
|
||||
the LSP, combined ABI+fuzz verification, and did-you-mean label suggestions.
|
||||
|
||||
### Added
|
||||
|
||||
- **RISC-V GOOBJ emission** — `gasm asm --format goobj` for RISC-V produces
|
||||
linkable Go objects with funcdata, pc-value tables, and RISC-V relocation
|
||||
types (same format as amd64 GOOBJ, with the RISC-V architecture marker).
|
||||
- **`gasm diff`** — compare the machine code of two assembly files byte-for-byte;
|
||||
shows which functions differ and the first few differing bytes.
|
||||
- **`gasm profile`** — show the basic-block structure of each function: labels,
|
||||
offsets, frame size, and NOSPLIT flag.
|
||||
- **LSP go-to-definition** — `textDocument/definition` navigates from a label
|
||||
reference to its definition.
|
||||
- **did-you-mean** — when the RISC-V assembler encounters an undefined label, it
|
||||
suggests the closest existing label using Levenshtein distance.
|
||||
- **YMM vector register display** — `regs` in the debugger now shows YMM
|
||||
registers via `PTRACE_GETFPREGS` (falls back to XMM when XSAVE is unavailable).
|
||||
- **Named buffer allocation** — `gasm debug --buf name:size:pattern` allocates
|
||||
buffers in the debuggee filled with `zero`, `ones`, `seq`, or a hex pattern;
|
||||
buffer pointers are placed into the argument block at the matching positions.
|
||||
- **Crash input storage** — `FuzzResult.CrashInput` stores the input that caused
|
||||
a crash or mismatch for reproducibility.
|
||||
- **ABI + fuzz combined** — `gasm verify --fuzz` now runs ABI checks (sentinel
|
||||
registers, canary, stack bounds) alongside differential fuzz testing.
|
||||
|
||||
### Verified
|
||||
|
||||
- RISC-V GOOBJ output links correctly with the Go toolchain.
|
||||
- `gasm diff` detects byte-level differences in real assembly kernels.
|
||||
- LSP go-to-definition resolves labels across functions and files.
|
||||
- Debugger YMM display confirmed on AVX2-capable hardware.
|
||||
|
||||
## [0.28.0] — 2026-08-03
|
||||
|
||||
RISC-V encoder: full RV64IMAFDC instruction set with RVC compression, MOV
|
||||
|
||||
Reference in New Issue
Block a user