Skip to content

Support the way to ignore Go compatibility matrix validation #5075

@sivchari

Description

@sivchari

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 ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions