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
-work
flag - add Go 1.18 support
- add LLVM 14 support
run
: add support for command-line parametersbuild
: calculate default output path if-o
is not specifiedbuild
: add JSON outputtest
: support multiple test binaries with-c
test
: support flags like-v
on 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.Alignof
on some 32-bit architecturescompiler
: accept alias for slicecap
builtincompiler
: allow slices of empty structscompiler
: fix difference in aliases in interface methodscompiler
: makeRawSyscall
an alias forSyscall
compiler
: remove support for memory references inAsmFull
loader
: 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
: implementRemoveAll
os
: Use auintptr
forNewFile
os
: add stubs forexec.ExitError
andProcessState.ExitCode
os
: export correct values forDevNull
for each OSos
: improve support forSignal
by fixing various bugsos
: implementFile.Fd
methodos
: implementUserHomeDir
os
: addexec.ProcessState
stubos
: implementPipe
for darwinos
: define stubErrDeadlineExceeded
reflect
: add stubs for more missing methodsreflect
: renamereflect.Ptr
toreflect.Pointer
reflect
: addValue.FieldByIndexErr
stubruntime
: fix various small GC bugsruntime
: use memzero for leaking collector instead of manually zeroing objectsruntime
: implementmemhash
runtime
: implementfastrand
runtime
: add stub fordebug.ReadBuildInfo
runtime
: add stub forNumCPU
runtime
: don't inlineruntime.alloc
with-gc=leaking
runtime
: addVersion
runtime
: add stubs forNumCgoCall
andNumGoroutine
runtime
: stub {Lock,Unlock}OSThread on Windowsruntime
: be able to deal with a very small heapsyscall
: makeEnviron
return a copy of the environmentsyscall
: implement getpagesize and munmapsyscall
:wasi
: defineMAP_SHARED
andPROT_READ
syscall
: stub mmap(), munmap(), MAP_SHARED, PROT_READ, SIGBUS, etc. on nonhosted targetssyscall
: darwin: more complete list of signalssyscall
:wasi
: more complete list of signalssyscall
: stubWaitStatus
syscall/js
: allow copyBytesTo(Go|JS) to useUint8ClampedArray
testing
: implementTempDir
testing
: 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=uart
atsamd51
: 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-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