This is a very major release that adds some long-awaited capabilities to TinyGo, like support for Bluetooth Low Energy via the Nordic Semiconductor nRF51/nRF52. and also support for the Espressif ESP32/ESP8266.
- command-line
- add cached GOROOT to info subcommand
- embed git-hash in tinygo-dev executable
- implement tinygo targets to list usable targets
- use simpler file copy instead of file renaming to avoid issues on nrf52840 UF2 bootloaders
- use ToSlash() to specify program path
- support flashing esp32/esp8266 directly from tinygo
- when flashing call PortReset only on other than openocd
- compiler
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_loc1
- standard library
runtime
: use waitForEvents when appropriate
- wasm
wasm
: Remove --no-threads from wasm-ld calls.wasm
: update wasi-libc dependency
- targets
arduino-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 directly
- boards
arduino-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-stm32f405
- build
all
: run test binaries in the correct directorybuild
: Fix arch release jobci
: runtinygo 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 cases
- docs
- add ESP32, ESP8266, and Adafruit Feather STM32F405 to list of supported boards