Ayke van Laethem
16cdffc367
Try to interpret simple function calls in init() functions
...
This is useful for example for globals like these:
import "errors"
var MyError = errors.New("mymodule: something went wrong!")
2018-08-30 05:53:22 +02:00
Ayke van Laethem
a5252d07f0
Support zero-initialized pointers in globals
2018-08-30 05:38:27 +02:00
Ayke van Laethem
5edf94ea10
Fix named structs inside global named structs
2018-08-30 05:36:44 +02:00
Ayke van Laethem
7956ca2f29
Function pointers in global variables
2018-08-30 05:36:09 +02:00
Ayke van Laethem
0b372ba5bd
Support initialized map values in another global
2018-08-30 02:32:35 +02:00
Ayke van Laethem
25344bc08f
Reorder Program.interpret cases
2018-08-30 02:09:02 +02:00
Ayke van Laethem
75477eb14e
Implement global .data-initalized interfaces
2018-08-30 02:08:00 +02:00
Ayke van Laethem
9f2bcfe5e3
Implement global interface variable constant
2018-08-25 02:58:00 +02:00
Ayke van Laethem
c25b448758
Rewrite init() interpretation to a real interpreter
...
Instead of mostly heuristics, actually execute the init() instruction in
an interpreter to calculate initializers for globals. This is far more
flexible and extensible, and gives the option of extending the
interpreter to other code and make it a partial evaluator.
2018-08-25 02:07:01 +02:00