docs: update CHANGELOG and README for development changes

Assisted-by: MiMo V2.5 Pro
This commit is contained in:
2026-08-21 00:39:38 +02:00
parent c4930438fd
commit f9eb4021d6
2 changed files with 43 additions and 6 deletions
+38 -1
View File
@@ -11,7 +11,44 @@ Unreleased changes on the `development` branch.
### Added
-
- **Multi-architecture debugger.** `gasm debug` works on arm64, riscv64
and loong64 in addition to amd64. Each architecture has its own ptrace
register access, disassembler (`golang.org/x/arch`), register display,
and stop-info handler. The REPL is fully arch-neutral.
- **JIT execution trampolines.** `verify.Call` now works on all four
architectures via hand-written assembly trampolines
(`trampoline_{arm64,riscv64,loong64}.s`) that save the Go stack, switch
to a prepared stack, and branch to the JIT function.
- **Hardware watchpoints on all architectures.** arm64 uses DBGWVR/DBGWCR
via `PTRACE_SETREGSET` with `NT_ARM_HW_BREAK`; riscv64 and loong64 use
`PTRACE_POKEUSER` to access trigger/debug registers.
- **LSP: find references** (`textDocument/references`).
- **LSP: rename symbol** (`textDocument/rename`).
- **LSP: document formatting** (`textDocument/formatting`) using the
`format` package for canonical gofmt-style output.
- **LSP: inlay hints** (`textDocument/inlayHint`) — frame size hints after
the TEXT directive's argument area.
- **Lint: `unused-label` rule.** Flags labels that are defined but never
referenced by any jump (Hint severity).
- **Lint: `invalid-textflag` rule.** Flags TEXT/GLOBL flags not in the
known set from `textflag.h` (Warning severity).
- **Lint: `stack-imbalance` rule.** Tracks SP changes and flags if the
net delta at RET does not match the declared frame size.
- **DWARF5 debug sections in ELF output.** All four ELF emitters now emit
`.debug_abbrev`, `.debug_info`, `.debug_line`, and `.debug_line_str`
sections, enabling `addr2line` and GDB/LLDB source-level debugging.
### Fixed
- **arm64 BL relocation.** `BL sym(SB)` now records a `RelArm64Branch`
relocation instead of emitting a bare instruction with no relocation.
- **GOOBJ R_ADDRARM64 constant.** Corrected from 9 (`R_CALLARM64`) to 3
(`R_ADDRARM64`).
- **Cross-package GOOBJ resolution.** `AssembleFileRISCV`,
`AssembleFileLOONG64`, and `AssembleFileARM64` now mark external
relocations and populate `img.Externals`, enabling cross-package symbol
resolution in GOOBJ output.
- **asm help text.** Updated to list arm64 as a supported architecture.
## [0.31.1] — 2026-08-20