You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

3.7 KiB

0.5.0

  • compiler driver
    • use wasm-ld instead of wasm-ld-8 on macOS
    • drop dependency on llvm-ar
    • fix linker script includes when running outside TINYGOROOT
  • 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: improve uintptr support
    • cortexm: implement memmove intrinsic generated by LLVM
    • cortexm: use the lld linker instead of arm-none-eabi-ld
    • darwin: use custom syscall package that links to libSystem.dylib
    • microbit: add blink example
    • samd21: support I2C1
    • samd21: machine/atsamd21: correct pad/pin handling when using both UART and USBCDC interfaces at same time
    • stm32f4discovery: add support for this board
    • wasm: support async func values
    • wasm: improve documentation and add extra example

0.4.1

  • compiler
    • fix objcopy replacement to include the .data section in the firmware image
    • use llvm-ar-7 on Linux to fix the Docker image

0.4.0

  • 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.

0.3.0

  • compiler
    • remove old -initinterp flag
    • add support for macOS
  • cgo
    • add support for bool/float/complex types
  • standard library
    • device/arm: add support to disable/enable hardware interrupts
    • machine: add CPU frequency for nrf-based boards
    • syscall: add support for darwin/amd64
  • targets
    • circuitplay_express: add support for this board
    • microbit: add regular pin constants
    • samd21: fix time function for goroutine support
    • samd21: add support for USB-CDC (serial over USB)
    • samd21: add support for pins in port B
    • samd21: add support for pullup and pulldown pins
    • wasm: add support for Safari in example

0.2.0

  • command line
    • add version subcommand
  • compiler
    • fix a bug in floating point comparisons with NaN values
    • fix a bug when calling panic in package initialization code
    • add support for comparing complex64 and complex128
  • cgo
    • add support for external globals
    • add support for pointers and function pointers
  • standard library
    • fmt: initial support, fmt.Println works
    • math: support for most/all functions
    • os: initial support (only stdin/stdout/stderr)
    • reflect: initial support
    • syscall: add support for amd64, arm, and arm64