Release 0.10.0
This release adds support for blocking select, switches to LLVM 9, improves CGo support, improves support for the ATSAMD51 ("M4") chip, and generally has a lot of improvements and bug fixes throughout. It also adds support for a number of new boards: the Adafruit Feather M4, the Adafruit Metro M4 Express AirLift, the PineTime dev kit, and the "X9 Pro" smartwatch.
- command line
- halt GDB after flashing with
gdb
subcommand - fix a crash when using
-ocd-output
- add
info
subcommand - add
-programmer
flag
- halt GDB after flashing with
- builder
- macos: use llvm@8 instead of just llvm in paths
- add
linkerscript
key to target JSON files - write a symbol table when writing out the compiler-rt lib
- make Clang header detection more robust
- switch to LLVM 9
- compiler
- fix interface miscompilation with reflect
- fix miscompile of static goroutine calls to closures
- fix
todo: store
panic - fix incorrect starting value for optimized allocations in a loop
- optimize coroutines on non-Cortex-M targets
- fix crash for programs which have heap allocations but never hit the GC
- add support for async interface calls
- fix inserting non-const values in a const global
- interp: improve error reporting
- interp: implement comparing ptrtoint to 0
- cgo
- improve diagnostics
- implement the constant parser (for
#define
) as a real parser - rename reserved field names such as
type
- avoid
"unsafe" imported but not used
error - include all enums in the CGo Go AST
- add support for nested structs and unions
- implement
#cgo CFLAGS
- standard library
reflect
: 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-M
- targets
arm
: 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 IO