0.23.0
This release adds support for the recently released Go 1.18, although not for all language features yet. We have also added support for LLVM 14 which is the latest release of the compiler framework. Lots of improvements to the runtime and standard library support, especially when running in WASM/WASI environments. Also a whole bunch of bugfixes and improvements to our hardware support, in particular for the RP2040 processor.
The following new boards have been added this release:
Here is the complete list of changes:
- command line
- add
-workflag - add Go 1.18 support
- add LLVM 14 support
run: add support for command-line parametersbuild: calculate default output path if-ois not specifiedbuild: add JSON outputtest: support multiple test binaries with-ctest: support flags like-von all targets (including emulated firmware)
- add
- compiler
- add support for ThinLTO
- use compiler-rt from LLVM
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 incorrectunsafe.Alignofon some 32-bit architecturescompiler: accept alias for slicecapbuiltincompiler: allow slices of empty structscompiler: fix difference in aliases in interface methodscompiler: makeRawSyscallan alias forSyscallcompiler: remove support for memory references inAsmFullloader: only add Clang header path for CGotransform: fix poison value in heap-to-stack transform
- standard library
internal/fuzz: add this package as a shimos: implement readdir for darwin and linuxos: addDirFS, which is used by many programs to access readdir.os: isWine: be compatible with older versions of wine, tooos: implementRemoveAllos: Use auintptrforNewFileos: add stubs forexec.ExitErrorandProcessState.ExitCodeos: export correct values forDevNullfor each OSos: improve support forSignalby fixing various bugsos: implementFile.Fdmethodos: implementUserHomeDiros: addexec.ProcessStatestubos: implementPipefor darwinos: define stubErrDeadlineExceededreflect: add stubs for more missing methodsreflect: renamereflect.Ptrtoreflect.Pointerreflect: addValue.FieldByIndexErrstubruntime: fix various small GC bugsruntime: use memzero for leaking collector instead of manually zeroing objectsruntime: implementmemhashruntime: implementfastrandruntime: add stub fordebug.ReadBuildInforuntime: add stub forNumCPUruntime: don't inlineruntime.allocwith-gc=leakingruntime: addVersionruntime: add stubs forNumCgoCallandNumGoroutineruntime: stub {Lock,Unlock}OSThread on Windowsruntime: be able to deal with a very small heapsyscall: makeEnvironreturn a copy of the environmentsyscall: implement getpagesize and munmapsyscall:wasi: defineMAP_SHAREDandPROT_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: stubWaitStatussyscall/js: allow copyBytesTo(Go|JS) to useUint8ClampedArraytesting: implementTempDirtesting: nudge type TB closer to upstream; should be a no-op change.testing: on baremetal platforms, use simpler test matcher
- targets
atsamd: 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-dynamiclinker flagwasm: remove heap allocator from wasi-libc
- boards
circuitplay-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 support