TinyGo v0.4.0 Release Notes

Release Date: 2019-03-09 // 12 months ago
  • 🔖 Version 0.4.0 has improved support for samd21-based boards and has various compiler improvements.

    🚀 It currently still requires Go 1.11, support for Go 1.12 will be added in a future release.

    • compiler
      • switch to the hardfloat ABI on ARM, which is more widely used
      • avoid a dependency on objcopy (arm-none-eabi-objcopy etc.)
      • fix a bug in make([]T, n) where n is 64-bits on a 32-bit platform
      • adapt to a change in the AVR backend in LLVM 8
      • directly support the .uf2 firmware format as used on Adafruit boards
      • fix a bug when calling panic() at init time outside of the main package
      • implement nil checks, which results in a ~5% increase in code size
      • inline slice bounds checking, which results in a ~1% decrease in code size
    • targets
      • samd21: fix a bug in port B pins
      • samd21: implement SPI peripheral
      • samd21: implement ADC peripheral
      • stm32: fix a bug in timekeeping
      • wasm: fix a bug in wasm_exec.js that caused corruption in linear memory when running on Node.js.