Commit graph

279 commits

Author SHA1 Message Date
Ozan HACIBEKİROĞLU
73b5e6256e
builtin splice (#254)
* added builtin splice

* fix splice

* remove splice negative index
2020-03-03 22:16:15 -08:00
Ozan HACIBEKİROĞLU
ac534053e8
builtin delete for maps and arrays (#250)
* added builtin delete function and unit tests

* added vm tests for builtin delete

* added doc for builtin delete

* update doc
2020-02-19 15:02:31 +01:00
geseq
6fb0df750b
updated goreleaser config (#249) 2020-02-16 06:29:06 +01:00
Ozan HACIBEKİROĞLU
0854675469
update vm to raise wrapped runtime errors (#247)
* update vm to raise wrapped runtime errors

special errors returned from custom builtin modules can be identified easily by wrapping and using errors package's Is() and As() method.

* added test for runtime errors
2020-02-16 04:46:53 +01:00
daniel
e01d7f485e
Update README.md 2020-01-19 16:16:30 -08:00
daniel
c60fc283b5
Update README.md 2019-12-29 14:01:17 -08:00
daniel
d5b24138d3
add go module v2 (#244) 2019-12-29 13:38:51 -08:00
daniel
a9a233a750
fix internal package issue (#241)
* fix internal package issue

* ExampleSimple -> Example
2019-12-24 07:42:30 -08:00
daniel
7cb058b564
fix go.sum (#238) 2019-12-20 11:51:04 -08:00
daniel
c88a5f506e
some code clean up (#237) 2019-12-20 11:40:38 -08:00
daniel
030b4b90ab
Update README.md 2019-12-20 10:25:16 -08:00
geseq
4cd9a2bcbc
fix #231 (#235) 2019-11-02 07:36:47 +01:00
geseq
388b3e73b0
Fixed goreleaser duplicate id error (#230) 2019-10-25 12:07:32 +02:00
geseq
50d0022f72
Added empty go.sum file for the release pipeline (#229) 2019-10-25 11:16:02 +02:00
geseq
93fbccd14d
Added Go mod hooks to goreleaser (#228) 2019-10-24 12:25:23 +02:00
Erwin Oegema
9b4ab96d31 Fix typo in 'immutable_array.go' (#212) 2019-10-24 10:19:24 +02:00
Kazushi Kitaya
ad3980e4d0 replace outdated ErrInvalidTypeConversion in docs/objects.md (#223) 2019-10-24 10:19:02 +02:00
Brandon Buck
c3e41c2588 Correct misattributed string() details (#222)
* Correct misattributed `string()` details
2019-10-24 10:18:38 +02:00
Ma_124
1ee7425c9d Stdlib encodings: hex, base64 (#216) (#221)
* stdlib/hex and stdlib/base64

* stdlib/hex and stdlib/base64: added docs
2019-08-09 13:36:45 -04:00
Jacob R. McCollum
2e74690f5e
fix go.mod to work with the travis ci build (#218)
* fix go.mod to work with the travis ci build

* fix issue with gimme and 1.12

* fix issue with gimme and 1.12 (#2)

* fix issue with gimme and 1.12 (#3)

* fix issue with gimme and 1.12 (#4)
2019-08-04 16:17:51 -04:00
Jacob R. McCollum
de63fbaa2c
Merge pull request #217 from d5/mod_support
Go module support via `go.mod`
2019-08-04 11:40:54 -04:00
Jacob McCollum
816f45231f go module support 2019-08-04 11:24:01 -04:00
earncef
0440786b8d Fixed missing ObjectPtr check in OpSetSelLocal (#194)
* fixes #193

* Cleanup
2019-04-25 21:32:42 -07:00
Jacob R. McCollum
adcf05d26f add variadic function parameters (#189)
* parsing variable function types

* finished variadic functions

* fix case where number of passed args to variadic function is 0

* remove extraneous OpVarArgs

* allow multiple variables in variadic function declaration

* fix IdentList string method to print multi-arg variadic functions correctly

* round 2 of fix IdentList string method to print multi-arg variadic functions correctly

round 2 of fix IdentList string method to print multi-arg variadic functions correctly

* clean up tasks in OpCall handling, add tests for variadic closures

* cleanup for pr

- add syntax documentation
- cleanup parseIdentList
- cleanup OpCall handling for functions and closures
- cleanup tests
2019-04-25 21:28:27 -07:00
Daniel
2e0ea3a4c1
update syntax documentation (#186)
* Update tutorial.md

* Update tutorial.md

* Update tutorial.md

* Update tutorial.md

* Update tutorial.md

add logical operators, assignment operators, increment operators

* wip

* wip

* update
2019-04-18 23:33:23 -07:00
earncef
19d2945e1e Used by badge (#188) 2019-04-15 09:30:34 -07:00
earncef
1ca10a7e3f Added formatting docs (#187) 2019-04-14 13:14:44 -07:00
earncef
b2df4f579c Custom formatter based on go's fmt package. (#185)
* Custom formatter based on go's fmt package.

* Cleanup

* Cleanup

* Added tengo.MaxStringLen check

* Cleanup
2019-04-13 11:29:50 -07:00
earncef
bb07fa15b7 text.trim, text.pad_left and text.pad_right (#183)
* Added trim, pad_left and pad_right to text

* Check MaxStringLen

* Added doc

* Fixed doc

* Moved length check
2019-04-11 00:23:30 -07:00
Daniel
719e269cb1
minor lint fixes (#182) 2019-04-10 21:39:19 -07:00
earncef
3eebecb2a4 Fix %v formatting (#181)
* Fix %v formatting

* Added Bytes

* Fixed tests.
2019-04-09 23:15:31 -07:00
earncef
09009d4040 Substring function (#180)
* Substring function

* substring -> substr
2019-04-08 23:32:39 -07:00
earncef
1a0c06b688 Made map IndexSet and IndexGet consistent. (#179) 2019-04-08 19:54:02 -07:00
earncef
8eabc23a45 Fixed runtime error when iterating over undefined. (#177) 2019-04-08 19:52:37 -07:00
earncef
0ae9a66e26 Fixed interoperability doc (#174) 2019-04-08 19:51:26 -07:00
Daniel
2cde0eaeea
json module faster implementation (#173)
* json module faster implementation

* add some decoding error test
2019-04-06 05:25:23 -07:00
Daniel
17a50b7c50
fix #171 (#172) 2019-04-01 08:02:11 -07:00
Daniel
8dc0d7b591
fix script timeout bug (#170)
* fix an edge case where script timeout is too short and set even before VM starts execution

* vm.StackObjects() -> v.IsStackEmpty()
2019-03-31 23:37:30 -07:00
Daniel
1ac4090452
update benchmark (#169) 2019-03-31 22:08:25 -07:00
Daniel
9b6c5e670a
fix a bug in dead code elimination (#168)
* fix a bug in dead code elimination

* add some tests
2019-03-31 12:20:10 -07:00
Daniel
2f86800724
'enum' module (#166)
* 1. adding more methods to enum module
2. added ModuleMap.AddMap()
3. added bytes iterator

* add builtin functions 'is_enumerable' and 'is_array_like'

* builtin function 'is_iterable'

* first iteration on 'enum' module

* fix 'is_iterable' builtin function
2019-03-27 01:27:59 -07:00
Daniel
b9c1c92d2d
Compiler optimization first iteration (#165)
* dead code elimination phase 1

* combine dead code elimination with return fix code

* remove last instruction tracking from compiler code (not needed)

* fix a symbol table block scope bug

* add some more tests
2019-03-24 02:23:38 -07:00
Daniel
01fe30f02a
bug fix for function return and if statement (#160)
* fix a bug where function return instruction is missing with if statement

* remove script cancel context test
2019-03-23 12:59:54 -07:00
Daniel
2b21c29bd3
update builtin function documentation (#159)
* Update builtins.md

* Update builtins.md

* Update builtins.md
2019-03-22 09:27:34 -07:00
Daniel
7e3f3f809e
update benchmark (#158) 2019-03-22 05:27:28 -07:00
earncef
09f3d52265 Opbinaryop and other minor optimizations (#157)
* OpBinaryOp for performance

* Cleanup

* Remove ip limit check in every iteration of the loop.

* Micro optimizations on frequent ops

* Micro optimizations

* Patches

* Removed redundant binaryop operators from compiler

* Merged OpReturn and OpReturnValue

* Cleanup
2019-03-22 04:42:34 -07:00
Daniel
7095b5678b
add ModuleMap.Remove() (#155) 2019-03-20 10:11:14 -07:00
Daniel
3c30109cd0
fix bytecode encoding/decoding of builtin modules (#154)
* fix bytecode encoding/decoding of builtin modules

* Bytecode.Decode() to take map[string]objects.Importable

* add objects.ModuleMap

* update docs

* stdlib.GetModuleMap()
2019-03-20 01:28:40 -07:00
Daniel
e785e38bf8
fix bytecode encoding/decoding (#152)
* register ImmutableMap type to gob

* fix bytecode decoding

* disallow empty module name
2019-03-19 09:43:03 -07:00
Daniel
2520caf581
update README (#151)
* Update README.md

* Update README.md
2019-03-18 22:42:50 -07:00