0.34.0
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=wasip1fortinygo test - add
-C DIRflag - add initial documentation for project governance
- add
-ldflags='-extldflags=...'support - improve usage message with
tinygo helpand 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.CBytesimplementationcompiler: 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[]byteor[]runeto 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: fixPitchBendos: addTruncatestub for baremetalos: add stubs foros.Filedeadlinesos: add internalnet.newUnixFilefor the net packageruntime: stub runtime_{Before,After}Exec for linkageruntime: randomize map accessesruntime: supportmaps.Cloneruntime: add more fields toMemStatsruntime: 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 GPIOPinInputmips: 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:wasmexportsupport (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