0.29.0
This release adds support for Go 1.21
It also adds compatibility with the new GOOS=wasip1
using the Go built-in WASI support.
There are a number of compiler and standard library improvements, such as even better reflection, and improved map/slice implementations.
We also have a bunch of useful fixes and improvements to various microcontrollers, including new support for hardware based watchdog timers (WDT) so your embedded devices can be more reliable than ever.
Here is the full changelog:
- general
- Go 1.21 support
- use https for renesas submodule #3856
- ci: rename release-double-zipped to something more useful
- ci: update Node.js from version 14 to version 16
- ci: switch GH actions builds to use Go 1.21 final release
- docker: update clang to version 15
- docker: use Go 1.21 for Docker dev container build
main
: add target JSON file intinygo info
outputmain
: improve detection of filesystemsmain
: usego env
instead of doing all detection manually- make: add make task to generate Renesas device wrappers
- make: add task to check NodeJS version before running tests
- add submodule for Renesas SVD file mirror repo
- update to go-serial package v1.6.0
testing
: add Testing functiontools/gen-device-svd
: small changes needed for Renesas MCUs
- compiler
builder
: update message for max supported Go versioncompiler,reflect
: NumMethods reports exported methods onlycompiler
: add compiler-rt and wasm symbols to tablecompiler
: add compiler-rt to wasm.jsoncompiler
: add min and max builtin supportcompiler
: implement clear builtin for mapscompiler
: implement clear builtin for slicescompiler
: improve panic message when a runtime call is unavailablecompiler
: update .ll test outputloader
: merge go.env file which is now required starting in Go 1.21 to correctly get required packages
- standard library
os
: define ErrNoDeadlinereflect
: Add FieldByNameFuncreflect
: add SetZeroreflect
: fix iterating over maps with interface{} keysreflect
: implement Value.Growreflect
: remove unecessary heap allocationsreflect
: use .key() instead of a type assertsync
: add implementation from upstream Go for OnceFunc, OnceValue, and OnceValues
- targets
machine
: UART refactor (#3832)machine/avr
: pin change interruptmachine/macropad_rp2040
: add machine.BUTTONmachine/nrf
: add I2C timeoutmachine/nrf
: wait for stop condition after reading from the I2C busmachine/nRF52
: set SPI TX/RX lengths even data is empty. Fixes #3868 (#3877)machine/rp2040
: add missing suffix to CMD_READ_STATUSmachine/rp2040
: add NoPin supportmachine/rp2040
: move flash related functions into separate file from C imports for correct - LSP. Fixes #3852machine/rp2040
: wait for 1000 us after flash reset to avoid issues with busy USB busmachine/samd51,rp2040,nrf528xx,stm32
: implement watchdogmachine/samd51
: fix i2cTimeout was decreasing due to cache activationmachine/usb
: Add support for HID Keyboard LEDsmachine/usb
: allow USB Endpoint settings to be changed externallymachine/usb
: refactor endpoint configurationmachine/usb
: remove usbDescriptorConfigmachine/usb/hid,joystick
: fix hidreport (3) (#3802)machine/usb/hid
: add RxHandler interfacemachine/usb/hid
: rename Handler() to TxHandler()wasi
: allow zero inodes when reading directorieswasm
: add support for GOOS=wasip1wasm
: fix functions exported through //exportwasm
: remove i64 workaround, use BigInt insteadexample
: adjust time offsetexample
: simplify pininterrupt
- boards
targets
: add AKIZUKI DENSHI AE-RP2040targets
: adding new uf2 target for PCA10056 (#3765)