Release 0.12.0
This release incorporates a ton of smaller changes over more than a month. Notable changes are the addition of 3 new boards (Adafruit PyPortal, Adafruit Circuit Playground Bluefruit, Arduino Nano), improved support for interrupts, improved CGo support, and a number of improvements for the atsamd51 chip (for "M4" branded boards). Take a look below for a more detailed list of changes.
- command line
- add initial FreeBSD support
- remove getting a serial port in gdb subcommand
- add support for debugging through JLinkGDBServer
- fix CGo when cross compiling
- remove default port check for Digispark as micronucleus communicates directly using HID
- differentiate between various serial/USB error messages
- builder
- improve detection of Clang headers
- compiler
- fix assertion on empty interface
- don't crash when encountering
types.Invalid
- revise defer to use heap allocations when running a variable number of times
- improve error messages for failed imports
- improve "function redeclared" error
- add globaldce pass to start of optimization pipeline
- add support for debugging globals
- implement RISC-V CSR operations as intrinsics
- add support for CGO_ENABLED environment variable
- do not emit debug info for extern globals (bugfix)
- add support for interrupts
- implement maps for arbitrary keys
- interp: error location for "unknown GEP" error
- wasm-abi: create temporary allocas in the entry block
- cgo
- add support for symbols in
#define
- fix a bug in number tokenization
- add support for symbols in
- standard library
machine
: avoid bytes package in USB logicruntime
: fix external address declarationsruntime
: provide implementation forinternal/bytealg.IndexByte
- targets
atsamd51
: fix volatile usageatsamd51
: fix ADC, updating to 12-bits precisionatsamd51
: refactor SPI pin configuration to only look at pin numbersatsamd51
: switch UART to use new pin configurationatsamd51
: fix obvious bug in I2C codeatsamd51
: use only the necessary UART interruptsatsamd51
: refactor I2C pin handling to auto-detect pin modeavr
: use a garbage collectorfe310
: use CLINT peripheral for timekeepingfe310
: add support for PLIC interruptsfe310
: implement UART receive interruptsriscv
: support sleeping in QEMUriscv
: add bare-bones interrupt supportriscv
: print exception PC and codewasm
: implement memcpy and memsetwasm
: include wasi-libcwasm
: use wasi ABI for basic startup/stdout
- boards
arduino
: make avrdude command line compatible with Windowsarduino-nano
: add this boardarduino-nano33
: fix UART1 and UART2circuitplay-bluefruit
: add this boarddigispark
: add clock speed and pin mappingsgameboy-advance
: include compiler-rt in buildgameboy-advance
: implement interrupt handlerhifive1b
: add support for gdb subcommandpyportal
: add this boardpyportal
: remove manual SPI pin mapping as now handled by default