Anton Medvedev and GitHub
fee5690347
Refactor checker to use Nature ( #665 )
...
This PR introduces a new concept inside Expr's type checker - Nature.
It's an abstraction other reflect.Type which carries additional information about possible type, methods and builtin function.
I was able to find and fix a few bugs in type checker and optimizer. Implementation of nature concept has proven itself. As well nature will allow to bring more feature for type checker in future.
Why Nature? I was looking for a name to replace Type. Type name already carries much information, as well can be confused with reflect.Type. Nature name should be understood as "nature of the node", same as "type of the node".
2024-06-01 00:09:22 +02:00
Anton Medvedev
8589d34039
Add sum([]) optimization
2024-04-13 23:16:08 +02:00
Anton Medvedev
27b20607f1
Add sum(map()) optimization
2024-04-13 22:50:11 +02:00
Sergey and GitHub
2835692a5f
Optimize boolean operations between all, any, none functions ( #626 )
2024-04-12 18:49:41 +02:00
Anton Medvedev and GitHub
3205e4186b
Revert "Optimize boolean operations between all, any, one, none functions ( #555 )" ( #625 )
...
This reverts commit 8037acf0bb .
2024-04-10 10:58:17 +02:00
Sergey and GitHub
8037acf0bb
Optimize boolean operations between all, any, one, none functions ( #555 )
2024-02-11 22:23:48 +01:00
Anton Medvedev
811a16b4fa
Remove const range optimization
2023-12-22 22:49:31 +01:00
Anton Medvedev
551d2a7e0f
Use expr-lang/expr
2023-12-03 21:53:01 +01:00
Anton Medvedev
46929e4646
Add map(filter()) optimization
2023-08-24 11:15:43 +02:00
Anton Medvedev
166d8b8ce9
Add filter()[-1] optimization
2023-08-24 11:15:43 +02:00
Anton Medvedev
8c52bd6d8b
Add filter()[0] optimization
2023-08-24 11:15:43 +02:00
Anton Medvedev
22b3d6bf74
Add len(filter()) optimization
2023-08-24 11:15:43 +02:00
Anton Medvedev
00d167a791
Move code duplicate to conf package
2022-11-10 21:21:38 +01:00
Anton Medvedev
31ed24b493
Fix compiler fold optimization of "integer divide by zero"
2020-09-09 22:07:26 +02:00
Anton Medvedev
5e0ef67844
Use ast.Patch func
2020-03-16 16:29:25 +03:00
Anton Medvedev
e5049dfda3
Make conf top-level package
2020-03-16 16:29:25 +03:00
Anton Medvedev and GitHub
acba548cab
Add ConstExpr
2020-03-10 08:36:12 +03:00
Anton Medvedev and GitHub
2836d109c5
Add memory budget
2020-03-02 13:43:39 +03:00
Anton Medvedev
0809f2c91b
Refactor to use new parser
2020-02-25 09:33:17 +03:00
Anton Medvedev
e2f2207d81
goimports
2019-07-02 14:34:48 +03:00
Anton Medvedev
3a506d7a3c
Fix optimizer for in []int
2019-06-27 12:06:15 +03:00
Anton Medvedev
4c32accdba
Fix optimizer for in array
2019-06-26 15:12:36 +03:00
Anton Medvedev
37a0db14ff
Make optimized program unmarshalable
2019-06-26 11:21:45 +03:00
Anton Medvedev
83979d9691
Add in array optimization
2019-06-26 10:35:59 +03:00
Anton Medvedev
82236d001f
Improve constant folding algorithm
2019-06-26 10:17:39 +03:00
Anton Medvedev
c9cc2b9ca4
Copy type and location on patch
2019-06-25 18:25:24 +03:00
Anton Medvedev
02ca6fbf39
Add more optimizations
2019-06-25 16:25:14 +03:00
Anton Medvedev
f718200b06
Add var in a..b optimization
2019-06-25 16:03:27 +03:00
Anton Medvedev
4547b362d9
Add constant folding optimization
2019-06-25 15:42:57 +03:00