|
| 1 | +0.42.0 |
| 2 | +--- |
| 3 | +* **general** |
| 4 | + - all: add LLVM 22 support, and support LLVM 19 and LLVM 20 on Fedora 43 |
| 5 | + - all: build and test using Go 1.27, and raise the max supported Go version to 1.27 |
| 6 | + - all: modernize and clean up code with Go 1.24+ in mind (#5489, #5498) |
| 7 | + - all: use unsafe.SliceData where appropriate |
| 8 | + - all: update golang.org/x/tools and go-llvm |
| 9 | + - cli: add basic probe-rs support |
| 10 | + - cli: clarify the runtime.alloc linker error with -gc=none |
| 11 | + - main: allow the -o flag to point to a directory |
| 12 | + - main: make the -monitor flag on flash respect the port |
| 13 | + - main: update to espflasher 0.8.0 with fixes for esp32c3 and esp32s3 |
| 14 | + - cgo: add CGO_CFLAGS support (#5453) |
| 15 | + - version: update to 0.42.0 for the new dev cycle |
| 16 | + - docs: add agents.md guideline for use of ASD-STE100 (#5566) |
| 17 | +* **compiler** |
| 18 | + - compiler, runtime: make runtime, map, and channel panics recoverable |
| 19 | + - compiler, runtime: support recover on riscv64 |
| 20 | + - compiler, runtime, reflect: generate type-specific hash/equal (#5359) |
| 21 | + - support Go 1.27 generic methods via the x/tools upgrade |
| 22 | + - canonicalize generic instance and method signature identities |
| 23 | + - disambiguate function-local named types and generic instance link names (#5336) |
| 24 | + - exclude generic methods from runtime method sets |
| 25 | + - support file-level //go:linkname directives and the //go:linknamestd pragma |
| 26 | + - add the //go:noheap pragma |
| 27 | + - pass large aggregates by pointer |
| 28 | + - use LLVM intrinsics for math trig operations |
| 29 | + - optimize zero-sized allocations |
| 30 | + - consistently pass layout and alignment to createAlloc |
| 31 | + - handle nested unsigned shift being untyped after type resolution (#5497) |
| 32 | + - store the defer list head in the defer frame and centralize deferred call records |
| 33 | + - centralize SSA loads, stores, result handling, and LLVM function type construction |
| 34 | + - transform, compiler: support the captures(none) attribute of LLVM 21 |
| 35 | + - compiler: make composite map hashes order dependent |
| 36 | +* **core** |
| 37 | + - reflect: add Type.ConvertibleTo and complex, rune, and integer string conversions |
| 38 | + - reflect: implement MakeChan |
| 39 | + - reflect: add missing iterator methods |
| 40 | + - reflect, reflectlite: make IsRO and MakeRO package methods |
| 41 | + - sync: add Map.CompareAndSwap and Map.CompareAndDelete |
| 42 | + - sync: fix deadlock in the Map.Range callback |
| 43 | + - os, syscall: add Statfs and Fstatfs stubs and Getpagesize for non-hosted targets |
| 44 | + - os: add File.Chown on the unix path |
| 45 | + - runtime, syscall, internal/poll, os: wasip1 poll_oneoff scheduler integration and net.FileListener (#5386) |
| 46 | + - runtime, testing: support Goexit, SkipNow, and FailNow |
| 47 | + - syscall: remove sliceHeader, use unsafe.SliceData more |
| 48 | + - builder, cgo, syscall: replace fixed-size array casts with unsafe.Slice |
| 49 | + - builder, loader: fix -ldflags -X not overriding variables with default values |
| 50 | + - builder: build SSA before compiling packages |
| 51 | + - builder: increase the stack size margin for automatic stack allocation |
| 52 | + - builder: do not count non-writable SHT_NOBITS sections as RAM or bss |
| 53 | + - builder: link stack probes on Windows amd64 and arm64, and add chkstk2.S for windows/386 |
| 54 | + - builder: add strlen to the wasm builtins |
| 55 | + - builder: retry cached archive renames on Windows (#5462) |
| 56 | + - loader: avoid a race condition when loading the package list, and skip object resolution |
| 57 | + - interp: bail out of loops that iterate too many times (#5395) |
| 58 | + - interp: fix partial store aliasing and avoid repeated object clones |
| 59 | + - interp: defer out-of-bounds loads to runtime instead of crashing |
| 60 | + - interp: mark pointers in aggregate call operands as external |
| 61 | + - interp: fix switch-instruction handling for the new case-value API of LLVM 22 |
| 62 | + - transform: follow returned pointer and aggregate alloc aliases |
| 63 | + - transform: add -print-allocs-cover and restore the -print-allocs reason output |
| 64 | + - device: add device/uefi and device/amd64 |
| 65 | + - wasm: patch wasm_exec.js and wasm_exec_node.js from Go 1.18+ (#5483) |
| 66 | +* **net** |
| 67 | + - update the net module with a roundtrip fix for js/wasm |
| 68 | +* **runtime** |
| 69 | + - make divide-by-zero and nil dereference panics recoverable |
| 70 | + - add a Windows vectored exception handler for recoverable panics |
| 71 | + - make Goexit exit host threads, and encode a pending Goexit in the panic state |
| 72 | + - make out-of-memory and fatal failures unrecoverable |
| 73 | + - improve the hardfault handler and stack reporting on Cortex-M |
| 74 | + - prevent timer starvation in the cores scheduler |
| 75 | + - do not access the timer queue outside of the lock |
| 76 | + - fix ticker not stopping when Stop races with its callback (#5487) |
| 77 | + - wake channel waiters after releasing locks (#5513) |
| 78 | + - implement SetFinalizer and run syscall/js finalizers without a manual GC (#5545) |
| 79 | + - implement MemStats.NumGC |
| 80 | + - add runtime.fastrandn (#5502) |
| 81 | + - make arrays and struct field hashes order dependent |
| 82 | + - add critical-section fallbacks for atomic And and Or |
| 83 | + - gc: pause all cores before scanning the stack and globals |
| 84 | + - gc: correct the old size calculation in block realloc |
| 85 | + - gc: correct the leaking allocator bounds and overflow checks |
| 86 | + - gc: move objHeader to the end of the block header |
| 87 | + - fix the leaking GC build with the cores scheduler |
| 88 | + - rp2040: fix -gc=leaking and -gc=none |
| 89 | + - rp2: handle the RP2350 shared FIFO IRQ for GC (#5482) |
| 90 | + - esp32c6: select the 80MHz PLL as the TIMG0 timer clock source |
| 91 | + - split baremetal memory setup and the Windows PE globals scan for UEFI (#5360, #5361) |
| 92 | +* **machine** |
| 93 | + - usb: support bidirectional endpoints by dynamic registration on RP2, SAMD21/51, and nRF52840 (#5447) |
| 94 | + - usb: generate endpoint descriptors dynamically |
| 95 | + - usb: implement endpoint stall for nRF52840 |
| 96 | + - usb: fix a truncated string descriptor when the host requests a short maxLen (#5449) |
| 97 | + - usb: add USBDevice.Attach and USBDevice.Detach (#5563) |
| 98 | + - usb/cdc: fix the RP2 USB CDC TX race with the cores scheduler (#5391) |
| 99 | + - add UART line inversion support (#5522) |
| 100 | + - optimize RTT initialization |
| 101 | + - device/arm: add ARM v7-M MPU support |
| 102 | + - esp32: add interrupt support with vector table, timer alarm, and GPIO SetInterrupt |
| 103 | + - esp32: add interrupt-based UART RX and fix the init order |
| 104 | + - esp32: implement flash XIP (execute-in-place) support |
| 105 | + - esp32: add ADC driver (#5595) |
| 106 | + - esp32: fix pullup and pulldown on RTC GPIO pins |
| 107 | + - esp32: remove dead code and fix GC root scanning |
| 108 | + - esp32: configure UARTs to the specified pins and yield while waiting for the buffer |
| 109 | + - esp32, esp32s3: fix the boot crash caused by the LLVM 22 lld l32r relocation bug |
| 110 | + - esp32s3: fix register-window corruption under interrupt load |
| 111 | + - esp32s3: add temperature reading |
| 112 | + - esp32c6: add a minimal implementation with I2C and ADC support |
| 113 | + - stm32: fix UART transmission, baud rate, and interrupt handling |
| 114 | + - stm32: add an OTG FS USB driver for F4 and F7 |
| 115 | + - stm32: add STM32H7 and NUCLEO-H753ZI support |
| 116 | + - stm32: add support for the STM32U031 chip |
| 117 | + - stm32: make the HSE crystal frequency selectable |
| 118 | + - stm32u5: configure the system clock to 160 MHz |
| 119 | + - nrf: avoid a too high priority interrupt on SoftDevice |
| 120 | + - rp2: allow SPI transmit-only without SDI (#5437) |
| 121 | + - rp2: clear the USB buffer status before the endpoint handlers |
| 122 | + - rp2350: fix the ROM CS control for the RP2350 ROM code |
| 123 | + - add GP aliases for waveshare-rp2040-zero |
| 124 | + - gba: add support for mGBA debugging |
| 125 | + - gba: add bios interrupt flags and sound register constants (#5445) |
| 126 | +* **targets** |
| 127 | + - add minimal uefi target support with the LinkerFlavor option (#5452, #5465) |
| 128 | + - uefi: add support for UEFI time and events, fix STOP newline conversion (#5549) |
| 129 | + - uefi: add support for the tasks scheduler and make it the default (#5553) |
| 130 | + - add Puya PY32F MCU support (#5106) |
| 131 | + - add esp32s3-box-3 (#5388) |
| 132 | + - add M5Stack Stamp-S3A (#5524) |
| 133 | + - add Pimoroni Blinky 2350 and Badger 2350 (#5434) |
| 134 | + - add the 'Plus' board variant of SeeedStudio XIAO nrf52840 (#5479) |
| 135 | + - esp32: adjust memory usage, add DRAM1 sections, and export the symbols needed for wifi |
| 136 | + - esp32c3: add the BT ROM functions to the linker |
| 137 | + - esp32: add the espradio tag for convenience |
| 138 | + - builder: fix esp32 XIP so large programs flash correctly, including QEMU image offsets |
| 139 | + - wasm_exec.js: add runtime.getRandomData to the gojs imports, coerce memory offsets to unsigned, and reset _pendingEvent |
| 140 | +* **libs** |
| 141 | + - update macos-minimal-sdk to v0.1.0 |
| 142 | +* **build/test** |
| 143 | + - ci: run the full smoke test once, and split the GNUmakefile (#5616) |
| 144 | + - ci: publish a draft release from the artifacts that CI already built |
| 145 | + - ci: stop the LLVM caches from being evicted |
| 146 | + - ci: modify builds to use LLVM 22 |
| 147 | + - ci: add a check for compatibility with older Go and LLVM versions |
| 148 | + - ci: add a job to make sure go.sum stays in sync with go.mod |
| 149 | + - ci: re-add fmt-check, and remove the CircleCI configuration |
| 150 | + - ci: adjust runner sizes for Linux, Windows, and macOS |
| 151 | + - build: statically link the MinGW runtime in the LLVM tools on Windows |
| 152 | + - Makefile: use ${LLVM_PROJECTDIR} during the copy phase |
| 153 | + - GNUmakefile: disable DWARF compression for CGo objects, and update the stdlib test lists |
| 154 | + - test: run ESP32 programs in QEMU |
| 155 | + - test: support simavr 1.8+ |
| 156 | + - test: normalize LLVM IR when updating goldens |
| 157 | + - test: convert TestBinarySize to a golden file test |
| 158 | + - testdata: add regression tests for generic instances, generic aliases, and large aggregates |
| 159 | + - test: skip flaky and Go 1.27 affected tests for now |
| 160 | + |
1 | 161 | 0.41.1 |
2 | 162 | --- |
3 | 163 | * **machine** |
|
0 commit comments