-
v0.33.0
StableRelease / build (amd64, linux) (push) Successful in 49sRelease / build (arm64, linux) (push) Successful in 43sRelease / build (loong64, linux) (push) Successful in 46sRelease / build (riscv64, linux) (push) Successful in 45sTest / vet (push) Successful in 47sRelease / release (push) Successful in 18sTest / test (push) Successful in 2m39sTest / build (push) Successful in 43sreleased this
2026-09-14 21:36:25 +00:00 | 110 commits to main since this releaseAdded
- Stack-split guards in
gasm asm. Every framed function now gets
the morestack prologue check and the trailing morestack block
(CALL runtime.morestack_noctxt), byte-identical to the toolchain's
stacksplitoutput on all four architectures: the small, medium and
big frame classes, auto-NOSPLIT leaves, the materialised constants of
large frames (arm64R27, riscv64X31, loong64R30) and the
arm64 extrasize rule. Assembled objects are therefore linkable for
split functions, not onlyNOSPLITleaves. gasm dis. Standalone disassembly throughgolang.org/x/arch:
a.sfile is assembled and listed perTEXTfunction with local
labels at their real offsets, or raw bytes from a file or stdin are
disassembled linearly (-aselects the architecture). The debugger
shares the same decoder instead of carrying its own.gasm fmt -land-d. Check mode lists files whose formatting
differs; diff mode prints a unified diff from the project's own
LCS-based differ, with GNU header semantics.- LSP cross-file navigation. Go-to-definition and find references
fall back from local labels to theTEXTfunctions of every open
document, and rename follows the same cross-file matching. - Large frame offsets on riscv64 and arm64. Frame-relative loads
and stores beyond the signed 12-bit immediate range materialise the
address through the toolchain temp register (riscv64X31, arm64
R27) instead of silently truncating the offset (riscv64) or
rejecting the instruction (arm64); arm64 frame sizes now add the
toolchain's extrasize exactly (+8 when the frame leaves an alignment
gap, +16 when it is already aligned). - Tail calls
JMP sym(SB)on all four architectures (amd64E9,
arm64B, riscv64JAL X0, loong64B) with the call relocation. - Live oracle-parity tests. Kernel files covering every guard
class, large-offset pattern and tail call are assembled by gasm and
by the installedgo tool asmand compared byte-for-byte on all four
architectures, alongside the existing pinned-byte tests.
Fixed
- The v0.32.0 review findings: the parser rejects malformed
TEXT
frames and parses signed frame sizes; amd64 frame adjustments above
127 bytes encode with imm32; arm64 and loong64 relocation encodings
match the toolchain; the linter guards unnamedTEXTdirectives and
refreshes its textflag table; the LSP recovers from handler panics
and decodes client URIs; watchpoint slot state moved into the debug
session; dead verify code removed; em and en dashes replaced across
sources. gasm asm --format goobj: internal calls toTEXTsymbols of the
same file resolve on every architecture (the reference check accepted
only the amd64 call kind).gasm asm --format elfon loong64: branch relocations now map to
R_LARCH_B26instead of falling intoR_LARCH_PCALA_HI20.- arm64 large-prologue
ADD/SUBuse the extended-register encoding
the toolchain picks, and the morestack block saves the link register
with the toolchain'sORform on loong64.
Downloads
- Stack-split guards in