docs: update CHANGELOG and README for development changes
Assisted-by: MiMo V2.5 Pro
This commit is contained in:
+38
-1
@@ -11,7 +11,44 @@ Unreleased changes on the `development` branch.
|
|||||||
|
|
||||||
### Added
|
### 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
|
## [0.31.1] — 2026-08-20
|
||||||
|
|
||||||
|
|||||||
@@ -81,12 +81,12 @@ cross-compiles the same four targets.
|
|||||||
| `ast` | The abstract syntax tree. |
|
| `ast` | The abstract syntax tree. |
|
||||||
| `parser` | Line-oriented, error-tolerant parser producing the AST. |
|
| `parser` | Line-oriented, error-tolerant parser producing the AST. |
|
||||||
| `arch` | amd64, arm64, riscv64 and loong64 register files and instruction tables. |
|
| `arch` | amd64, arm64, riscv64 and loong64 register files and instruction tables. |
|
||||||
| `lint` | Conservative static checks. |
|
| `lint` | Conservative static checks (13 rules including unused-label, invalid-textflag, stack-imbalance). |
|
||||||
| `format` | A canonical formatter — `gofmt` for assembly. |
|
| `format` | A canonical formatter — `gofmt` for assembly. |
|
||||||
| `asm` | The standalone assembler: amd64, RISC-V and LoongArch encoders, linker, object-file emitters (ELF, GOOBJ). |
|
| `asm` | The standalone assembler: all four architecture encoders, linker, object-file emitters (ELF with DWARF5, GOOBJ). |
|
||||||
| `verify` | JIT execution substrate for dynamic analysis, combined ABI+fuzz differential testing. |
|
| `verify` | JIT execution substrate for dynamic analysis, combined ABI+fuzz differential testing. Assembly trampolines for all four architectures. |
|
||||||
| `debug` | Interactive ptrace debugger with GPR/YMM register display and named buffer allocation. |
|
| `debug` | Interactive ptrace debugger for all four architectures: single-stepping, breakpoints, hardware watchpoints, register and memory inspection. |
|
||||||
| `lsp` | Language Server Protocol server. |
|
| `lsp` | Language Server Protocol server: completion, hover, symbols, diagnostics, semantic tokens, find references, rename, formatting, inlay hints. |
|
||||||
| `cmd/gasm` | The `gasm` binary tying it all together. |
|
| `cmd/gasm` | The `gasm` binary tying it all together. |
|
||||||
| `_gen` | The generator that rebuilds the instruction tables from the Go toolchain. |
|
| `_gen` | The generator that rebuilds the instruction tables from the Go toolchain. |
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user