# Copyright (c) 2026 Petr Balvín (https://petrbalvin.org) # SPDX-License-Identifier: BSD-3-Clause # gasm-devkit — developer tooling for Go's Plan 9 assembler (GAsm). version := "0.7.0" default: @just --list # Download module dependencies. install: go mod download # Vet + gofmt check — zero errors, zero warnings. build: go vet ./... @test -z "$(gofmt -l .)" || { echo "gofmt diff:"; gofmt -l .; exit 1; } # Full test suite + race detector + 80 % coverage gate. test: go test -race -count=1 -coverprofile=coverage.out ./... go tool cover -func=coverage.out | awk '/^total:/{gsub("%","",$3);if($3+0<80){print "coverage "$3"% < 80%";exit 1}print "coverage "$3"%"}' # Format all Go sources. fmt: gofmt -w . # Run the gasm CLI (pass args after --, e.g. `just run -- lint file.s`). run *ARGS: go run -ldflags "-X main.version={{version}}" ./cmd/gasm {{ARGS}} # Install the gasm binary into $GOBIN (stamped with the release version). install-bin: go install -ldflags "-X main.version={{version}}" ./cmd/gasm # Regenerate the architecture instruction tables from the Go toolchain source. gen: go run _gen/gen.go gofmt -w arch/ # Remove build artefacts. uninstall: rm -f coverage.out gasm find . -name '*.test' -delete