Commit Graph

319 Commits

Author SHA1 Message Date
Marc Vertes
8c9fd32cfd Improve execution of graph of closures 2018-10-01 16:42:15 +02:00
Marc Vertes
e8685fffa2 WIP accelerate execution of builtins 2018-09-28 14:53:30 +02:00
Marc Vertes
335373164f get rid of sleep() 2018-09-27 14:00:41 +02:00
Marc Vertes
7d58f10ee8 [WIP] generation of closures to execute node builtins 2018-09-27 13:44:43 +02:00
Marc Vertes
a44987452c [WIP] generation of closures to execute node builtins 2018-09-27 10:49:35 +02:00
Marc Vertes
a506592409 [WIP] generation of closures to execute node builtins 2018-09-27 10:07:46 +02:00
Marc Vertes
187100a5c3 get rid of callGoRoutine, goroutine handled by call generator 2018-09-26 17:24:42 +02:00
Marc Vertes
d5a390f0fe [WIP] generation of closures to execute node builtins 2018-09-26 16:48:29 +02:00
Marc Vertes
bb220fe143 Fix getIndexSeq() generator 2018-09-26 15:18:52 +02:00
Marc Vertes
973fedab6b [WIP] generation of closures to execute node builtins 2018-09-26 15:11:56 +02:00
Marc Vertes
ec5651400d [WIP] generation of closures to return node values 2018-09-25 18:59:12 +02:00
Marc Vertes
3b49892d2c [WIP] generation of closures to return node values 2018-09-25 18:25:07 +02:00
Marc Vertes
e82a223541 Introduce gobal type analysis step. Add several tests for out of order. 2018-09-19 18:34:56 +02:00
Marc Vertes
83f3967327 Fix nodes with unresolved symbols due to out of order parsing 2018-09-15 15:23:15 +02:00
Marc Vertes
a3259293cb Fix arg setting in callBin(). Assign Unset type to nil 2018-09-14 15:49:04 +02:00
Marc Vertes
adbcd2ec2d Fix regressions in variables assignments 2018-09-11 19:28:08 +02:00
Marc Vertes
ca8fd19ebb fix reflect.Value paramereter passing to some binary functions 2018-09-06 18:42:01 +02:00
Marc Vertes
a5cf1ab720 Fix handling of nil values with binary functions 2018-09-05 09:53:58 +02:00
Marc Vertes
433c737c11 add value to nil comparison functions 2018-09-04 14:48:48 +02:00
Marc Vertes
044d59367d Fix bin type convert, following bin representation changes 2018-08-30 11:13:09 +02:00
Marc Vertes
c280611fb4 Fix call expressions involving functions from stdlib, update to go-1.11 2018-08-29 14:35:44 +02:00
Marc Vertes
25adc35a3c Change representation of stdlib from interface{} to reflect.Value
This fixes problems due to storing binary symbols as interfaces{}
instead of concrete type, which confuses lookup functions to retrieve
methods etc. in reflect.
2018-08-28 03:12:28 +02:00
Marc Vertes
27a50ad249 Fix init of arrays of arbitrary types (in progress) 2018-08-23 15:12:40 +02:00
Marc Vertes
9c9121822d Fix global symbols resolution, empty array declaration 2018-08-22 15:40:43 +02:00
Marc Vertes
afa3545bb2 add preliminary support to panic() 2018-08-20 13:53:29 +02:00
Marc Vertes
006e96a9eb Fix memory management in case of multiple source files
Do not depend on order or location when parsing for global and symbols:
a global symbol can be used before being defined, use and definition
can be in different files.
2018-08-16 19:22:18 +02:00
Marc Vertes
f42055b7d0 Improve handling of types, symbols, builtins and predefined objects
The resolution of types, builtins, constants, is now performed
through scopes only, instead of multiple unrelated data structures.

The initialization of predefined types, constants and builtins is
now done in the global scope (universe block).
2018-07-26 05:45:45 +02:00
Marc Vertes
567985f0cf Improve handling of out of order declarations 2018-07-24 16:32:08 +02:00
Marc Vertes
915d976d12 Improve creation of local vars. Change handling package state and metadata (in progress) 2018-07-20 10:19:31 +02:00
Marc Vertes
119b5bc40c Fix invocation of closure from runtime 2018-07-10 16:46:03 +02:00
Marc Vertes
c753054159 Fix type conversion for runtime wrapped functions 2018-07-09 17:20:25 +02:00
Marc Vertes
0a6954caac Improve type conversion and bin methods resolution 2018-07-09 11:33:09 +02:00
Marc Vertes
8ab3c06e5a Fix handling of closures 2018-07-05 18:57:53 +02:00
Marc Vertes
6277727660 Add support for negate expressions 2018-07-03 16:14:41 +02:00
Marc Vertes
824d65abc4 Add support for type conversion (in progress) 2018-06-29 17:51:48 +02:00
Marc Vertes
77c015fcb8 Handle type assertions (first attempt) 2018-06-27 14:59:23 +02:00
Marc Vertes
a062e34ba8 Fix map check expression 2018-06-26 18:27:14 +02:00
Marc Vertes
deb1c0136c Add support to variadic functions 2018-06-21 12:39:50 +02:00
Marc Vertes
75146ed4fc Fix method receivers handling 2018-06-20 17:30:14 +02:00
Marc Vertes
41bfcfbfb0 minor code cleaning 2018-06-20 10:57:39 +02:00
Marc Vertes
cf0ee1e75c Fix assign outside of local scope. Support append (1 item only) 2018-06-20 10:03:20 +02:00
Marc Vertes
71c4ec10b2 Improve type handling, simplify arrays 2018-06-19 16:40:24 +02:00
Marc Vertes
9d1fe83dcd Add support for slice expressions 2018-06-14 00:00:31 +02:00
Marc Vertes
b4c6624f3c Do not export private AST node fields 2018-06-13 15:42:01 +02:00
Marc Vertes
912a37be7b Add support to import source packages 2018-06-07 12:03:18 +02:00
Marc Vertes
cceaf1b832 Fix invocation of runtime interface methods (preliminary attempt) 2018-06-05 15:18:33 +02:00
Marc Vertes
9fd9ec44ff Allow direct call of runtime functions passed as argument to script 2018-05-30 13:33:32 +02:00
Marc Vertes
f9805e21f7 Fix reflection type conversion for exports. Sample plugin example. 2018-05-30 09:13:02 +02:00
Marc Vertes
755f53ceae Fix handling methods on runtime struct fields 2018-05-29 22:28:18 +02:00
Marc Vertes
19856117f6 Fix regression on exported functions 2018-05-28 17:42:24 +02:00