TinyGo, a Go compiler for resource-constrained environments, is actively addressing issues related to WebAssembly (WASM) and microcontroller support, with a significant focus on memory management and function signatures.
The project currently has 430 open issues, with recent reports highlighting critical bugs such as a compiler crash (#4441) and inconsistencies in WASI target configurations (#4439). These issues suggest ongoing efforts to enhance stability and compatibility. The development team is actively contributing to these areas, with notable members including Ayke (aykevl), who has been leading efforts on Go 1.23 support and WASI improvements, and Ron Evans (deadprogram), focusing on MIPS support and bare-metal system fixes. Recent contributions are as follows:
Ayke (aykevl)
Ron Evans (deadprogram)
Damian Gryski (dgryski)
Dan Kegel (dkegel-fastly)
Unrud
Leongross
L. Pereira (lpereira)
ydnar (Randy Reddig)
Sago35
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 6 | 2 | 8 | 6 | 1 |
30 Days | 20 | 12 | 21 | 19 | 1 |
90 Days | 41 | 23 | 78 | 31 | 1 |
1 Year | 187 | 99 | 511 | 95 | 2 |
All Time | 1508 | 1078 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Ayke | 11 | 23/17/0 | 30 | 135 | 5196 | |
Dan Kegel | 1 | 5/5/0 | 8 | 64 | 435 | |
Unrud | 1 | 1/1/0 | 5 | 4 | 320 | |
leongross | 1 | 4/1/1 | 1 | 6 | 128 | |
L. Pereira | 1 | 0/1/1 | 1 | 4 | 82 | |
Roger Standridge | 1 | 7/1/4 | 1 | 2 | 37 | |
Ron Evans | 3 | 5/2/2 | 5 | 6 | 25 | |
Damian Gryski | 1 | 2/1/1 | 2 | 3 | 8 | |
kobayashi shunta | 1 | 1/1/0 | 1 | 1 | 8 | |
Randy Reddig (ydnar) | 1 | 2/1/0 | 1 | 1 | 6 | |
sago35 (sago35) | 1 | 1/0/0 | 1 | 1 | 2 | |
Marvin Drees (MDr164) | 0 | 0/0/1 | 0 | 0 | 0 | |
Andreas Deininger (deining) | 0 | 1/0/2 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The TinyGo project has seen a significant number of recent issues, with 430 open issues currently logged. The activity reflects ongoing development and user engagement, particularly with respect to WebAssembly (WASM) and microcontroller support. Notably, there are several issues related to the WASM target, including problems with memory management and function signatures. This indicates a focus on enhancing the performance and compatibility of TinyGo in these areas.
Several issues exhibit common themes, particularly around the limitations of current functionality in the net package, memory management in WASM, and the need for additional board support. There are also multiple reports of crashes or unexpected behavior when using certain features, suggesting potential stability concerns that may need addressing.
#4441: compiler crash on defer inside range-over-func
#4439: Wasi target command flag vs environment variables
#4436: [WASM] Support Custom Page Sizes
proposal
#4427: Fedora package out of date
#4421: add support for -C
flag to chdir before running
#4416: add support for GODEBUG=gotypesalias=1
#4415: Tinygo - target=wasm results in uncaught promise error in browser console
#4328: cannot use tinygo build
to modify variable WASM_NAME
#4223: wasm and wasm-unknown: allocator always allocates 2 pages (2x64k)
#4397: stdin I/O prevent goroutine execution (Mac, linux)
The issue #4441 regarding a compiler crash highlights a critical bug that could affect users relying on defer statements within range-over loops. This could indicate deeper issues within the compiler's handling of certain constructs.
Issue #4439 raises concerns about inconsistencies between command line flags and environment variables when targeting WASI, which could lead to confusion among developers trying to compile their applications correctly.
The proposal for custom page sizes (#4436) reflects an ongoing effort to enhance WASM capabilities, indicating that the community is actively seeking improvements that could lead to more efficient memory usage.
The out-of-date Fedora package (#4427) suggests potential challenges in maintaining up-to-date dependencies across different platforms, which could hinder user experience.
The request for adding support for the -C
flag (#4421) shows a desire for improved usability and functionality within the command-line interface of TinyGo.
The recent activity surrounding TinyGo indicates an active development environment with a focus on enhancing functionality and addressing critical bugs, particularly related to WASM and microcontroller support. The variety of issues logged reflects both user engagement and the complexity of maintaining such a versatile toolchain. Addressing these issues will be crucial for ensuring stability and performance as TinyGo continues to evolve.
The analysis of the pull requests (PRs) for the TinyGo project reveals a significant number of ongoing developments and enhancements aimed at improving functionality, compatibility, and performance across various platforms. The current state shows 140 open PRs, indicating active engagement from contributors in evolving the project.
PR #4442: net: rebase work of PR#4273
systemer
interface, enhancing syscall support for Linux systems.PR #4438: wasip2: do not export the _start function
run
function instead of maintaining two separate methods.PR #4437: wasip1: deduplicate target selection
PR #4435: WIP: add support for LLVM 19
PR #4433: ci: test newly supported packages
PR #4431: tinygo: add relative and absolute --dir options to wasmtime args
PR #4430: mips: better support big-endian MIPS
PR #4429: mips: use MIPS32 (instead of MIPS32R2) as the instruction set
PR #4426: stub runtime_{Before,After}Exec for linkage
PR #4424: version: update to 0.34.0-dev
PR #4422: Fix #4421: Add -C DIR
flag
PR #4417: darwin: replace custom syscall package with Go native syscall package
PR #4413: renesas: update Renesas svd generation
PR #4398 through to various other PRs indicate ongoing efforts to enhance features like RISC-V support, Boehm GC integration, and improvements in existing functionalities across multiple architectures and platforms.
The current landscape of open pull requests in TinyGo reflects a vibrant development community focused on enhancing both core functionalities and platform-specific features. The majority of recent PRs are concentrated on improving compatibility with various architectures such as MIPS and RISC-V while also addressing issues related to existing features like networking and system calls.
Architecture Support Enhancements: Many PRs focus on improving support for specific architectures (e.g., MIPS, RISC-V), which is critical given TinyGo's goal to operate efficiently across diverse hardware platforms.
Networking Improvements: A notable number of PRs are dedicated to enhancing networking capabilities within TinyGo, including reworking the net package and simplifying module initialization processes.
Compiler and Toolchain Updates: Several pull requests are aimed at updating or adding support for newer versions of LLVM or Go itself (e.g., LLVM 19), indicating an effort to keep up with advancements in the underlying technologies that TinyGo relies upon.
Testing and CI Enhancements: There is a strong emphasis on improving testing frameworks and CI processes to ensure that new changes do not introduce regressions or break existing functionality.
Documentation and Usability Improvements: Some PRs aim at refining documentation or enhancing usability features within the command-line interface, which is essential for developer experience.
While many PRs are actively being discussed and reviewed, there is a noticeable lack of recent merges compared to the number of open requests. This could be due to several factors:
The TinyGo project is experiencing robust activity with numerous contributions aimed at expanding its capabilities across various platforms while maintaining a focus on efficiency and usability. However, the high number of open pull requests coupled with limited merge activity suggests potential bottlenecks that could benefit from improved coordination among contributors and clearer prioritization of changes. Addressing these issues could enhance both developer productivity and project momentum moving forward.
Ayke (aykevl)
Ron Evans (deadprogram)
Damian Gryski (dgryski)
Dan Kegel (dkegel-fastly)
Unrud
Leongross
L. Pereira (lpereira)
ydnar (Randy Reddig)
Sago35
Overall, the TinyGo development team demonstrates a strong commitment to enhancing the project's capabilities while ensuring compatibility with evolving Go standards.