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.8.11

Published by traefiker over 4 years ago

Changelog

a15ecb7 feature: handle nested recursion
2f2df7a fix: avoid memory errors by handling frame indirections (#739)
4058fd8 fix: do type check on assignment (#738)
d4aa84f fix: set frame level in destination nodes to avoid memory corruption (#733)
1f514e6 fix: switch always compare like types
097a745 fix: variadic interface conversion in call/callBin

yaegi - v0.8.10

Published by traefiker over 4 years ago

Changelog

9977ef6 Revert "fix: make interpreter methods discoverable by runtime (#722)" (#732)
55f2fe3 fix: goexports skisp unimplemented solaris Syscall6 (#726)
39430c3 fix: untyped constant converson to default type (#729)
4f3481b interp: support another vendoring case

yaegi - v0.8.8

Published by traefiker over 4 years ago

Changelog

d252821 feature: constant values in bin packages
1fe91be feature: refactor numeric constants and detect overflow
2bef03e fix: import non-existant package
6486909 fix: range over channels returned by binary calls
5cbbf93 fix: type assertion of non-matching types

yaegi - v0.8.7

Published by traefiker over 4 years ago

Changelog

184623d Fix import source symbol package
74479d7 Travis: apply timeout multiplier on CI
5d78c8a fix: compose recursion
151a856 fix: composite literal child types for call expressions
8365f68 fix: composite map assign (#683)
82b499a fix: detect default comm clause in select from AST (#678)
def57d5 fix: dont assign receiver on indexExpr
c1f5005 fix: finish support of type assertions which was incomplete (#657)
eb25c84 fix: handle call ellipsis
3c88542 fix: handle empty interface conversion
d5217f7 fix: handle nil interface conversion
f1cff30 fix: handle printf changing nil type
2de0c80 fix: handle range on chan function return
56d88ef fix: nil recover case
0ef7f8f fix: perform send channel action for select (#665)
01e4cde fix: recursive struct function call
36836cd fix: return correct package name for parsed package (#679)
6f87805 interp: detect local redeclaration (#673)
5d56bac interp: extend dot debugging

yaegi - v0.8.6

Published by traefiker over 4 years ago

Changelog

bb1be9e add repl input bounds check (#638)
4f8e1de fix: check the number of argument passed and returned to functions
6f4643f fix: compute numeral constant on typed objects
4f39eaf fix: correct iterator in map range on binary values (#644)
4a068ea fix: hande empty clause in switch if statement (#635)
8605c23 fix: use interface wrappers to expose interface values to runtime (#643)

yaegi - v0.8.5

Published by traefiker over 4 years ago

Changelog

7eac695 feature: pre-import used packages in REPL mode.
cdf4622 fix: assign an element in a map from runtime
7fab75f fix: correct assign from function returning an interface value (#625)
b9720d1 fix: improve setting results in multiple output functions

yaegi - v0.8.4

Published by traefiker over 4 years ago

Changelog

f6c8b8b fix: check that a function returns the correct number of values
7070367 fix: handle constant declarations inside function scopes
01e2e46 fix: handle default comm clause in select
92eebba fix: handle function output value assigned to interface var
22dfc8b fix: handle set of variadic arg list for a ... value
de8cb7d fix: handle type conversion from pre-compiled types.
7fba3fe fix: improve generation of interface wrapper
1feece6 fix: improve handling of function return values
a6389ac fix: improve handling of nil
7d56fb0 fix: improve setting of interface objects
ff36ec5 fix: improve switch and type switch statement processing
e4acba0 fix: improving handling of functions returning interfaces
18b8436 fix: parsing of recursive interface types
e12c8b7 fix: store the result of a bin function call in frame

yaegi - v0.8.3

Published by traefiker over 4 years ago

Changelog

56925e6 fix: correct branch control flow graph for parenthesis expressions (#583)
3ed4ec3 fix: correct type assertion for bin func types (#588)
5e142fd fix: do not attempt to copy data in empty frame at func call
94d44e7 fix: do not convert literal float to int at parse
71f730b fix: handle forward declaration for aliased type
7b2d91b fix: handling values in map of interfaces

yaegi - v0.8.2

Published by traefiker over 4 years ago

Changelog

29e1777 fix: assign composite literal by reference
988f0c9 fix: better handling of recursive types and forward declarations
b20ad3a fix: checks that value implements a binary type in type assert
50a34fd fix: correct control flow graph for select blocks
c580dfd fix: correct handling of interface types in composite literals
b0053c8 fix: incomplete type analysis
465cb57 fix: lookup embededded field on struct pointer
3e76267 fix: method search on struct pointer in interface wrapper
12942b5 fix: remove ambiguities in recursive type processing

yaegi - v0.8.1

Published by traefiker over 4 years ago

Changelog

daaeac6 fix: convert literal nil to interface types
e78650d fix: correct branch action in parenthesis expression
7327ff2 fix: correct comparison of interface type to nil
4995654 fix: correct control flow graph for constant conditional statements
ebde09b fix: correct control flow graph for switch statement
0a99eb4 fix: do not pass twice the receiver in deferred method calls
b52dd8c fix: substitute recursive struct type by interface{} in function arguments

yaegi - v0.8.0

Published by traefiker over 4 years ago

Changelog

d29b0a4 Add option "-e"
94e0b58 Update stdlib for go1.14
953b122 fix: avoid infinite recursion in genFunctionWrapper()
1ae2649 fix: correct control flow graph for defer statements
6e33f89 fix: correct control flow graph for some switch statements
0ace924 fix: correctly init variables from index expressions
d8bdc66 fix: detect field names in struct pointer
c7c1bea fix: do not attempt to store data in _ var
78bbcda fix: do not overwrite input for assign operators
cfb7344 fix: handle interface values in map and arrays
2edd18a fix: handle use of functions in struct fields
27520f6 fix: re-apply GTA until all global types/constants are defined
ca68c6c fix: resolve embedded method on pointer types
9b07e73 fix: resolve receiver for binary methods on non interface types
3548c87 interp: weaken panics to errors and return panicked values

yaegi - v0.7.6

Published by traefiker over 4 years ago

Changelog

902af47 fix: correct behavior for rune and byte types
0596031 fix: correct type inference in composite literal init
1b971b5 fix: correctly handle arbitrary type of literal array index
681f2f9 fix: correctly handle constant init for further type declarations
7037424 fix: correctly store boolean result for branching operations
812e55b fix: handle conversion of nil to an interface type
6c339ce fix: handle method declaration with forward declared type

yaegi - v0.7.5

Published by traefiker over 4 years ago

Changelog

b057ada Add an example of yaegi in a shebang line
6d90c5a Case sensitivity fix
712891d fix: allow reuse of _ symbol in the same scope
23dfef0 fix: define a correct zero value for an not initialized interface{}
137b165 fix: handle binary methods where receiver is implicit
92a63db fix: handle out of order type declaration for global var declaration
4fd6a2d fix: handle recursive type definition involving a map object
e434892 fix: import different source packages with same base name

yaegi - v0.7.4

Published by traefiker almost 5 years ago

Changelog

5381ee6 fix: continue statement was not applied correctly

yaegi - v0.7.3

Published by traefiker almost 5 years ago

Changelog

878fcc8 fix: add support for ^ and + as unary operators
f1cde2b fix: apply automatic type conversion to constant expressions (#484)
a1f2d3b fix: isNil was not forwarding result when used in a branch expression
9a8a88d fix: use branch operation in || and && operators, fix storage for ! (#476)

yaegi - v0.7.2

Published by traefiker almost 5 years ago

Changelog

3cd3764 fix: correct isValueUntyped() to handle typed constants
e1ac83f fix: correct type extraction for returned value
7a0c09f fix: detect untyped values when importing from binary packages
4f93be7 fix: emulate struct by interface{} only for recursive struct types

yaegi - v0.7.1

Published by traefiker almost 5 years ago

Changelog

1ff1a50 fix: add method checks for interface types
0d2c39d fix: implicit import package name was not correctly generated
273df8a fix: improve interface type checks using method sets
488e491 fix: improve type switch clause with assign
275391c fix: struct type detection, collision between field and type name

yaegi - v0.7.0

Published by traefiker almost 5 years ago

Changelog

1cf327b Drop go1.11
e193d95 feat: update syscall for go1.12.12
0b4dcbf feature: add support for custom build tags
de5a6e1 feature: rename exported func Repl into REPL
c5ec5e4 fix: assign a literal composite to an interface object
1568687 fix: assign binary func to func type var
ac504a2 fix: assign untyped value to typed var may require type conversion
a6eceba fix: automatic conversion of untyped literal float to int
9f1f312 fix: automatic type conversion when returning untyped value
7d19108 fix: compute type of slice expression globally
e506969 fix: correct handling of dynamic type for interface values
eef5915 fix: detect non boolean condition for IF and FOR statements
7164a23 fix: do not hide receiver type for method with anonymous receiver
4f95c27 fix: generate closures for literal functions in CFG
75a696a fix: goexports performs correct conversion on float32 constants
56bec97 fix: handle index expression on binary string type
786ea36 fix: handle nil function closure
d44e4af fix: handle selector expression in type switch
08a37fc fix: handle type assertion from literal interface type
3969ab1 fix: improve handling of untyped complex numbers
773147e fix: properly align atomic counters
714253c interp: add eval cancelation by semaphore
4bf4aee interp: fix map range handling
398b0e0 interp: use io.Reader and io.Writer for REPL parameters

yaegi - v0.6.2

Published by traefiker about 5 years ago

Changelog

2c2b471 fix: goexports to convert value type only for untyped constants
4792386 interp: fix array size assignment type inference
bb2921b interp: fix range expression handling

yaegi - v0.6.1

Published by traefiker about 5 years ago

Changelog

9abaeeb fix: binary method lookup works for struct field pointer receiver
03596da fix: correct automatic type conversion for untyped constants
35e645c fix: correct handling of types alias of interfaces
effd64c fix: handle forward declaration of alias type
0f46cd5 fix: handle type declaration inside function
8a88a1a fix: range over string iterates on runes instead of bytes
030dd3c fix: support variadic parameters on methods
8db7a81 interp: don't panic for undefined types