This release adds support for //go:wasmexport
that is a standardized way to export WebAssembly functions to the host, improves garbage collection performance (especially on wasm), adds big-endian MIPS support (GOOS=mips
), and adds two new boards! It also contains a number of smaller improvements and bug fixes.
- general
- fix
GOOS=wasip1
fortinygo test
- add
-C DIR
flag - add initial documentation for project governance
- add
-ldflags='-extldflags=...'
support - improve usage message with
tinygo help
and when passing invalid parameters
- fix
- compiler
builder
: remove environment variables when invoking Clang, to avoid the environment changing the behaviorbuilder
: check for the Go toolchain version used to compile TinyGocgo
: addC.CBytes
implementationcompiler
: fix passing weirdly-padded structs as parameters to new goroutinescompiler
: support pragmas on generic functionscompiler
: do not let the slice buffer escape when casting a[]byte
or[]rune
to a string, to help escape analysiscompiler
: conform to the latest iteration of the wasm types proposalloader
: don't panic when main package is not named 'main'loader
: make sure we always return type checker errors even without type errorstransform
: optimize range over[]byte(string)
- standard library
crypto/x509
: add package stub to build crypto/x509 on macOSmachine/usb/adc/midi
: fixPitchBend
os
: addTruncate
stub for baremetalos
: add stubs foros.File
deadlinesos
: add internalnet.newUnixFile
for the net packageruntime
: stub runtime_{Before,After}Exec for linkageruntime
: randomize map accessesruntime
: supportmaps.Clone
runtime
: add more fields toMemStats
runtime
: implement newcoro, coroswitch to support package iterruntime
: disallow defer in interruptsruntime
: add support for os/signal on Linux and MacOSruntime
: add gc layout info for some basic types to help the precise GCruntime
: bump GC mark stack size to avoid excessive heap rescans
- targets
darwin
: use Go standard library syscall package instead of a custom onefe310
: support GPIOPinInput
mips
: fix compiler crash with GOMIPS=softfloat and defermips
: add big-endian (GOARCH=mips) supportmips
: use MIPS32 (instead of MIPS32R2) as the instruction set for wider compatibilitywasi
: add relative and absolute --dir options to wasmtime argswasip2
: add wasmtime -S args to support network interfaceswasm
: add//go:wasmexport
support (for all WebAssembly targets)wasm
: use precise instead of conservative GC for WebAssembly (including WASI)wasm-unknown
: add bulk memory flags since basically every runtime has it now
- boards