Skip to content

Commit 3f00d3b

Browse files
committed
Release 0.41.0
Signed-off-by: deadprogram <ron@hybridgroup.com>
1 parent 94ebddb commit 3f00d3b

File tree

3 files changed

+153
-3
lines changed

3 files changed

+153
-3
lines changed

CHANGELOG.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,153 @@
1+
0.41.0
2+
---
3+
* **general**
4+
- go.mod, compiler: bump minimum Go version to 1.23
5+
- builder: support Go 1.26 now
6+
- internal/tools: move into root
7+
- feat: add inheritable-only field to filter processor-level targets (#5270)
8+
- create generic targets for esp32 boards
9+
- feature: add esp32flash flash method for esp32s3/esp32c3/esp32/esp8266
10+
- flashing: introduce flash method 'esp32jtag' for esp32c3/esp32s3 targets
11+
- targets: add "adb" flash method using Android Debug Bridge
12+
- main: auto-use best available flashing options on esp32
13+
- espflasher: update to espflasher 0.6.0
14+
* **compiler**
15+
- implement method-set based AssignableTo and Implements (#5304)
16+
- simplify createObjectLayout
17+
- implement copy directly
18+
- fix min/max on floats by using intrinsics
19+
- add element layout to sliceAppend
20+
- add intrinsic for crypto/internal/constanttime.boolToUint8
21+
- fix SyscallN handling for Windows on Go 1.26+
22+
* **core**
23+
- reflect: add TypeAssert
24+
- reflect: fix TypeAssert for structs
25+
- sync: add WaitGroup.Go
26+
- os: add UserCacheDir and UserConfigDir
27+
- os: implement Lchown function for changing file ownership (#5161)
28+
- testing: add b.ReportMetric()
29+
- errors: add errors package to passing list
30+
- internal/gclayout: use correct lengths
31+
- internal/abi: add EscapeNonString, EscapeToResultNonString
32+
- internal, runtime: add internal fips bool
33+
- internal/itoa: resurrect from Go stdlib
34+
- internal/syscall/unix: implement GetRandom for WASI targets
35+
- interp: make ptrtoint size mismatch a recoverable error
36+
- loader: support "all:" prefix in //go:embed patterns
37+
- loader, crypto/internal/entropy: fix 32 MiB RAM overflow on microcontrollers
38+
- loader, unicode/utf8: fix hiBits overflow on 16-bit AVR targets
39+
- builder: order embedded files deterministically
40+
- builder: fix panic in findPackagePath when using -size short
41+
- builder: fix SIGSEGV when stripping duplicate function definitions
42+
- builder, runtime: fix duplicate symbol error with Go 1.26+ on Windows
43+
- builder: use target-specific -march for RISC-V library compilation
44+
- transform: modify output format from the -print-allocs flag to match the go coverage tool format
45+
- cgo: allow for changes to 'short-enums' flag
46+
- wasm: add more stubbed file operations
47+
* **machine**
48+
- esp32c3: implement BlockDevice for esp32c3 flash
49+
- esp32c3: clear GPIO STATUS before dispatching pin callbacks
50+
- esp32c3: implement USBDevice using interrupts
51+
- esp32c3: add Enable stub for QEMU test target
52+
- esp32c3: fix interrupt disable handling
53+
- esp32c3: clear MCAUSE after handling interrupt
54+
- esp32c3: map missing IRAM sections in linker script
55+
- esp32c3: fix to use PROVIDE() for WiFi/BLE ROM function addresses to allow blob overrides
56+
- esp32c3: add WiFi/BLE ROM linker support
57+
- esp32c3: use TIMG0 alarm interrupt for sleepTicks instead of busy-waiting
58+
- esp32s3: implement Pin.SetInterrupt for GPIO pin change interrupts
59+
- esp32s3: use edge-triggered CPU interrupt for GPIO pin interrupts
60+
- esp32s3: add interrupt support (#5244)
61+
- esp32s3: switch USB implementation to use interrupts instead of polling
62+
- esp32s3: replace inline ISR with full interrupt vector handler
63+
- esp32s3: use TIMG0 alarm interrupt for sleepTicks
64+
- esp32s3: improve exception handlers, add procPin/procUnpin, and linker wrap flags
65+
- esp32s3: fix Xtensa register window spill using recursive call4 in task switching
66+
- esp32s3: update linker script and boot assembly for multi-page flash XIP mapping
67+
- esp32s3: add flash XIP boot assembly with cache/MMU init
68+
- esp32s3: implement SPI (#5169)
69+
- esp32s3: implement I2C interface (#5210)
70+
- esp32s3: implement RNG based on onboard hardware random number generator
71+
- esp32s3,esp32c3: add USB serial support
72+
- esp32s3,esp32c3: add txStalled flag to skip USB serial spin when no host
73+
- esp32s3,esp32c3: make USB Serial/JTAG writes non-blocking when FIFO is full
74+
- esp32c3/esp32s3: refactor ADC implementation to reduce code duplication
75+
- esp32s3,esp32c3: add ADC support (#5231)
76+
- esp32s3,esp32c3: add PWM support (#5215)
77+
- esp32c3/esp32s3: refactoring and corrections for SPI implementation
78+
- esp32xx: add WASM simulator support for ESP32-C3/ESP32-S3 targets
79+
- esp32: default SPI CS pin to NoPin when unset
80+
- esp: fix tinygo_scanCurrentStack to spill register windows
81+
- stm32: fix UART interrupt storm caused by uncleared overrun error
82+
- stm32: fix PWM problem due to register shifting
83+
- stm32: add STM32U585 target definition and runtime
84+
- stm32: add STM32U5 GPIO, pin interrupts, and UART support
85+
- stm32: add STM32U5 I2C support
86+
- stm32: add STM32U5 SPI support
87+
- stm32u585: implement ADC
88+
- stm32g0b1: add support (#5150)
89+
- stm32g0b1: add Watchdog + ADC support (#5158)
90+
- stm32l0: add flash support
91+
- stm32l0x1,l0x2: TIM: adapt to 32-bit register access
92+
- stm32g0: sync with updated stm32 device files
93+
- attiny85: add USI-based SPI support (#5181)
94+
- attiny85: add PWM support (#5171)
95+
- rp: add Close function to UART to allow for removing all system resources/power usage
96+
- rp: use blockReset() and unresetBlockWait() helper functions for peripheral reset/unreset
97+
- rp2: prevent PWM Period method overflow
98+
- rp2: add per-byte timeout budget for I2C (#5189)
99+
- feather-m0: export UART0 and pins
100+
- fix usb truncation
101+
- usb/cdc: better ring buffer implementation (#5209)
102+
- fix: replace ! with ~ for register mask
103+
- atmega328p_simulator: add correct build tag for arduino_uno after renaming
104+
* **net**
105+
- update to Go 1.26.2 net package with UDP and JS improvements
106+
* **runtime**
107+
- implement fminimum/fmaximum
108+
- make timeoffset atomic
109+
- add MemStats.HeapObjects
110+
- handle GODEBUG on wasip2 (#5312)
111+
- fix Darwin syscall return value truncation and lost arguments
112+
- add syscall.runtimeClearenv for Go 1.26
113+
- split syscall functions for darwin changes for 1.26
114+
- fix: init heap before random number seed on wasm platforms
115+
* **targets**
116+
- add esp32s3-supermini board target
117+
- add support for Seeedstudio Xiao-RP2350 board
118+
- add Shrike Lite board (#5170)
119+
- rename arduino target to arduino-uno
120+
- add pins/setup for Arduino UNO Q board QWIIC connector
121+
- correct pin mapping for Arduino UNO Q STM32 MCU
122+
- add stm32u585 openocd commands for flashing on Arduino UNO Q
123+
- correct name/tag use for esp32s3-wroom1 board
124+
- modify esp32, esp32s3, esp32c3, & esp8266 targets to use built-in esp32flash
125+
- switch rp2040/rp2350 to default to tasks scheduler
126+
- change default stack size for esp32c3 and esp32s3 to 8196
127+
- swan: rename group build tag stm32l4x5 => stm32l4y5 to avoid clash with stm32 device name
128+
- nucleo-f722ze: add build-tag stm32f722
129+
- fix: set stm32u5x clock rate to default
130+
* **libs**
131+
- stm32-svd: update submodule
132+
- update tools/gen-device-svd for recent changes to stm32-svd file structure (#5212)
133+
* **build/test**
134+
- build: use Golang 1.26 for all builds
135+
- build: actually use the version of llvm we are supposed to be testing by using brew link command
136+
- build: let scoop run updates to resolve binaryen install failures on Windows
137+
- ci: don't double zip release artifacts
138+
- test: increase default timeout from 1 to 2 minutes to prevent spurious CI fails
139+
- testdata: fix flaky timers test by draining ticker channel after Stop
140+
- testdata: more corpus entries (#5182)
141+
- add soypat/lneto to corpus
142+
- GNUmakefile: add context and expvar to stdlib tests
143+
- GNUmakefile: add encoding/xml to stdlib tests on Linux
144+
- main (test): skip mipsle test if the emulator is missing
145+
- make: remove machine without board from smoketest
146+
- stm32: add Arduino UNO Q to smoketests
147+
- flake: bump to nixpkgs 25.11
148+
- chore: update all github actions to latest versions
149+
- fix: use external 7zip for scoop installs on Windows
150+
1151
0.40.1
2152
---
3153
* **machine**

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func main() {
3434
}
3535
```
3636

37-
The above program can be compiled and run without modification on an Arduino Uno, an Adafruit ItsyBitsy M0, or any of the supported boards that have a built-in LED, just by setting the correct TinyGo compiler target. For example, this compiles and flashes an Arduino Uno:
37+
The above program can be compiled and run without modification on an [Arduino Uno](https://tinygo.org/docs/reference/microcontrollers/boards/arduino-uno), an [Adafruit Circuit Playground Express](https://tinygo.org/docs/reference/microcontrollers/featured/circuitplay-express), a [Seeed Studio XIAO-ESP32S3](https://tinygo.org/docs/reference/microcontrollers/featured/xiao-esp32s3) or any of the many supported boards that have a built-in LED, just by setting the correct TinyGo compiler target. For example, this compiles and flashes an Arduino Uno:
3838

3939
```shell
4040
tinygo flash -target arduino-uno examples/blinky1
@@ -77,7 +77,7 @@ See the [getting started instructions](https://tinygo.org/getting-started/) for
7777

7878
### Embedded
7979

80-
You can compile TinyGo programs for over 94 different microcontroller boards.
80+
You can compile TinyGo programs for over 150 different microcontroller boards.
8181

8282
For more information, please see https://tinygo.org/docs/reference/microcontrollers/
8383

goenv/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010

1111
// Version of TinyGo.
1212
// Update this value before release of new version of software.
13-
const version = "0.41.0-dev"
13+
const version = "0.41.0"
1414

1515
// Return TinyGo version, either in the form 0.30.0 or as a development version
1616
// (like 0.30.0-dev-abcd012).

0 commit comments

Comments
 (0)