NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #173 by repository stars
Last release 5 days ago
02 Oct 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 48 of 50 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
245 releases · first in 2019
change to ignore PortReset failures
compiler: darwin/arm64 is aarch64, not armcompiler: don't clobber X18 and FP registers on darwin/arm64compiler: fix issue with methods on generic structscompiler: do not try to build generic functionscompiler: fix type names for generic named structscompiler: fix multiple defined function issue for generic functionscompiler: implement unsafe.Alignof and unsafe.Sizeof for generic codemachine: add DTR and RTS to Serialer interfacemachine: reorder pin definitions to improve pin list on tinygo.orgmachine/usb: add support for MIDImachine/usb: adjust buffer alignment (samd21, samd51, nrf52840)machine/usb/midi: add NoteOn, NoteOff, and SendCC methodsmachine/usb/midi: add definition of MIDI note numberruntime: add benchmarks for memhashruntime: add support for printing slices via print/printlnavr: fix some apparent mistake in atmega1280/atmega2560 pin constantsesp32: provide hardware pin constantsesp32: fix WDT reset on the MCH2022 badgeesp32: optimize SPI transmitesp32c3: provide hardware pin constantsesp8266: provide hardware pin constants like GPIO2nrf51: define and use P0_xx constantsnrf52840, samd21, samd51: unify bootloader entry processnrf52840, samd21, samd51: change usbSetup and sendZlp to publicnrf52840, samd21, samd51: refactor handleStandardSetup and initEndpointnrf52840, samd21, samd51: improve usb-device initializationnrf52840, samd21, samd51: move usbcdc to machine/usb/cdcrp2040: add usb serial vendor/product IDrp2040: add support for usbrp2040: change default for serial to usbrp2040: add support for machine.EnterBootloaderrp2040: turn off pullup/down when input type is not specifiedrp2040: make picoprobe default openocd interfacesamd51: add support for DAC1samd51: improve TRNGwasm: stub runtime.buffered, runtime.getcharwasi: make leveldb runtime hash the defaultclue: remove pins D21..D28feather-rp2040, macropad-rp2040: fix qspi-flash settingsxiao-ble: add support for flash-1200-bps-resetgopherbot, gopherbot2: add these aliases to simplify for newer usersOne column per quarter.
Nothing published for this version
remove support for LLVM 11 and LLVM 12
test: fix package/... syntaxbuilder: improve error message for "command not found"builder: add support for ThinLTO on MacOS and Windowsbuilder: free LLVM objects after use, to reduce memory leakingbuilder: improve -no-debug error messagescgo: be more strict: CGo now requires every Go file to import the headers it needscompiler: alignof(func) is 1 pointer, not 2compiler: add support for type parameters (aka generics)compiler: implement recover() built-in functioncompiler: support atomic, volatile, and LLVM memcpy-like functions in defercompiler: drop support for macos syscalls via inline assemblyinterp: do not try to interpret past task.Pause()interp: fix some buggy localValue handlinginterp: do not unroll loopstransform: fix MakeGCStackSlots that caused a possible GC bug on WebAssemblyos: enable os.Stdin for baremetal targetreflect: add Value.UnsafePointer methodruntime: scan GC globals conservatively on Windows, MacOS, Linux and Nintendo Switchruntime: add per-map hash seedsruntime: handle nil map write panicsruntime: add stronger hash functionssyscall: implement Getpagesizeatmega2560: support UART1-3 + example for uartavr: use compiler-rt for improved float64 supportavr: simplify timer-based timeavr: fix race condition in stack writedarwin: add support for GOARCH=arm64 (aka Apple Silicon)darwin: support -size=short and -size=full flagrp2040: replace sleep 'busy loop' with timer alarmrp2040: align api for PortMaskSet, PortMaskClearrp2040: fix GPIO interruptssamd21, samd51, nrf52840: add support for USBHID (keyboard / mouse)wasm: update wasi-libc versionwasm: use newer WebAssembly featuresmatrixportal-m4: attach USB DP to the correct pinteensy40: add I2C supportwioterminal: fix I2C definitionrun: add support for command-line parameters
-work flagrun: add support for command-line parametersbuild: calculate default output path if -o is not specifiedbuild: add JSON outputtest: support multiple test binaries with -ctest: support flags like -v on all targets (including emulated firmware)builder: prefer GNU build ID over Go build ID for cachingbuilder: add support for cross compiling to Darwinbuilder: support machine outlining pass in stacksize calculationbuilder: disable asynchronous unwind tablescompileopts: fix emulator configuration on non-amd64 Linux architecturescompiler: move allocations > 256 bytes to the heapcompiler: fix incorrect unsafe.Alignof on some 32-bit architecturescompiler: accept alias for slice cap builtincompiler: allow slices of empty structscompiler: fix difference in aliases in interface methodscompiler: make RawSyscall an alias for Syscallcompiler: remove support for memory references in AsmFullloader: only add Clang header path for CGotransform: fix poison value in heap-to-stack transforminternal/fuzz: add this package as a shimos: implement readdir for darwin and linuxos: add DirFS, which is used by many programs to access readdir.os: isWine: be compatible with older versions of wine, tooos: implement RemoveAllos: Use a uintptr for NewFileos: add stubs for exec.ExitError and ProcessState.ExitCodeos: export correct values for DevNull for each OSos: improve support for Signal by fixing various bugsos: implement File.Fd methodos: implement UserHomeDiros: add exec.ProcessState stubos: implement Pipe for darwinos: define stub ErrDeadlineExceededreflect: add stubs for more missing methodsreflect: rename reflect.Ptr to reflect.Pointerreflect: add Value.FieldByIndexErr stubruntime: fix various small GC bugsruntime: use memzero for leaking collector instead of manually zeroing objectsruntime: implement memhashruntime: implement fastrandruntime: add stub for debug.ReadBuildInforuntime: add stub for NumCPUruntime: don't inline runtime.alloc with -gc=leakingruntime: add Versionruntime: add stubs for NumCgoCall and NumGoroutineruntime: stub {Lock,Unlock}OSThread on Windowsruntime: be able to deal with a very small heapsyscall: make Environ return a copy of the environmentsyscall: implement getpagesize and munmapsyscall: wasi: define MAP_SHARED and PROT_READsyscall: stub mmap(), munmap(), MAP_SHARED, PROT_READ, SIGBUS, etc. on nonhosted targetssyscall: darwin: more complete list of signalssyscall: wasi: more complete list of signalssyscall: stub WaitStatussyscall/js: allow copyBytesTo(Go|JS) to use Uint8ClampedArraytesting: implement TempDirtesting: nudge type TB closer to upstream; should be a no-op change.testing: on baremetal platforms, use simpler test matcheratsamd: fix usbcdc initialization when -serial=uartatsamd51: allow higher frequency when using SPIesp: support CGoesp32c3: add support for input pinesp32c3: add support for GPIO interruptsesp32c3: add support to receive UART datarp2040: fix PWM bug at high frequencyrp2040: fix some minor I2C bugsrp2040: fix incorrect inline assemblyrp2040: fix spurious i2c STOP during write+read transactionrp2040: improve ADC supportwasi: remove --export-dynamic linker flagwasm: remove heap allocator from wasi-libccircuitplay-bluefruit: move pin mappings so board can be compiled for WASM use in Playgroundesp32-c3-12f: add the ESP32-C3-12f Kitm5stamp-c3: add pin setting of UARTmacropad-rp2040: add the Adafruit MacroPad RP2040 boardnano-33-ble: typo in LPS22HB peripheral definition and documentation (#2579)teensy41: add the Teensy 4.1 boardteensy40: add ADC supportteensy40: add SPI supportthingplus-rp2040: add the SparkFun Thing Plus RP2040 boardwioterminal: add DefaultUARTwioterminal: verify written data when flashing through OpenOCDxiao-ble: add XIAO BLE nRF52840 supportadd asyncify to scheduler flag help
test: set cmd.Dir even when running emulatorsinfo: add JSON output using the -json flagbuilder: fix off-by-one in size calculationbuilder: handle concurrent library header renamebuilder: use flock to avoid double-compilesbuilder: use build ID as cache keybuilder: add -fno-stack-protector to musl buildbuilder: update clang header search path to look in /usr/libbuilder: explicitly disable unwind tables for ARMcgo: add support for C.CString and related functionscompiler: fix ranging over maps with particular map typescompiler: add correct debug location to init instructionscompiler: fix emission of large object layoutscompiler: work around AVR atomics bugscompiler: predeclare runtime.trackPointerinterp: work around AVR function pointers in globalsinterp: run goroutine starts and checks at runtimeinterp: always run atomic and volatile loads/stores at runtimeinterp: bump timeout to 180 secondsinterp: handle type assertions on nil interfacesloader: eliminate goroot cache inconsistencyloader: respect $GOROOT when running go listtransform: allocate the correct amount of bytes in an allocatransform: remove switched func loweringcrypto/rand: show error if platform has no rngdevice/*: add *_Msk field for each bit field and avoid duplicatesdevice/*: provide Set/Get for each register field described in the SVD filesinternal/task: swap stack chain when switching goroutinesinternal/task: remove -scheduler=coroutinesmachine: add Device string constantnet: add bare Interface implementationnet: add net.Buffersos: stub out support for some featuresos: obey TMPDIR on unix, TMP on Windows, etcos: implement ReadAt, Mkdir, Remove, Stat, Lstat, CreateTemp, MkdirAll, Chdir, Chmod, Clearenv, Unsetenv, Setenv, MkdirTemp, Rename, Seek, ExpandEnv, Symlink, Readlinkos: implement File.Statos: fix IsNotExist on nonexistent pathos: fix opening files on WASI in read-only modeos: work around lack of syscall.seek on 386 and armreflect: make sure indirect pointers are handled correctlyruntime: allow comparing interfacesruntime: use LLVM intrinsic to read the stack pointerruntime: strengthen hashmap hash function for structs and arraysruntime: fix float/complex hashingruntime: fix nil map dereferenceruntime: add realloc implementation to GCsruntime: handle negative sleep timesruntime: correct GC scan boundsruntime: remove extalloc GCrumtime: implement __sync libcalls as critical sections for most microcontrollersruntime: add stubs for Func.FileLine and Frame.PCsync: fix concurrent read-lock on write-locked RWMutexsync: add a package docsync: add testssyscall: add support for Mmap and Mprotectsyscall: fix array size for mmap slice creationsyscall: enable Getwd in wasitesting: add a stub for CoverModetesting: support -bench option to run benchmarks matching the given pattern.testing: support b.SetBytes(); implement sub-benchmarks.testing: replace spaces with underscores in test/benchmark names, as upstream doestesting: implement testing.Cleanuptesting: allow filtering subbenchmarks with the -bench flagtesting: implement -benchtime flagtesting: print durationtesting: allow filtering of subtests using -runall: change LLVM features to match vanilla Clangavr: use interrupt-based timer which is much more accuratenrf: fix races in I2Csamd51: implement TRNG for randomnessstm32: pull-up on I2C linesstm32: fix timeout for i2c commsstm32f4, stm32f103: initial implementation for ADCstm32f4, stm32f7, stm32l0x2, stm32l4, stm32l5, stm32wl: TRNG implementation in crypto/randstm32wl: add I2C supportwindows: add support for the -size= flagwasm: add support for tinygo testwasi, wasm: raise default stack size to 16 KiBbluepill: add definitions for ADC pinsstm32f4disco: add definitions for ADC pinsstm32l552ze: use supported stlink interfacemicrobit-v2: add some pin definitionsNothing published for this version
build: drop support for LLVM targets in the -target flag
build: drop support for LLVM targets in the -target flagbuild: fix paths in error messages on Windowsbuild: add -p flag to set parallelismlldb: implement tinygo lldb subcommandtest: use emulator exit code instead of parsing test outputtest: pass testing arguments to wasmtimebuilder: improve accuracy of the -size=full flagbuilder: hardcode some more frame sizes for _aeabi* functionsbuilder: add support for -size= flag for WebAssemblycgo: fix line/column reporting in syntax error messagescgo: support function definitions in CGo headerscgo: implement rudimentary C array decayingcgo: add support for stdio in picolibc and wasi-libccgo: run CGo parser per file, not per CGo fragmentcompiler: fix unintentionally exported math functionscompiler: properly implement div and rem operationscompiler: add support for recursive function typescompiler: add support for the go keyword on interface methodscompiler: add minsize attribute for -Ozcompiler: add "target-cpu" and "target-features" attributescompiler: fix indices into strings and arrayscompiler: fix string compare functionsinterp: simplify some code to avoid some errorsinterp: support recursive globals (like linked lists) in globalsinterp: support constant globalsinterp: fix reverting of extractvalue/insertvalue with multiple indicestransform: work around renamed return type after merging LLVM modulesinternal/bytealg: fix indexing error in Compare()machine: support Pin.Get() function when the pin is configured as outputnet, syscall: Reduce code duplication by switching to internal/itoa.os: don't try to read executable path on baremetalos: implement Getwdos: add File.WriteString and File.WriteAtreflect: fix type.Size() to account for struct paddingreflect: don't construct an interface-in-interface valuereflect: implement Value.Elem() for interface valuesreflect: fix Value.Index() in a specific casereflect: add support for DeepEqualruntime: add another set of invalid unicode runes to encodeUTF8()runtime: only initialize os.runtime_args when neededruntime: only use CRLF on baremetal systems for printlnruntime/debug: stub debug.SetMaxStackruntime/debug: stub debug.Stacktesting: add a stub for t.Parallel()testing: add support for -test.short flagtesting: stub B.ReportAllocs()testing: add testing.Verbosetesting: stub testing.AllocsPerRunatsam: simplify definition of SERCOM UART, I2C and SPI peripheralsatsam: move I2S0 to machine fileesp32: fix SPI configurationesp32c3: add support for GDB debuggingesp32c3: add support for CPU interruptsesp32c3: use tasks scheduler by defaultfe310: increase CPU frequency from 16MHz to 320MHzfe310: add support for bit banging driverslinux: build static binaries using musllinux: reduce binary size by calling write instead of putcharlinux: add support for GOARMriscv: implement 32-bit atomic operationsriscv: align the heap to 16 bytesriscv: switch to tasks-based schedulerrp2040: add CPUFrequency()rp2040: improve I2C baud rate configurationrp2040: add pin interrupt APIrp2040: refactor PWM code and fix Period calculationstm32f103: fix SPIstm32f103: make SPI frequency selection more flexibleqemu: signal correct exit code to QEMUwasi: run C/C++ constructors at startupwasm: ensure heapptr is alignedwasm: update wasi-libc dependencywasm: wasi: use asyncifywasm: support -scheduler=nonewindows: add support for Windows (amd64 only for now)feather-stm32f405, feather-rp2040: add I2C pin namesm5stack-core2: add M5Stack Core2nano-33-ble: SoftDevice s140v7 supportnano-33-ble: add constants for more on-board pinsNothing published for this version
add support for the Black Magic Probe (BMP)
builder: list libraries at the end of the linker commandbuilder: strip debug information at link time instead of at compile timebuilder: add missing error check for ioutil.TempFile()builder: simplify running of jobscompiler: move LLVM math builtin support into the compilercompiler: move math aliases from the runtime to the compilercompiler: add aliases for many hashing packagescompiler: add *ssa.MakeSlice bounds testscompiler: fix max possible slicecompiler: add support for new language features of Go 1.17compiler: fix equally named structs in different scopescompiler: avoid zero-sized alloca in channel operationsinterp: don't ignore array indices for untyped objectsinterp: keep reverted package initializers in orderinterp: fix bug in compiler-time/run-time package initializersloader: fix panic in CGo files with syntax errorstransform: improve GC stack slot pass to work around a bugcrypto/rand: switch to arc4random_bufmath: fix math.Max and math.Minmath/big: fix undefined symbols errornet: add MAC address implementationos: implement os.Executableos: add SEEK_SET, SEEK_CUR, and SEEK_ENDreflect: add StructField.IsExported methodruntime: reset heapptr to heapStart after preinit()runtime: add subsections_via_symbols to assembly files on darwintesting: add subset implementation of Benchmarktesting: test testing package using tinygo testtesting: add support for the -test.v flag386: bump minimum requirement to the Pentium 4arm: switch to Thumb instruction set on ARMatsamd: fix copy-paste error for atsamd21/51 calibTrim blockbaremetal,wasm: support command line params and environment variablescortexm: fix stack overflow because of unaligned stacksesp32c3: add support for the ESP32-C3 from Espressifnrf52840: fix ram sizenxpmk66f18: fix a suspicious bitwise operationrp2040: add SPI supportrp2040: add I2C supportrp2040: add PWM implementationrp2040: add openocd configurationstm32: add support for PortMask* functions for WS2812 supportunix: fix time base for time.Now()unix: check for mmap error and act accordinglywasm: override dlmalloc heap implementation from wasi-libcwasm: align heap to 16 byteswasm: add support for the crypto/rand packageDefaultUART to adafruit boardsarduino-mkrwifi1010: add board definition for Arduino MKR WiFi 1010arduino-mkrwifi1010: fix pin definition of NINA_RESETNfeather-nrf52: fix pin definition of uartfeather-rp2040: add pin name definitiongameboy-advance: fix ROM headermdbt50qrx-uf2: add Raytac MDBT50Q-RX Dongle with TinyUF2nano-rp2040: define NINA_SPI and fix wifinina pinsteensy40: enable hardware UART reconfiguration, fix receive watermark interruptNothing published for this version
don't consider compile-only tests as failing
tinygo listextended-remote instead of remote in GDBcgo: improve constant parsercompiler: support chained interrupt handlerscompiler: add support for running a builtin in a goroutinecompiler: do not emit nil checks for loading closure variablescompiler: skip context parameter when starting regular goroutinecompiler: refactor method namescompiler: add function and global section pragmascompiler: implement syscall.rawSyscallNoError in inline assemblyinterp: ignore inline assembly in markExternalinterp: fix a bug in pointer cast workaroundloader: fix testing a main packagecrypto/rand: replace this package with a TinyGo versionmachine: make USBCDC global a pointermachine: make UART objects pointer receiversmachine: define Serial as the default outputnet: add initial support for net.IPnet: add more net compatibilityos: add stub for os.ReadDiros: add FileMode constants from Go 1.16os: add stubs required for net/httpos: implement process related functionsreflect: implement AppendSlicereflect: add stubs required for net/httpruntime: make task.Data a 64-bit integer to avoid overflowruntime: expose memory statssync: implement NewCondsyscall: fix int type in libc versioncortexm: do not disable interrupts on abortcortexm: bump default stack size to 2048 bytesnrf: avoid heap allocation in waitForEventnrf: don't trigger a heap allocation in SPI.Transfernrf52840: add support for flashing with the BOSSA toolrp2040: add support for GPIO inputrp2040: add basic support for ADCrp2040: gpio and adc pin definitionsrp2040: implement UARTrp2040: patch elf to checksum 2nd stage bootstm32: add PWM for most chipsstm32: add support for pin interruptsstm32f103: add support for PinInputPullup / PinInputPulldownwasi: remove wasm build tagfeather-rp2040: add support for this boardfeather-nrf52840-sense: add board definition for this boardpca10059: support flashing from Windowsnano-rp2040: add this boardnano-33-ble: add support for this boardpico: add the Raspberry Pi Pico board with the new RP2040 chipqtpy: add pin for neopixelsdrop support for Go 1.11 and 1.12
getDefaultPort(), support for multiple ports-cflags and -ldflags flags-ldflags="-X ..."-print-allocs flag that lets you print all heap allocations-llvm-features parametergo test outputbuilder: add support for -opt=0builder, compiler: compile and cache packages in parallelbuilder: run interp per packagebuilder: cache C and assembly file outputsbuilder: add support for -x flag to print commandsbuilder: add optsize attribute while building the packagebuilder: run function passes per packagebuilder: hard code Clang compilercompiler: do not use llvm.GlobalContext()compiler: remove SimpleDCE passcompiler: do not emit nil checks for *ssa.Alloc instructionscompiler: merge runtime.typecodeID and runtime.typeInInterfacecompiler: do not check for impossible type assertscompiler: fix use of global context: llvm.Int32Type()compiler: add interface IR testcompiler: fix lack of method name in interface matchingcompiler: fix "fragment covers entire variable" bugcompiler: optimize string literals and globalscompiler: decouple func lowering from interface type codescompiler: add function attributes to some runtime callscompiler: improve position information in error messagescgo: add support for CFLAGS in .c filesinterp: support GEP on fixed (MMIO) addressesinterp: handle (reflect.Type).Elem()interp: add support for runtime.interfaceMethodinterp: make toLLVMValue return an error instead of panickinginterp: add support for switch statementinterp: fix phi instructioninterp: remove map supportinterp: support extractvalue/insertvalue with multiple operandstransform: optimize string comparisons against ""transform: optimize reflect.Type Implements() methodtransform: fix bug in interface lowering when signatures are renamedtransform: don't rely on struct name of runtime.typecodeIDtransform: use IPSCCP pass instead of the constant propagation passtransform: fix func lowering assertion failuretransform: do not lower zero-sized alloc to allocatransform: split interface and reflect loweringruntime: add dummy debug packagemachine: fix data shift/mask in newUSBSetupmachine: make machine.I2C0 and similar objects pointersmachine: unify usbcdc codemachine: refactor PWM supportmachine: avoid heap allocations in USB codereflect: let reflect.Type be of interface typereflect: implement a number of stub functionsreflect: check for access in the Interface method callreflect: fix AssignableTo and Implements methodsreflect: implement Value.CanAddrreflect: implement Sizeof and Alignof for func valuesreflect: implement New functionruntime: implement command line arguments in hosted environmentsruntime: implement environment variables for Linuxruntime: improve timers on nrf, and samd chipsatmega1280: add PWM supportattiny: remove dummy UARTatsamd21: improve SPIatsamd51: fix PWM support in atsamd51p20atsamd5x: improve SPIatsamd51, atsame5x: unify samd51 and same5xatsamd51, atsamd21: fix ADC.Get() value at 8bit and 10bitatsame5x: add support for CANavr: remove I2C stubs from attiny supportcortexm: check for arm-none-eabi-gdb and gdb-multiarch commandscortexm: add __isr_vector symbolcortexm: disable FPU on Cortex-M4cortexm: clean up Cortex-M target filesfe310: fix SPI readgameboy-advance: Fix RGBA color interpretationnrf52833: add PWM supportstm32l0: use unified UART logicstm32: move f103 (bluepill) to common i2c codestm32: separate altfunc selection for UART Tx/Rxstm32: i2c implementation for F7, L5 and L4 MCUsstm32: make SPI CLK fast to fix data issuestm32: support SPI on L4 seriesunix: avoid possible heap allocation with -opt=0unix: use conservative GC by defaultunix: use the tasks scheduler instead of coroutineswasi: upgrade WASI version to wasi_snapshot_preview1wasi: darwin: support basic file io based on libcwasm: only export explicitly exported functionswasm: use WASI ABI for exit functionwasm: scan globals conservativelyarduino-mega1280: add support for the Arduino Mega 1280arduino-nano-new: Add Arduino Nano w/ New Bootloader targetatsame54-xpro: add initial support this boardfeather-m4-can: add initial support for this boardgrandcentral-m4: add board support for Adafruit Grand Central M4 (SAMD51)lgt92: update to new UART structuremicrobit: remove LED constantmicrobit-v2: add support for S113 SoftDevicenucleol432: add support for this boardnucleo-l031k6: add this boardpca10059: initial support for this boardqtpy: fix msd-volume-nameqtpy: fix i2c settingteensy40: move txBuffer allocation to UART declarationteensy40: add UART0 as alias for UART10.17.0
-x flag to print commands-ocd-output on Windowsbuilder: parallelize most of the buildbuilder: remove unused cacheKey parameterbuilder: add -mcpu flag while building librariesbuilder: wait for running jobs to finishcgo: add support for variadic functionscompiler: fix undefined behavior in wordpackcompiler: fix incorrect "exported function" paniccompiler: fix non-int integer constants (fixing a crash)compiler: refactor and add testscompiler: emit a nil check when slicing an array pointercompiler: saturate float-to-int conversionscompiler: test float to int conversions and fix upper-bound calculationcompiler: support all kinds of deferred builtinscompiler: remove ir packagecompiler: remove unnecessary main.main call workaroundcompiler: move the setting of attributes to getFunctioncompiler: create runtime types lazily when neededcompiler: move settings to a separate Config structcompiler: work around an ARM backend bug in LLVMinterp: rewrite entire packageinterp: fix alignment of untyped globalsloader: use name "main" for the main packageloader: support imports from vendor directoriesstacksize: add support for DW_CFA_offset_extendedtransform: show better error message in coroutines loweringmachine: accept configuration struct for ADC parametersmachine: make I2C.Configure signature consistentreflect: implement PtrToruntime: refactor to simplify stack switchingruntime: put metadata at the top end of the heapatsam: add a length check to findPinPadMappingatsam: improve USBCDCatsam: avoid infinite loop when USBCDC is disconnectedavr: add SPI support for Atmega based chipsavr: use Clang for compiling C and assembly filesesp32: implement task based scheduleresp32: enable the FPUesp8266: implement task based scheduleresp: add compiler-rt libraryesp: add picolibcnrf: refactor code a bit to reduce duplicationnrf: use SPIM peripheral instead of the legacy SPI peripheralnrf: update nrfx submodule to latest commitnrf52840: ensure that USB CDC interface is only initialized oncenrf52840: improve USBCDCstm32: use stm32-rs SVDs which are of much higher qualitystm32: harmonization of UART logicstm32: replace I2C addressable interface with simpler typestm32: fix i2c and add stm32f407 i2cstm32: revert change that adds support for channels in interruptswasm: implement a growable heapwasm: fix typo in wasm_exec.js, syscall/js.valueLoadString()wasm: Namespaced Wasm Imports so they don't conflict across modules, or reserved LLVM IRwasi: support env variables based on libcwasi: specify wasi-libc in a different way, to improve error messagematrixportal-m4: add support for board Adafruit Matrix Portal M4mkr1000: add this boardnucleo-f722ze: add this boardclue: correct volume name and add alias for release version of Adafruit Clue boardp1am-100: add support for the P1AM-100 (similar to Arduino MKR)microbit-v2: add initial support based on work done by @alankrantas thank you!lgt92: support for STM32L0 MCUs and Dragino LGT92 devicenicenano: nice!nano board supportcircuitplay-bluefruit: correct internal I2C pin mappingclue: correct for lack of low frequency crystaldigispark: split off attiny85 targetnucleo-l552ze: implementation with CLOCK, LED, and UARTnrf52840-mdk-usb-dongle: add this boardNothing published for this version
Nothing published for this version
Nothing published for this version
add initial support for LLVM 11
build: improve support for GOARCH=386 and add testsgdb: add support for qemu-user targetstest: support non-host teststest: add support for -c and -o flagstest: implement some benchmark stubsbuilder: improve detection of clang on Fedoracompiler: fix floating point comparison bugscompiler: implement negate for complex numbersloader: fix linkname in test binariestransform: add missing return pointer restore for regular coroutine tail
callsmachine: switch default frequency to 4MHzmachine: clarify caller's responsibility in SetInterruptos: add LookupEnv() stubreflect: implement Swapperruntime: fix UTF-8 decodingruntime: gc: use raw stack access whenever possibleruntime: use dedicated printfloat32runtime: allow ranging over a nil mapruntime: avoid device/nxp dependency in HardFault handlertesting: implement dummy Helper methodtesting: add Run methodarm64: add support for SVCall intrinsicatsamd51: avoid panic when configuring SPI with SDI=NoPinavr: properly support the .rodata sectionesp8266: implement Pin.Get functionnintendoswitch: fix crash when printing long lines (> 120)nintendoswitch: add env parser and removed unused stuffnrf: add I2C error checkingnrf: give more flexibility in picking SPI speedsnrf: fix nrf52832 flash sizestm32f103: support wakeups from interruptsstm32f405: add SPI supportstm32f405: add I2C supportwasi: add support for this targetwasi: use 'generic' ABI by defaultwasi: remove --no-threads flag from wasm-ldwasm: add instanceof support for WebAssemblywasm: use fixed length buffer for putchard1mini: add this ESP8266 based boardesp32: use board definitions instead of chip namesqtpy: add board definition for Adafruit QTPyteensy40: add this boardNothing published for this version
add cached GOROOT to info subcommand
compileopts: add support for custom binary formatscompiler: improve display of goroutine wrappersinterp: don't panic in the Store methodinterp: replace some panics with error messagesinterp: show error line in first line of the tracebackloader: be more robust when creating the cached GOROOTloader: rewrite/refactor much of the code to use go list directlyloader: use ioutil.TempDir to create a temporary directorystacksize: deal with DW_CFA_advance_loc1runtime: use waitForEvents when appropriatewasm: Remove --no-threads from wasm-ld calls.wasm: update wasi-libc dependencyarduino-mega2560: fix flashing on Windowsarm: automatically determine stack sizesarm64: make dynamic loader structs and constants privateavr: configure emulator in board filescortexm: fix stack size calculation with interruptsflash: add openocd settings to atsamd21 / atsamd51flash: add openocd settings to nrf5microbit: reelboard: flash using OpenOCD when needednintendoswitch: Add dynamic loader for runtime loading PIE sectionsnintendoswitch: fix import cycle on dynamic_arm64.gonintendoswitch: Fix invalid memory read / write in print callsnintendoswitch: simplified assembly codenintendoswitch: support outputting .nro files directlyarduino-zero: Adding support for the Arduino Zero (#1365)atsamd2x: fix BAUD valueatsamd5x: fix BAUD valuebluepill: Enable stm32's USART2 for the board and map it to UART1 tinygo's devicedevice/atsamd51x: add all remaining bitfield values for PCHCTRLm Mappingesp32: add libgcc ROM functions to linker scriptesp32: add SPI supportesp32: add support for basic GPIOesp32: add support for the Espressif ESP32 chipesp32: configure the I/O matrix for GPIO pinsesp32: export machine.PortMask* for bitbanging implementationsesp8266: add support for this chipmachine/atsamd51x,runtime/atsamd51x: fixes needed for full support for all PWM pins. Also adds some useful constants to clarify peripheral clock usagemachine/itsybitsy-nrf52840: add support for Adafruit Itsybitsy nrf52840 (#1243)machine/stm32f4: refactor common code and add new build tag stm32f4 (#1332)nrf: add SoftDevice support for the Circuit Playground Bluefruitnrf: call sd_app_evt_wait when the SoftDevice is enablednrf52840: add build tags for SoftDevice supportnrf52840: use higher priority for USB-CDC coderuntime/atsamd51x: use PCHCTRL_GCLK_SERCOMX_SLOW for setting clocks on all SERCOM portsstm32f405: add basic UART handlerstm32f405: add STM32F405 machine/runtime, and new board/target feather-stm32f405all: run test binaries in the correct directorybuild: Fix arch release jobci: run tinygo test for known-working packagesci: set git-fetch-depth to 1docker: fix the problem with the wasm build (#1357)Makefile: check whether submodules have been downloaded in some common casesloader: work around Windows symlink limitation
fix getDefaultPort() on non-English Windows locales
getDefaultPort() on non-English Windows locales[]byte slice conversioninternal/bytealg: reimplement bytealg in pure Gointernal/task: fix nil panic in (*internal/task.Stack).Popos: add Args and stub it with mock dataos: implement virtual filesystem supportreflect: add Cap and Len support for map and chanruntime: fix return address in scheduler on RISC-Vruntime: avoid recursion in printuint64 functionruntime: replace ReadRegister with AsmFull inline assemblyruntime: fix compilation errors when using gc.extallocruntime: add cap and len support for chansruntime: refactor time handling (improving accuracy)runtime: make channels work in interruptsruntime/interrupt: add cross-chip disable/restore interrupt supportsync: implement sync.Condsync: add WaitGrouparm: allow nesting in DisableInterrupts and EnableInterruptsarm: make FPU configuration consistentarm: do not mask fault handlers in critical sectionsatmega2560: fix pin mapping for pins D2, D5 and the L portatsamd: return an error when an incorrect PWM pin is usedatsamd: add support for pin change interruptsatsamd: add DAC supportatsamd21: add more ADC pinsatsamd51: fix ROM / RAM size on atsamd51j20atsamd51: add more pinsatsamd51: add more ADC pinsatsamd51: add pin change interrupt settingsatsamd51: extend pinPadMappingarduino-nano33: use (U)SB flag to ensure that device can be found when
not on default portarduino-nano33: remove (d)ebug flag to reduce console noise when flashingavr: use standard pin numberingavr: unify GPIO pin/port codeavr: add support for PinInputPullupavr: work around codegen bug in LLVM 10avr: fix target triplefe310: remove extra println left in by mistakefeather-nrf52840: add support for the Feather nRF52840maixbit: add board definition and dummy runtimenintendoswitch: Add experimental Nintendo Switch support without CRTnrf: expose the RAM base addressnrf: add support for pin change interruptsnrf: add microbit-s110v8 targetnrf: fix bug in SPI.Txnrf: support debugging the PCA10056pygamer: add Adafruit PyGamer supportriscv: fix interrupt configuration bugriscv: disable linker relaxations during gp initstm32f4disco: add new target with ST-Link v2.1 debuggerteensy36: add Teensy 3.6 supportwasm: fix event handlingwasm: add --no-demangle linker optionwioterminal: add support for the Seeed Wio Terminalxiao: add support for the Seeed XIAONothing published for this version
Nothing published for this version
runtime: do not put scheduler and GC code in the same section
runtime: do not put scheduler and GC code in the same sectionruntime: copy stack scan assembly for GBAgameboy-advance: always use ARM mode instead of Thumb modeNothing published for this version
Nothing published for this version
use gdb-multiarch for debugging Cortex-M chips
gdb-multiarch for debugging Cortex-M chipstinygo run with simavrabort function as noreturndereferenceable_or_null attribute to pointer parametersunsafe.Pointerruntime.isnil hackmemcpy/memmove/memzero functions-fshort-enums consistently-I and -L paths absolutemachine: set the USB VID and PID to the manufacturer valuesmachine: correct USB CDC composite descriptorsmachine: move errors.New calls to globalsruntime: support operations on nil mapsruntime: fix copy builtin return value on AVRruntime: refactor goroutinesruntime: support -scheduler=none on most platformsruntime: run package initialization in the main goroutineruntime: export malloc / free for use from Cruntime: add garbage collector that uses an external allocatorruntime: scan callee-saved registers while marking the stackruntime: remove recursion from conservative GCruntime: fix blocking select on nil channelruntime/volatile: include ReplaceBits methodsync: implement trivial sync.Maparm: use -fomit-frame-pointeratmega1284: support this chip for testing purposesatsamd51: make QSPI available on all boardsatsamd51: add support for ADC1atsamd51: use new interrupt registration in UART codeattiny: clean up pin definitionsavr: use the correct RAM start addressavr: pass the correct -mmcu flag to the linkeravr: add support for tasks scheduler (disabled by default)avr: fix linker problem with overlapping program/data areasnrf: fix typo in pin configuration optionsnrf: add lib/nrfx/mdk to include dirsnrf52840: implement USB-CDCriscv: implement VirtIO target and add RISC-V integration testriscv: add I2C support for the HiFive1 rev B boardstm32: refactor GPIO pin handlingstm32: refactor UART codestm32f4: add SPIwasm: support Go 1.14 (breaking previous versions)wasm: support syscall/js.CopyBytesToJSwasm: sync polyfills from Go 1.14.arduino-mega2560: add the Arduino Mega 2560clue-alpha: add the Adafruit CLUE Alphagameboy-advance: enable debugging with GDBparticle-argon: add the Particle Argon boardparticle-boron: add the Particle Boron boardparticle-xenon: add the Particle Xenon boardreelboard: add reelboard-s140v7 SoftDevice targetNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
remove getting a serial port in gdb subcommand
types.Invalid#definemachine: avoid bytes package in USB logicruntime: fix external address declarationsruntime: provide implementation for internal/bytealg.IndexByteatsamd51: fix volatile usageatsamd51: fix ADC, updating to 12-bits precisionatsamd51: refactor SPI pin configuration to only look at pin numbersatsamd51: switch UART to use new pin configurationatsamd51: fix obvious bug in I2C codeatsamd51: use only the necessary UART interruptsatsamd51: refactor I2C pin handling to auto-detect pin modeavr: use a garbage collectorfe310: use CLINT peripheral for timekeepingfe310: add support for PLIC interruptsfe310: implement UART receive interruptsriscv: support sleeping in QEMUriscv: add bare-bones interrupt supportriscv: print exception PC and codewasm: implement memcpy and memsetwasm: include wasi-libcwasm: use wasi ABI for basic startup/stdoutarduino: make avrdude command line compatible with Windowsarduino-nano: add this boardarduino-nano33: fix UART1 and UART2circuitplay-bluefruit: add this boarddigispark: add clock speed and pin mappingsgameboy-advance: include compiler-rt in buildgameboy-advance: implement interrupt handlerhifive1b: add support for gdb subcommandpyportal: add this boardpyportal: remove manual SPI pin mapping as now handled by defaultNothing published for this version
Nothing published for this version
add support for QEMU in gdb subcommand
gdb subcommandtinygo flash directly by using win32 wmimachine: add support for SPI.Tx() on play.tinygo.orgmachine: rename CPU_FREQUENCY to CPUFrequency()adafruit-pybadge: add Adafruit Pybadgearduino-nano33: allow simulation on play.tinygo.orgarduino-nano33: fix default SPI pin numbers to be D13/D11/D12circuitplay-express: allow simulation on play.tinygo.orghifive1-qemu: add target for testing RISC-V bare metal in QEMUriscv: fix heap corruption due to changes in LLVM 9riscv: add support for compiler-rtqemu: rename to cortex-m-qemuhalt GDB after flashing with gdb subcommand
gdb subcommand-ocd-outputinfo subcommand-programmer flaglinkerscript key to target JSON filestodo: store panic#define) as a real parsertype"unsafe" imported but not used error#cgo CFLAGSreflect: add implementation of array alignmentruntime: improve scheduler performance when no goroutines are queuedruntime: add blocking selectruntime: implement interface equality in non-trivial casesruntime: add AdjustTimeOffset to update current timeruntime: only implement CountString for required platformsruntime: use MSP/PSP registers for scheduling on Cortex-Marm: add system timer registersatmega: add port C GPIO supportatsamd21: correct handling of pins >= 32atsamd21: i2s initialization fixesatsamd51: fix clock init codeatsamd51: correct initialization for RTCatsamd51: fix pin function selectionatsamd51: pin method cleanupatsamd51: allow setting pin mode for each of the SPI pinsatsamd51: correct channel init and pin map for ADC based on ItsyBitsy-M4feather-m4: add Adafruit Feather M4 boardhifive1b: add support for SPI1hifive1b: fix compiling in simulationlinux: fix time on arm32metro-m4: add support for Adafruit Metro M4 Express Airlift boardmetro-m4: fixes for UART2pinetime-devkit0: add support for the PineTime dev kitx9pro: add support for this smartwatchpca10040-s132v6: add support for SoftDevicepca10056-s140v7: add support for SoftDevicearduino-nano33: added SPI1 connected to NINA-W102 chip on Arduino Nano 33 IOTNothing published for this version
Nothing published for this version
implement 1200-baud UART bootloader reset when flashing boards that support it
tinygo envtinygo env//go:align pragmamachine: do not check for nil slices in SPI.Txreflectlite: add support for Go 1.13runtime: implement internal/bytealg.CountStringsync: properly handle nil New func in sync.Poolarduino: fix .bss section initializationfe310: implement Pin.Getgameboy-advance: support directly outputting .gba filessamd: reduce code size by avoiding reflectionsamd21: do not hardcode pin numbers for peripheralsstm32f103: avoid issue with time.Sleep less than 200µsNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix parsing of beta Go versions
-target flag better to not panic on an invalid targets[:2:4][]rune to string conversiongo on func valuesreflect: add support for named typesreflect: add support for t.Bits()reflect: add basic support for t.AssignableTo()reflect: implement t.Align()reflect: add support for struct typesreflect: fix bug in v.IsNil and v.Pointer for addressable valuesreflect: implement support for array typesreflect: implement t.Comparable()runtime: implement stack-based schedulerruntime: fix bug in the sleep queue of the schedulerruntime: implement memcpy for Cortex-Mtesting: implement stub testing.B structtesting: add common test logging methods such as Errorf/Fatalf/Printf386: add support for linux/386 syscallsatsamd21: make SPI pins configurable so that multiple SPI ports can be
usedatsamd21: correct issue with invalid first reading coming from ADCatsamd21: add support for reset-to-bootloader using 1200baud over USB-CDCatsamd21: make pin selection more flexible for peripheralsatsamd21: fix minimum delay in time.Sleepatsamd51: fix minimum delay in time.Sleepnrf: improve SPI write-only speed, by making use of double bufferingstm32f103: fix SPI frequency selectionstm32f103: add machine.Pin.Get method for reading GPIO valuesstm32f103: allow board specific UART usagenucleo-f103rb: add support for NUCLEO-F103RB boarditsybitsy-m4: add support for this board with a SAMD51 family chipcortex-m: add support for arm.SystemReset()gameboy-advance: add initial support for the GameBoy Advancewasm: add //go:wasm-module magic comment to set the wasm module namewasm: add syscall/js.valueSetIndex supportwasm: add syscall/js.valueInvoke supportatsamd21: add support for the -port flag in the flash subcommand
atsamd21: add support for the -port flag in the flash subcommandtry more locations to find Clang built-in headers
tinygo test-target flag//go:volatile support-tags flagstring to []rune conversion//go:noinline pragmaos: add os.Exit and syscall.Exitos: add several stubsruntime: fix heap corruption in conservative GCruntime: add support for math intrinsics where supported, massively
speeding up some benchmarkstesting: add basic support for testing__tinygo_* functions for
peripheral accessarduino-nano33: add support for this boardhifive1: add support for this RISC-V boardreelboard: add e-paper pinsreelboard: add PowerSupplyActive to enable voltage for on-board deviceswasm: put the stack at the start of linear memory, to detect stack
overflowsNothing published for this version
make $GOROOT more robust and configurable
$GOROOT more robust and configurable//go:inline pragmachar, enum and void* types#include for builtin headersnocapture#define constantsmachine: remove microbit matrix (moved to drivers repository)machine: refactor pins to use Pin type instead of GPIOruntime: print more interface types on panic, including errorarm: print an error on HardFault (including stack overflows)atsamd21: fix a bug in the ADC peripheralatsamd21: add support for I2Sfeather-m0: add support for this boardnrf51: fix a bug in I2Cstm32f103xx: fix a bug in I2Csyscall: implement Exit on unixtrinket-m0: add support for this boardwasm: make main example smallerwasm: don't cache wasm file in the server, for ease of debuggingwasm: work around bug #41508 that caused a deadlock while linkingwasm: add support for js.FuncOfNothing published for this version
use wasm-ld instead of wasm-ld-8 on macOS
wasm-ld instead of wasm-ld-8 on macOSllvm-arTINYGOROOTmake([]T, …) with uncommon index typesstruct, union, and arraysC.struct_ typesavr: improve uintptr supportcortexm: implement memmove intrinsic generated by LLVMcortexm: use the lld linker instead of arm-none-eabi-lddarwin: use custom syscall package that links to libSystem.dylibmicrobit: add blink examplesamd21: support I2C1samd21: machine/atsamd21: correct pad/pin handling when using both UART
and USBCDC interfaces at same timestm32f4discovery: add support for this boardwasm: support async func valueswasm: improve documentation and add extra exampleNothing published for this version
fix objcopy replacement to include the .data section in the firmware image
objcopy replacement to include the .data section in the firmware imagellvm-ar-7 on Linux to fix the Docker imageswitch to the hardfloat ABI on ARM, which is more widely used
objcopy (arm-none-eabi-objcopy etc.)make([]T, n) where n is 64-bits on a 32-bit platformpanic() at init time outside of the main packagesamd21: fix a bug in port B pinssamd21: implement SPI peripheralsamd21: implement ADC peripheralstm32: fix a bug in timekeepingwasm: fix a bug in wasm_exec.js that caused corruption in linear memory
when running on Node.js.add support for bool/float/complex types
-initinterp flagdevice/arm: add support to disable/enable hardware interruptsmachine: add CPU frequency for nrf-based boardssyscall: add support for darwin/amd64circuitplay_express: add support for this boardmicrobit: add regular pin constantssamd21: fix time function for goroutine supportsamd21: add support for USB-CDC (serial over USB)samd21: add support for pins in port Bsamd21: add support for pullup and pulldown pinswasm: add support for Safari in examplefix a bug in floating point comparisons with NaN values
panic in package initialization codecomplex64 and complex128fmt: initial support, fmt.Println worksmath: support for most/all functionsos: initial support (only stdin/stdout/stderr)reflect: initial supportsyscall: add support for amd64, arm, and arm64Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →