0.33.0
This is an important release. No new boards, but we make up for that by adding a bunch of other big stuff!
Some of the highlights:
- Go 1.23 support (including the new range-over-func language feature)
- WASI preview 2 support
- MIPS little endian support (big endian support is still experimental), so you can use
GOARCH=mipsle
- softfloat support for ARM and MIPS
- improved error messages
For a full list of changes, see the list below.
- general
- use latest version of x/tools
- add chromeos 9p support for flashing
- sort compiler error messages by source position in a package
- don't include prebuilt libraries in the release to simplify packaging and reduce the release tarball size
- show runtime panic addresses for
tinygo run
- support Go 1.23 (including all new language features)
test
: support GOOS/GOARCH pairs in the-target
flagtest
: remove message after test binary built
- compiler
- remove unused registers for x86_64 linux syscalls
- remove old atomics workaround for AVR (not necessary in modern LLVM versions)
- support
golang.org/x/sys/unix
syscalls builder
: remove workaround for generics race conditionbuilder
: add package ID to compiler and optimization error messagesbuilder
: show better error messages for some common linker errorscgo
: support preprocessor macros passed on the command linecgo
: use absolute paths for error messagescgo
: add support for printfloader
: handlego list
errors inside TinyGo (for better error messages)transform
: fix incorrect alignment of heap-to-stack transformtransform
: use thinlto-pre-link passes (instead of the full pipeline) to speed up compilation speed slightly
- standard library
crypto/tls
: add CipherSuiteName and some extra fields to ConnectionStateinternal/abi
: implement initial version of this packagemachine
: use newinternal/binary
packagemachine
: rewrite Reply() to fix sending long replies in I2C Target Modemachine/usb/descriptor
: Reset joystick physicalmachine/usb/descriptor
: Drop second joystick hatmachine/usb/descriptor
: Add more HID... functionsmachine/usb/descriptor
: Fix encoding of valuesmachine/usb/hid/joystick
: Allow more hat switchesos
: addChown
,Truncate
os/user
: use stdlib version of this packagereflect
: return correct name for theunsafe.Pointer
typereflect
: implementType.Overflow*
functionsruntime
: implement dummygetAuxv
to satisfy golang.org/x/sys/runtime
: don't zero out new allocations for-gc=leaking
when they are already zeroedruntime
: simplify slice growing/appending coderuntime
: print a message when a fatal signal like SIGSEGV happensruntime/debug
: addGoVersion
todebug.BuildInfo
sync
: addMap.Clear()
sync/atomic
: add And* and Or* compiler intrinsics needed for Go 1.23syscall
: addFork
andExecve
syscall
: add all MacOS errno valuestesting
: stub outT.Deadline
unique
: implement custom (naive) version of the unique package
- targets
arm
: supportGOARM=*,softfloat
(softfloat support for ARM v5, v6, and v7)mips
: add linux/mipsle (and experimental linux/mips) supportmips
: addGOMIPS=softfloat
supportwasip2
: add WASI preview 2 supportwasm/js
: addnode:
prefix inrequire()
call of wasm_exec.jswasm-unknown
: make sure theos
package can be importedwasm-unknown
: remove import-memory flag