|
| 1 | +0.38.0 |
| 2 | +--- |
| 3 | +* **general** |
| 4 | + - `go.*`: upgrade `golang.org/x/tools` to v0.30.0 |
| 5 | + - `all`: add support for LLVM 20 |
| 6 | +* **build** |
| 7 | + - go back to using MinoruSekine/setup-scoop for Windows CI builds |
| 8 | + - `flake.*`: upgrade to nixpkgs 25.05, LLVM 20 |
| 9 | + - `Makefile`: only detect ccache command when needed |
| 10 | + - `Makefile`: create random filename inside rule |
| 11 | + - `Makefile`: don't set GOROOT |
| 12 | + - `Makefile`: call uname at most once |
| 13 | + - `Makefile`: only read NodeJS version when it is needed |
| 14 | +* **compiler** |
| 15 | + - add support for `GODEBUG=gotypesalias=1` |
| 16 | + - `interp`: fix `copy()` from/to external buffers |
| 17 | + - add `-nobounds` (similar to `-gcflags=-B`) |
| 18 | + - `compileopts`: add library version to cached library path |
| 19 | + - `builder`: build wasi-libc inside TinyGo |
| 20 | + - `builder`: simplify bdwgc libc dependency |
| 21 | + - `builder`: don't use precompiled libraries |
| 22 | + - `compileopts`: enable support for `GOARCH=wasm` in `tinygo test` |
| 23 | +* **fixes** |
| 24 | + - `rp2350`: Fix DMA to SPI transmits on RP2350 (#4903) |
| 25 | + - `microbit v2`: use OpenOCD flash method on microbit v2 when using Nordic Semi SoftDevice |
| 26 | + - `main`: display all of the current GC options for the `-gc` flag |
| 27 | + - Remove duplicated error handling |
| 28 | + - `sync`: fix `TestMutexConcurrent` test |
| 29 | + - fix race condition in `testdata/goroutines.go` |
| 30 | + - fix build warnings on Windows ARM |
| 31 | +* **machine** |
| 32 | + - `usb`: add USB mass storage class support |
| 33 | + - implement usb receive message throttling |
| 34 | + - declare usb endpoints per-platform |
| 35 | + - `samd21`: implement watchdog |
| 36 | + - `samd51`: write to flash memory in 512 byte long chunks |
| 37 | + - `samd21`: write to flash memory in 64 byte long chunks |
| 38 | + - don't inline RTT `WriteByte` everywhere |
| 39 | + - `rp2`: unexport machine-specific errors |
| 40 | + - `rp2`: discount scheduling delays in I2C timeouts (#4876) |
| 41 | + - use pointer receiver in simulated PWM peripherals |
| 42 | + - add simulated PWM/timer peripherals |
| 43 | + - `rp2`: expose usb endpoint stall handling |
| 44 | + - `arm`: clear pending interrupts before enabling them |
| 45 | + - `rp2`: merge common usb code (#4856) |
| 46 | +* **main** |
| 47 | + - add "cores" and "threads" schedulers to help text |
| 48 | + - add `StartPos` and `EndPos` to `-json` build output |
| 49 | + - change `-json` flag to match upstream Go |
| 50 | +* **runtime** |
| 51 | + - don't lock the print output inside interrupts |
| 52 | + - don't try to interrupt other cores before they are started |
| 53 | + - implement `NumCPU` for the multicore scheduler |
| 54 | + - add support for multicore scheduler |
| 55 | + - refactor obtaining the system stack |
| 56 | + - `interrupt`: add `Checkpoint` type |
| 57 | + - add `exportedFuncPtr` |
| 58 | + - avoid an allocation in `(*time.Timer).Reset` |
| 59 | + - stub runtime signal functions for `os/signal` on wasip1 |
| 60 | + - move `timeUnit` to a single place |
| 61 | + - implement `NumCPU` for `-scheduler=threads` |
| 62 | + - move `mainExited` boolean |
| 63 | + - `internal/task`: rename `tinygo_pause` to `tinygo_task_exit` |
| 64 | + - map every goroutine to a new OS thread |
| 65 | + - refactor `timerQueue` |
| 66 | + - make conservative and precise GC MT-safe |
| 67 | + - `internal/task`: implement atomic primitives for preemptive scheduling |
| 68 | + - Use diskutil on macOS to extract volume name and path for FAT mounts #4928 |
| 69 | +* **standard library** |
| 70 | + - `net`: update submodule to latest commits |
| 71 | + - `runtime/debug`: add GC related stubs |
| 72 | + - `metrics`: flesh out some of the metric types |
| 73 | + - `reflect`: Chan related stubs |
| 74 | + - `os`: handle relative and abs paths in `Executable()` |
| 75 | + - `os`: add `os.Executable()` for Darwin |
| 76 | + - `sync`: implement `RWMutex` using futexes |
| 77 | + - `reflect`: Add `SliceOf`, `ArrayOf`, `StructOf`, `MapOf`, `FuncOf` |
| 78 | +* **targets** |
| 79 | + - `rp2040`: add multicore support |
| 80 | + - `riscv32`: use `gdb` binary as a fallback |
| 81 | + - add target for Microbit v2 with SoftDevice S140 support for both peripheral and central |
| 82 | + - `windows`: use MSVCRT.DLL instead of UCRT on i386 |
| 83 | + - `windows`: add windows/386 support |
| 84 | + - `arm64`: remove unnecessary `.section` directive |
| 85 | + - `riscv-qemu`: actually sleep in `time.Sleep()` |
| 86 | + - `riscv`: define CSR constants and use them where possible |
| 87 | + - `darwin`: support Boehm GC (and use by default) |
| 88 | + - `windows`: add support for the Boehm-Demers-Weiser GC |
| 89 | + - `windows`: fix wrong register for first parameter |
| 90 | +* **wasm** |
| 91 | + - add Boehm GC support |
| 92 | + - refactor/modify stub signal handling |
| 93 | + - don't block `//go:wasmexport` because of running goroutines |
| 94 | + - use `int64` instead of `float64` for the `timeUnit` |
| 95 | +* **boards** |
| 96 | + - Add board support for BigTreeTech SKR Pico (#4842) |
| 97 | + |
| 98 | + |
1 | 99 | 0.37.0
|
2 | 100 | ---
|
3 | 101 | * **general**
|
|
0 commit comments