Support the way to ignore Go compatibility matrix validation
Currently, I use Go nightly which means that Go is built from source. Here is the version which I use.
go version
go version go1.26-devel_7c8166d02d Tue Sep 30 07:38:03 2025 -0700 darwin/arm64
And then, Thought I attempted to use https://github.com/sago35/tinygo.vim/tree/main to study TinyGo, tinygo.vim threw an error that Go version is not supported since the version is in compatibility matrix.
tinygo info -json -target wioterminal
requires go version 1.19 through 1.25, got go1.26
TinyGo is a Go compiler for small places.
version: 0.39.0
usage: tinygo <command> [arguments]
commands:
build: compile packages and dependencies
run: compile and run immediately
test: test packages
flash: compile and flash to the device
gdb: run/flash and immediately enter GDB
lldb: run/flash and immediately enter LLDB
monitor: open communication port
ports: list available serial ports
env: list environment variables used during build
list: run go list using the TinyGo root
clean: empty cache directory (/Users/takuma.shibuya/Library/Caches/tinygo)
targets: list targets
info: show info for specified target
version: show version
help: print this help text
flags:
-baudrate int
baudrate of serial monitor (default 115200)
-buildmode string
build mode to use (default, c-shared, wasi-legacy)
-cpuprofile string
cpuprofile output
-gc string
garbage collector to use (none, leaking, conservative, custom, precise, boehm)
-internal-dumpssa
dump internal Go SSA
-internal-nodwarf
internal flag, use -no-debug instead
-internal-printir
print LLVM IR
-internal-verifyir
run extra verification steps on LLVM IR
-interp-timeout duration
interp optimization pass timeout (default 3m0s)
-json
print output in JSON format
-ldflags string
Go link tool compatible ldflags
-llvm-features string
comma separated LLVM features to enable
-monitor
enable serial monitor
-no-debug
strip debug information
-nobounds
do not emit bounds checks
-ocd-commands string
OpenOCD commands, overriding target spec (can specify multiple separated by commas)
-ocd-output
print OCD daemon output during debug
-opt string
optimization level: 0, 1, 2, s, z (default "z")
-p int
the number of build jobs that can run in parallel (default 16)
-panic string
panic strategy (print, trap) (default "print")
-port string
flash port (can specify multiple candidates separated by commas)
-print-allocs string
regular expression of functions for which heap allocations should be printed
-print-stacks
print stack sizes of goroutines
-programmer string
which hardware programmer to use
-scheduler string
which scheduler to use (none, tasks, cores, threads, asyncify)
-serial string
which serial output to use (none, uart, usb, rtt)
-size string
print sizes (none, short, full, html) -stack-size value
goroutine stack size (if unknown at compile time)
-tags value
a space-separated list of extra build tags
-target string
chip/board name or JSON target specification file
-timeout duration
the length of time to retry locating the MSD volume to be used for flashing (default 20s)
-work
print the name of the temporary build directory and do not delete this directory on exit
-x Print commands
for more details, see https://tinygo.org/docs/reference/usage/
I know you're keeping the rule to support range of Go version, but I want the way to use TinyGo. So I propose the new flag to ignore the version. If it's accepted, I think it's okay that you don't support the bug because it's not supported version you needed. What do you think ?
That seems like a good idea to me, to support anyone working with the next version of Go. Of course, this implies that version might not work, but is something we'd certainly like to know!
Labeled to close this issue on next release.