Release 0.5.0
Version 0.5.0 has many big and small improvements. The headline changes include support for the Go standard library 1.12 in addition to the existing Go 1.11 support and a switch to LLVM 8 which improves WebAssembly support. Other notable changes are support for the stm32f4discovery and dropping the dependency on the GNU toolchain for ARM microcontrollers.
- compiler driver
- use
wasm-ld
instead ofwasm-ld-8
on macOS - drop dependency on
llvm-ar
- fix linker script includes when running outside
TINYGOROOT
- use
- compiler
- switch to LLVM 8
- add support for the Go 1.12 standard library (Go 1.11 is still supported)
- work around lack of escape analysis due to nil checks
- implement casting named structs and pointers to them
- fix int casting to use the source signedness
- fix some bugs around
make([]T, …)
with uncommon index types - some other optimizations
- support interface asserts in interp for "math/rand" support
- resolve all func value targets at compile time (wasm-only at the moment)
- cgo
- improve diagnostics
- implement C
struct
,union
, and arrays - fix CGo-related crash in libclang
- implement
C.struct_
types
- targets
- all baremetal: pretend to be linux/arm instead of js/wasm
avr
: improveuintptr
supportcortexm
: implement memmove intrinsic generated by LLVMcortexm
: use the lld linker instead ofarm-none-eabi-ld
darwin
: use custom syscall package that links to libSystem.dylibmicrobit
: add blink examplesamd21
: support I2C1samd21
: machine/atsamd21: correct pad/pin handling when using both UART
and USBCDC interfaces at same timestm32f4discovery
: add support for this boardwasm
: support async func valueswasm
: improve documentation and add extra example