All notable changes to this fork will be documented in this file.
This project is a maintained fork of traefik/yaegi.
v0.17.0 - 2026-02-22
- Module path changed from
github.com/traefik/yaegitogithub.com/GoCodeAlone/yaegi- Update your imports accordingly
- Minimum Go version raised to Go 1.26
- Generic function imports (upstream PR #1647): Import generic functions from extracted Go code as interpreted code using
//yaegi:addcomment directive. Generic code is wrapped inGenericFuncstring type for runtime interpretation. - Extract speedup (upstream PR #1642): 11-45x performance improvement for
yaegi extractby switching fromgo/importertogolang.org/x/tools/go/packageswith caching support. - Extract outer arg (upstream PR #1638): New
Outerfield onExtractorstruct to support generating import code outside the standard stdlib path. - Extract underscore params (upstream PR #1708):
yaegi extractnow correctly handles underscore parameter names in interfaces, generating proper wrapper code. - Eval/EvalPath panic recovery (upstream PR #1560):
Eval()andEvalPath()now recover from internal panics and return them asPanicerrors with call stacks, preventing interpreted code from crashing the host process.
- Binary channel type alias nil pointer (GoCodeAlone): Fixed nil pointer dereference when sending to a channel that is a type alias defined in a binary package. The
sendfunction now uses theelem()method which correctly handles both source-defined channels and binary type aliases. - Re-import of identical package (upstream PR #1551): Fixed false "redeclared in this block" errors when the same binary package is imported across multiple source files during multi-pass type analysis.
- Binary-to-source interface conversion (upstream PR #1562): Fixed interface type assertion between binary and source interfaces, allowing proper conversion when interfaces are defined in both compiled and interpreted code.
- Nil type error masking (GoCodeAlone): Generic type constraint nil type check no longer masks more specific error messages (e.g., "non-constant array bound" errors are now properly reported).
- Generic type constraint crash (upstream PR #1647): Fixed nil type crash when using generic type constraint interfaces, returning a descriptive error instead of panicking.
- isGeneric nil guard (upstream PR #1647): Added nil safety check in
isGeneric()to prevent panics when checking function type nodes.
- Upgraded
golang.org/x/toolsfrom v0.22.0 to v0.42.0 - Upgraded
golang.org/x/modfrom v0.18.0 to v0.33.0 - Upgraded
golang.org/x/syncfrom v0.7.0 to v0.19.0 - Applied
go fixmodernization (144 fixes across 16 files) - Applied
go fmtformatting updates
| PR | Title | Author |
|---|---|---|
| #1551 | Fix re-import of identical package | @he11olx |
| #1560 | Recover in Eval and EvalPath | @Bai-Yingjie |
| #1562 | Fix bin interface to src interface conversion | @laushunyu |
| #1638 | Add outer arg for extract command | @ludanfeng |
| #1642 | Use x/tools/go/packages for extract speedup | @kkoreilly |
| #1647 | Import generic functions from extracted code | @rcoreilly |
| #1708 | Extract: support underscore params | @nelsam |