yaegi

Yaegi is Another Elegant Go Interpreter

APACHE-2.0 License

Downloads
5
Stars
6.7K
Committers
39

Bot releases are visible (Hide)

yaegi - v0.16.1 Latest Release

Published by traefiker 7 months ago

Changelog

  • 3fbebb3 fix: avoid memory leak in closure
  • 2c92a7c fix: do not panic when assigning to _ (blank) var.
yaegi - v0.16.0

Published by traefiker 8 months ago

Changelog

  • 8de3add extract: escape ~ in package names
  • 0a5b16c feat: support go1.22
  • 6447a67 fix(src): use errors.Is(err, fs.ErrNotExist)
  • da27c4f interp: Add wasip1 to known OS list
  • f5b5481 interp: Record function names in panic
  • d124954 interp: fix computation of array size from constant expression
  • c10e468 interp: fix fieldName method parsing embedded + generic fields
  • 79b7420 interp: fix issue where a var is reused instead of redefined
  • 68a430f interp: fix support of type assert expressions in the global scope
  • d6ad13a interp: improve handling of embedded fields with binary methods
  • dc7c64b interp: improve support of unsafe
  • f4a9cd3 stdlib: remove embed wrapper
  • 1990b96 update to go1.21 (#1598)
yaegi - v0.15.1

Published by traefiker over 1 year ago

Changelog

  • ce2bb79 interp: fix equality when nil is used as the left argument of ==
  • f202764 cli: disable race detector if GOFLAGS contains -buildmode=pie
  • 166fff7 interp: add safeguards when searching for vendor root.
  • 20c8f5e interp: correctly init variables assigned from function call
  • 9d65860 interp: fix type assertion issues
  • c4a297c interp: fix use of function as field of a recursive struct.
  • 8efc4f0 interp: improve handling of methods defined on interfaces

What's Changed

New Contributors

Full Changelog: https://github.com/traefik/yaegi/compare/v0.15.0...v0.15.1

yaegi - v0.15.0

Published by traefiker over 1 year ago

Changelog

  • 97cf8c4 Expose package name of a compiled source
  • eee72d1 Fix deadlock after parsing directory with no files
  • 9b4ea62 Fix gorountine arguments not copied.
  • 1679870 Suppress http.ErrAbortHandler panics, as in the stdlib
  • f3dbce9 interp: improve handling of generic types
  • 6aa4f45 interp: wrap source functions when used as input parameters.
  • 0e3ea57 update to go1.20
yaegi - v0.14.3

Published by traefiker almost 2 years ago

Changelog

  • b8301f1 interp: add missing conversion for non integer array dimension
  • 6b8c94e interp: check that send operate on channel value
  • 9f43170 interp: error instead of panic when assigning to a constant
  • 7865c90 interp: fix case behavior for values converted to empty interface
  • 2e88083 interp: fix default comm clause in select
  • dfeddbe interp: fix handling generic types with multiple type parameters
  • 4a80936 interp: fix handling interface in operators
  • 7bb8b46 interp: fix processing of aliased types
  • 71112db interp: fix return of untyped values for defined types
  • e4e3d11 interp: fix the logic to skip source files based on OS or CPU arch
  • 143e4a4 interp: fix type assertion for wrapped empty interface
  • e003140 interp: improve internal handling of functions
  • 0218249 interp: improve type assertions
  • a5242cb interp: retry type definition if an array size is undefined
yaegi - v0.14.2

Published by traefiker about 2 years ago

Changelog

  • 79747f3 interp: fix redeclarations containing a blank variable
  • b2aa636 interp: fix spurious variable declaration loop
  • 03ccda1 interp: fix type switch on arbitrary expressions
  • 63825e7 interp: fix use of interfaces in composite types
  • e026215 interp: improve handling of composed interfaces wrappers
  • ab869c8 interp: improve method resolution for embedded interfaces
yaegi - v0.14.1

Published by traefiker about 2 years ago

Changelog

  • ae725fb interp: fix generic check on nil function
yaegi - v0.14.0

Published by traefiker about 2 years ago

Changelog

  • 14bc3b5 interp: add support of Go generics in interpreter
  • 255b1cf interp: do not allow function declaration without body
  • d9c402e interp: fix unit testing for go1.18
  • 09a1617 interp: improve support of alias types
  • cb642c4 interp: improve type checking when comparing aliased types
  • dc082b5 stdlib: support of go1.18 and go1.19, remove go1.16 and go1.17
yaegi - v0.13.0

Published by traefiker over 2 years ago

Changelog

  • 6c74ab7 interp: allow conversions of untyped complex
  • a61a7d5 interp: avoid panic when defining a label in incremental parsing mode
  • 996b1e3 interp: catch mismatched types for other comparisons
  • eaeb445 interp: create interpreter interface value with new
  • 259f64c interp: fix redeclaration of an interface variable
  • f76db27 interp: fix resolution of methods on aliased types
  • 236a0ef interp: improve the behaviour of interface{} function parameters
  • 6933ba2 interp: improve type checking for defined types
yaegi - v0.12.0

Published by traefiker over 2 years ago

Changelog

  • 1cf9d34 Ignore private methods for binary types during type assertion
  • ad9db37 interp: add a function to get globals (#1387)
  • 4e77fc9 interp: delete incomplete type on pkg import
  • f74d1ea interp: detect invalid uses of _ as value
  • 7be17d3 interp: expose fset to fix CompileAST issue
  • 2248851 interp: fix creation of binary composite types (#1391)
  • 25edcfe interp: fix handling of empty interfaces in map index expressions
  • 606b4c3 interp: fix import of binary type symbols in current scope (#1380)
  • 5665c9a interp: fix redeclaration scope issue
  • 4ed9ccb interp: fix retrieving the string value of an interface
  • 00e3f92 interp: fix the behaviour of goto, continue and break (#1392)
  • 0703926 interp: implements detection of packages with no Go files
  • d183f42 interp: improve handling of empty interface values (#1393)
  • d64563e interp: improve handling values and comparisons in interfaces
  • 821e9ee interp: recover interpreter internal panics in EvalWithContext
yaegi - v0.11.3

Published by traefiker over 2 years ago

Changelog

  • c93b836 Prevent variadic arguments from being wrapped as function
  • 8bd7afb interp: fix handling of redeclaration in multi-assign expression (#1367)
  • 8ea3a49 interp: fix interface conversion from binary call (#1366)
  • f2abd34 interp: fix passing binary function as parameter
  • 371103f interp: fix switch expression (#1370)
  • f07f25f interp: handle struct with multiple recursive fields (#1372)
  • 14acf61 interp: improve type switch on binary interfaces
  • c784713 interp: make methods passed as value preserve receiver
yaegi - v0.11.2

Published by traefiker almost 3 years ago

Changelog

  • 2819b41 interp: fix derivation of type of slice expression of binary object
  • 8323068 interp: fix nested calls with variadic interfaces
  • fbee2ba interp: fix wrapping of returned closure passed to runtime
  • 2af660c interp: improve method resolution on embedded fields
yaegi - v0.11.1

Published by traefiker almost 3 years ago

Changelog

  • dd7197f interp: fix assign of multiple return function call
  • 5b62f9f interp: fix setting of interface value from nested function calls
  • 4f66e3f interp: fix type switch when the case type is an interpreted interface
  • da03c92 interp: get rid of deprecated stdlib package ioutil
  • 9620116 interp: replace value.Type().Kind() by value.Kind()
  • 1335b4c stdlib: add wrappers for go/build/constraint package
yaegi - v0.11.0

Published by traefiker almost 3 years ago

Changelog

b1a758d extract: add an option to be able to set build tag to the created file
808f0bd interp: add a function to directly compile Go AST
7617b8a interp: add args option to let each interpreter have seperate args
836060c interp: allow GTA revisit for unresolved define statements
348e713 interp: avoid collision between type and variable names in assign
afa46da interp: fix assignment to a dereferenced struct pointer
c847481 interp: fix comparison operators in if statement
f46ef67 interp: fix computation of ellipsis array length
aa7f084 interp: fix goto to a label with no statement
98c2dcd interp: fix interface wrapper for struct types
9214806 interp: fix populating array of interfaces
5bf4dae interp: fix type check of methods with a receiver of interface kind
cb81fe4 interp: fix type processing to support multiple recursive fields
4e06abe interp: fix unsafe2 to work on 32 bits architectures
229ddfd interp: fix use of builtins in type definitions
84424b5 interp: handle alias of an alias
286d6c6 interp: handle recursive and incomplete seen types in nodeType
e56db3b interp: improve interface wrappers when used by reflect
d3bbe01 interp: improve support of composed interfaces
c5c6012 interp: support type spec assign
a876bb3 interp: virtualize environment in restricted mode
3c00da2 stdlib: add wrappers for standard lib runtime/metrics package

yaegi - v0.10.0

Published by traefiker about 3 years ago

Changelog

91a55cc interp: add debug interface
b5bf4ef interp: allow for reading source files from diverse filesystems
da922ce interp: build type strings on the fly
05f08d7 interp: complete type constructors
4af992b interp: create real recursive types with unsafe type swapping
b591ba0 interp: do not export RealFS, used internally only
e7c0f68 interp: fix Clone documentation
d2b25a7 interp: fix append with 1 argument
d2569a8 interp: fix default types for runes
3eb2c79 interp: fix nil funcs in composite literals
45d569c interp: fix parsing of late binding consts
b7f9a39 interp: fix support of 32 bits and big-endian arch
5af51ae interp: fix type selector precedence
c33caeb interp: improve handling of wrapped interface values
bd9a6a4 interp: improve processing of recursive types
772cd68 interp: make use of type constructors
4653d87 interp: types should not recover data for aliases
a69b9bc stdlib: support go1.17 unsafe functions

yaegi - v0.9.23

Published by traefiker about 3 years ago

Changelog

b84278d stdlib: remove wrapper of runtime/cgo

yaegi - v0.9.21

Published by traefiker over 3 years ago

Changelog

c7fcfa8 interp: fix interface wrapper generation

yaegi - v0.9.20

Published by traefiker over 3 years ago

Changelog

bd2cb06 Update README.md
fc97079 interp: add support of interface wrappers to type assertions
538182e interp: fix append of values to an array of interface objects
f6d0cf9 interp: fix array declaration with a typed constant size
c503855 interp: fix handling of interface value in forwarding return calls
78d7e85 interp: fix method resolution on pointer to binary values
13d554a interp: fix receiver for exported method objects
4fcf90e interp: fix swap assign with extra operation
25b570d interp: fix the detection of builtin calls during parsing
77acfb4 interp: fix type checking of address of multi dimension array
297b40d interp: improve field and method resolution in presence of collisions.

yaegi - v0.9.19

Published by traefiker over 3 years ago

Changelog

2a0d29a Add a newline after src in wrapInMain
3d1a210 Avoid unnecessary calls to FieldByIndex
25c2a43 Correctly resolve type aliases when building array literals
3659401 Fix handling of ImportUsed packages
1df5dc2 Update Interpreter.Use API
b19afbf interp: avoid panic in output value generation for recursive types
93e2db7 interp: fix a wrong control flow in switch
db955e6 interp: fix append a slice on binary slice
8f9eccd interp: fix assign of function values with binary methods
b1ef925 interp: fix detection of binary types implementing interfaces
dd03989 interp: fix handing nil when appending to a slice
a6762d5 interp: fix use of unrestricted symbols
ab44c38 interp: handle binary array literals
e32b2ab interp: improve handling of interface values
b2a11ea interp: preserve concrete type when converting type to interface

yaegi - v0.9.18

Published by traefiker over 3 years ago

Changelog

cdc6b77 interp: add ImportUsed method to pre-import compiled packages
0ba64fc interp: add example to show use of Self
33a532e interp: fix a bug when assigning to an empty interface
c4174a7 interp: fix assign of function call with implicit type assert.
847cd7e interp: fix calling of variadic binary methods
e29de04 interp: fix constant types from imported packages
bcb8546 interp: fix goto label by not overwriting destination
c86436a interp: fix litteral map containing binary functions
29e912e interp: fix method lookup on pointers to binary types
d16bd4b interp: fix package name extraction from import path
2f9fe70 interp: fix relative import path detection on MS-Windows
befa5a2 interp: fix return of function call involving a type conversion
45c7b80 interp: fix special range on string
17d5f18 interp: fix support of interpreted functions in map values
5f8be70 interp: fix type string extraction for wrapped constants
5530eca interp: give a self to the interpreter
fbf897b interp: improve type check of binary methods
4788775 interp: improve type checking for "+" operator
c694551 interp: sandbox to preserve type of os.Stdin os.Stdout and os.Stderr
c8d9e25 stdlib: add wrapper for testing/fstest package in go1.16