|
|
|
0.7.1
|
|
|
|
---
|
|
|
|
* **targets**
|
|
|
|
- `atsamd21`: add support for the `-port` flag in the flash subcommand
|
|
|
|
|
|
|
|
0.7.0
|
|
|
|
---
|
|
|
|
* **command line**
|
|
|
|
- try more locations to find Clang built-in headers
|
|
|
|
- add support for `tinygo test`
|
|
|
|
- build current directory if no package is specified
|
|
|
|
- support custom .json target spec with `-target` flag
|
|
|
|
- use zversion.go to detect version of GOROOT version
|
|
|
|
- make initial heap size configurable for some targets (currently WebAssembly
|
|
|
|
only)
|
|
|
|
* **cgo**
|
|
|
|
- add support for bitfields using generated getters and setters
|
|
|
|
- add support for anonymous structs
|
|
|
|
* **compiler**
|
|
|
|
- show an error instead of panicking on duplicate function definitions
|
|
|
|
- allow packages like github.com/tinygo-org/tinygo/src/\* by aliasing it
|
|
|
|
- remove `//go:volatile` support
|
|
|
|
It has been replaced with the runtime/volatile package.
|
|
|
|
- allow poiners in map keys
|
|
|
|
- support non-constant syscall numbers
|
|
|
|
- implement non-blocking selects
|
|
|
|
- add support for the `-tags` flag
|
|
|
|
- add support for `string` to `[]rune` conversion
|
|
|
|
- implement a portable conservative garbage collector (with support for wasm)
|
|
|
|
- add the `//go:noinline` pragma
|
|
|
|
* **standard library**
|
|
|
|
- `os`: add `os.Exit` and `syscall.Exit`
|
|
|
|
- `os`: add several stubs
|
|
|
|
- `runtime`: fix heap corruption in conservative GC
|
|
|
|
- `runtime`: add support for math intrinsics where supported, massively
|
|
|
|
speeding up some benchmarks
|
|
|
|
- `testing`: add basic support for testing
|
|
|
|
* **targets**
|
|
|
|
- add support for a generic target that calls `__tinygo_*` functions for
|
|
|
|
peripheral access
|
|
|
|
- `arduino-nano33`: add support for this board
|
|
|
|
- `hifive1`: add support for this RISC-V board
|
|
|
|
- `reelboard`: add e-paper pins
|
|
|
|
- `reelboard`: add `PowerSupplyActive` to enable voltage for on-board devices
|
|
|
|
- `wasm`: put the stack at the start of linear memory, to detect stack
|
|
|
|
overflows
|
|
|
|
|
|
|
|
0.6.0
|
|
|
|
---
|
|
|
|
* **command line**
|
|
|
|
- some portability improvements
|
|
|
|
- make `$GOROOT` more robust and configurable
|
|
|
|
- check for Clang at the Homebrew install location as fallback
|
|
|
|
* **compiler driver**
|
|
|
|
- support multiple variations of LLVM commands, for non-Debian distributions
|
|
|
|
* **compiler**
|
|
|
|
- improve code quality in multiple ways
|
|
|
|
- make panic configurable, adding trap on panic
|
|
|
|
- refactor many internal parts of the compiler
|
|
|
|
- print all errors encountered during compilation
|
|
|
|
- implement calling function values of a named type
|
|
|
|
- implement returning values from blocking functions
|
|
|
|
- allow larger-than-int values to be sent across a channel
|
|
|
|
- implement complex arithmetic
|
|
|
|
- improve hashmap support
|
|
|
|
- add debuginfo for function arguments
|
|
|
|
- insert nil checks on stores (increasing code size)
|
|
|
|
- implement volatile operations as compiler builtins
|
|
|
|
- add `//go:inline` pragma
|
|
|
|
- add build tags for the Go stdlib version
|
|
|
|
* **cgo**
|
|
|
|
- implement `char`, `enum` and `void*` types
|
|
|
|
- support `#include` for builtin headers
|
|
|
|
- improve typedef/struct/enum support
|
|
|
|
- only include symbols that are necessary, for broader support
|
|
|
|
- mark external function args as `nocapture`
|
|
|
|
- implement support for some `#define` constants
|
|
|
|
- implement support for multiple CGo files in a single package
|
|
|
|
- **standard library**
|
|
|
|
- `machine`: remove microbit matrix (moved to drivers repository)
|
|
|
|
- `machine`: refactor pins to use `Pin` type instead of `GPIO`
|
|
|
|
- `runtime`: print more interface types on panic, including `error`
|
|
|
|
* **targets**
|
|
|
|
- `arm`: print an error on HardFault (including stack overflows)
|
|
|
|
- `atsamd21`: fix a bug in the ADC peripheral
|
|
|
|
- `atsamd21`: add support for I2S
|
|
|
|
- `feather-m0`: add support for this board
|
|
|
|
- `nrf51`: fix a bug in I2C
|
|
|
|
- `stm32f103xx`: fix a bug in I2C
|
|
|
|
- `syscall`: implement `Exit` on unix
|
|
|
|
- `trinket-m0`: add support for this board
|
|
|
|
- `wasm`: make _main_ example smaller
|
|
|
|
- `wasm`: don't cache wasm file in the server, for ease of debugging
|
|
|
|
- `wasm`: work around bug #41508 that caused a deadlock while linking
|
|
|
|
- `wasm`: add support for `js.FuncOf`
|
|
|
|
|
|
|
|
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
|