yaegi
yaegi copied to clipboard
Yaegi is Another Elegant Go Interpreter
### The following traefik plugin `sample.go` triggers an unexpected result ```go package plugin import( amqp "github.com/rabbitmq/amqp091-go" ) ``` ### Expected result ```console I expect the traefik plugin will load ```...
### Proposal Support generic package. Is it possible? ### Background It would be nice to use this famous generic package "github.com/samber/lo" ### Workarounds I find that `yaegi` doesn't support generic...
### The following program `sample.go` triggers an unexpected result ```go $ go test -vet=off -v -p 4 -timeout 1h github.com/traefik/yaegi github.com/traefik/yaegi/cmd/yaegi github.com/traefik/yaegi/extract github.com/traefik/yaegi/internal/unsafe2 github.com/traefik/yaegi/interp github.com/traefik/yaegi/stdlib github.com/traefik/yaegi/stdlib/syscall github.com/traefik/yaegi/stdlib/unrestricted github.com/traefik/yaegi/stdlib/unsafe ``` ###...
### The following program `sample.go` triggers an unexpected result ```go package main import ( "fmt" "net/http" "reflect" ) type responseWriter struct { http.ResponseWriter } func (w *responseWriter) Flush() { fmt.Println("Flushing...")...
Now Eval() and EvalPath() recover from internal panic and return it as error with call stacks. This fixes the case where user code calls os.Exit(1), which is converted to panic()...
### The following program `sample.go` triggers an unexpected result ```go package main const ( A = Enum(iota) B C ) type Enum int func main() { println(A, B, C) }...
### The following program `sample.go` triggers an unexpected result ```go package main import ( "encoding/json" ) type BitFlag uint8 const ( A BitFlag = 1
### The following program `sample.go` triggers an unexpected result ```go package main import ( "fmt" "github.com/coreos/go-oidc/v3/oidc" ) type config struct { provider *oidc.Provider } func main() { conf := config{}...
### The following program `sample.go` triggers an unexpected result ```go package main import ( "context" ) func main() { checkImpl(context) } func checkImpl(ctx context.Context) { // intentionally left blank }...
### The following program `sample.go` triggers an unexpected result ```go package main import ( "fmt" "github.com/traefik/yaegi/interp" "github.com/traefik/yaegi/stdlib" ) var funcs = ` package main import "fmt" func AppendSlice() { type...