chore(release): prepare v0.30.0
Test / vet (push) Failing after 17s
Test / test (push) Skipped
Test / build (push) Skipped

Assisted-by: DeepSeek V4 Pro
This commit is contained in:
2026-08-13 18:27:12 +02:00
parent c05c53452f
commit b08885bd31
10 changed files with 26 additions and 11 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
- uses: actions/setup-go@v6 - uses: actions/setup-go@v6
with: with:
go-version: "1.26" go-version: "1.27rc1"
- name: Download dependencies - name: Download dependencies
run: go mod download run: go mod download
+3 -3
View File
@@ -15,7 +15,7 @@ jobs:
- uses: actions/setup-go@v6 - uses: actions/setup-go@v6
with: with:
go-version: "1.26" go-version: "1.27rc1"
- name: Download dependencies - name: Download dependencies
run: go mod download run: go mod download
@@ -41,7 +41,7 @@ jobs:
- uses: actions/setup-go@v6 - uses: actions/setup-go@v6
with: with:
go-version: "1.26" go-version: "1.27rc1"
- name: Download dependencies - name: Download dependencies
run: go mod download run: go mod download
@@ -84,7 +84,7 @@ jobs:
- uses: actions/setup-go@v6 - uses: actions/setup-go@v6
with: with:
go-version: "1.26" go-version: "1.27rc1"
- name: Download dependencies - name: Download dependencies
run: go mod download run: go mod download
+1 -1
View File
@@ -55,7 +55,7 @@ No body, no footers, no trailing period on the subject.
## Code Style ## Code Style
Language: Go 1.26 (`toolchain go1.26.5`). Language: Go 1.27 (`toolchain go1.27rc1`).
### Formatter ### Formatter
+14
View File
@@ -9,6 +9,17 @@ and this project adheres to [Conventional Commits](https://www.conventionalcommi
Unreleased changes on the `development` branch. Unreleased changes on the `development` branch.
## [0.30.0] — 2026-08-13
The LoongArch encoder (Phase 5) ships with ELF64 and GOOBJ emission, verified
byte-for-byte against `GOARCH=loong64 go tool asm` and linked into a real
`go build`; the shared GOOBJ emitter now writes the per-function DWARF symbols
the linker's DWARF pass reads. The RISC-V encoder reaches byte-for-byte parity
with `go tool asm`: the frame model, operand ordering, RVC compression,
large-immediate and `MOV $imm` materialisation, branch/jump encodings, and
`CALL sym(SB)` (now a `JAL` with an `R_RISCV_JAL` relocation). The debugger
tracks four hardware watchpoint slots, and the toolkit is Linux-only.
### Added ### Added
- **LoongArch encoder (Phase 5).** `gasm asm` can now assemble `_loong64.s` - **LoongArch encoder (Phase 5).** `gasm asm` can now assemble `_loong64.s`
@@ -100,6 +111,9 @@ Unreleased changes on the `development` branch.
- **Linux only.** The toolkit, its CI and the released binaries are now - **Linux only.** The toolkit, its CI and the released binaries are now
Linux-only; cross-compiled to linux/{amd64,arm64,riscv64,loong64}. Linux-only; cross-compiled to linux/{amd64,arm64,riscv64,loong64}.
- **Go 1.27 toolchain.** The build and CI toolchain moves to `go1.27rc1`
(the release-candidate line used to ship Go 1.27 features on release day),
so the emitted GOOBJ relocation types match the toolchain that links them.
- **Phase 4 closed.** README's "Remaining" list for the debugger is gone; - **Phase 4 closed.** README's "Remaining" list for the debugger is gone;
disassembly at PC, memory-write, watchpoints, and source-line mapping are disassembly at PC, memory-write, watchpoints, and source-line mapping are
all shipped. all shipped.
+1 -1
View File
@@ -2,7 +2,7 @@
## Prerequisites ## Prerequisites
- Go 1.26 or later (`toolchain go1.26.5`) - Go 1.27 or later (`toolchain go1.27rc1`)
- `just` command runner - `just` command runner
- A Linux host on amd64, arm64, riscv64 or loong64 - A Linux host on amd64, arm64, riscv64 or loong64
+1 -1
View File
@@ -34,7 +34,7 @@ import (
// version is the release version, stamped at build time via // version is the release version, stamped at build time via
// -ldflags "-X main.version=…" (defaulting to the current release). // -ldflags "-X main.version=…" (defaulting to the current release).
var version = "0.29.0" var version = "0.30.0"
func main() { func main() {
if len(os.Args) < 2 { if len(os.Args) < 2 {
+2 -1
View File
@@ -302,7 +302,8 @@ verbatim) is captured from the installed `go tool asm`, so the output is
always consistent with the toolchain that links it. RISC-V and LoongArch always consistent with the toolchain that links it. RISC-V and LoongArch
GOOBJ emission share this emitter: the loong64 marker with GOOBJ emission share this emitter: the loong64 marker with
R_LOONG64_ADDR_HI/LO relocation types, and the riscv64 marker with a single R_LOONG64_ADDR_HI/LO relocation types, and the riscv64 marker with a single
R_RISCV_PCREL_ITYPE/STYPE relocation per AUIPC pair — the model `cmd/asm` R_RISCV_PCREL_ITYPE/STYPE relocation per AUIPC pair (plus `R_RISCV_JAL` for
`CALL sym(SB)`) — the model `cmd/asm`
writes, not the ELF HI20/LO12 pair — and both link into a real `go build` for writes, not the ELF HI20/LO12 pair — and both link into a real `go build` for
their `GOARCH`. Per function, the emitter also writes the two DWARF their `GOARCH`. Per function, the emitter also writes the two DWARF
symbols the linker's DWARF pass reads verbatim — the subprogram DIE symbols the linker's DWARF pass reads verbatim — the subprogram DIE
+1 -1
View File
@@ -4,7 +4,7 @@ Repository: [sourcedock.dev/petrbalvin/gasm-devkit](https://sourcedock.dev/petrb
## Prerequisites ## Prerequisites
- **Go** 1.26+ with `toolchain go1.26.5` - **Go** 1.27+ with `toolchain go1.27rc1`
- **just** — the command runner; every task below is a just recipe - **just** — the command runner; every task below is a just recipe
- No external dependencies beyond the Go toolchain - No external dependencies beyond the Go toolchain
+1 -1
View File
@@ -2,6 +2,6 @@ module sourcedock.dev/petrbalvin/gasm-devkit
go 1.26 go 1.26
toolchain go1.26.5 toolchain go1.27rc1
require golang.org/x/arch v0.29.0 require golang.org/x/arch v0.29.0
+1 -1
View File
@@ -3,7 +3,7 @@
# gasm-devkit — developer tooling for Go's Plan 9 assembler (GAsm). # gasm-devkit — developer tooling for Go's Plan 9 assembler (GAsm).
version := "0.29.0" version := "0.30.0"
default: default:
@just --list @just --list