feat: gasm-devkit 0.1.0 — GAsm lexer, parser, linter, formatter, LSP and amd64 assembler
Assisted-by: Qwen 3.8 Max Preview
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (https://petrbalvin.org)
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
# gasm-devkit — developer tooling for Go's Plan 9 assembler (GAsm).
|
||||
|
||||
version := "0.1.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
|
||||
Reference in New Issue
Block a user