tengo v2.6.2 Release Notes

Release Date: 2020-09-18 // about 3 years ago

Previous changes from v2.6.1

  • 🔄 Changelog

    2f86800 'enum' module (#166)
    📚 9e73f40 1. Added documentation on operators. 2. Add (char)-(int) operators
    ⚡️ 0e9c523 1. fix bytecode compile bug 2. update CLI
    🚚 029a3c1 1. remove some stdmod functions for the latest Go version 2. add .travis.yml
    90aafc8 Add 'is_function' and 'is_callable' builtin functions
    c1899f3 Add gpython to benchmark result
    🚀 93fbccd Added Go mod hooks to goreleaser (#228)
    e94b3da Added builtin function from_json
    c4e6e61 Added builtin function to_json
    65f84ec Added conversion functions: objectToInterface
    🚀 50d0022 Added empty go.sum file for the release pipeline (#229)
    📄 1ca10a7 Added formatting docs (#187)
    🖨 ebddfd1 Added println (#144)
    0️⃣ a747c98 Builtin converts now take default values
    a8d838a Compile can take custom stdlibs
    b9c1c92 Compiler optimization first iteration (#165)
    fae8500 Convert returns second argument Object as it self in case of failure of conversion of first argument
    c3e41c2 Correct misattributed string() details (#222)
    fbbec88 Create LICENSE
    📦 b2df4f5 Custom formatter based on go's fmt package. (#185)
    c437def Decoupled stdlib from vm, script and compiler (#126)
    8171d58 Error Object (#4)
    3eebecb Fix %v formatting (#181)
    cb1c8a4 Fix a bug for 'for' loop without condition: "for {}" (#100)
    c57a7f8 Fix a bug where len() builtin does not take immutable array
    9c21c8a Fix a bug where user modules couldn't resolve builtin functions
    fc4e358 Fix a closure-block scope bug (#99)
    5713eb6 Fix a slicing expression bug: allow low-index == len(a)
    👕 b79fd4f Fix lint issues (#2)
    e668901 Fix nested file imports (#282)
    eda0495 Fix several module-related issues
    9b4ab96 Fix typo in 'immutable_array.go' (#212)
    40ad7aa Fix undefined value compatibility
    🚀 388b3e7 Fixed goreleaser duplicate id error (#230)
    🛠 0ae9a66 Fixed interoperability doc (#174)
    🛠 0440786 Fixed missing ObjectPtr check in OpSetSelLocal (#194)
    📜 6ec360c Fixed panic when bailout is triggered in parser.ParseFile() (#113)
    🛠 8eabc23 Fixed runtime error when iterating over undefined. (#177)
    🛠 9c67444 Fixes a REPL bug (Issue #91) (#92)
    3500c68 Improvements on compiler/VM error reporting (filename:line:col)
    5e21abf IndexGet of Array, Index, ImmutableIndex, Bytes, String, Undefined
    0c5e80b Limit the maximum size of string/bytes values (#121)
    1a0c06b Made map IndexSet and IndexGet consistent. (#179)
    🔀 fa294d9 Merge pull request #14 from mdbazuin/feature/7-type-conversion-defaults
    🔀 bf79922 Merge pull request #18 from d5/d5-patch-1
    🔀 a95fbbd Merge pull request #20 from d5/d5-patch-1
    🔀 d55b667 Merge pull request #21 from 0xflotus/patch-1
    🔀 de63fba Merge pull request #217 from d5/mod_support
    🔀 47418fd Merge pull request #23 from d5/gover
    🔀 0016872 Merge pull request #25 from d5/scriptctx
    🔀 cb4b468 Merge pull request #27 from d5/d5-patch-1
    🔀 a32ef0a Merge pull request #28 from saromanov/fix-deprecated-values
    🔀 6a5e4f7 Merge pull request #29 from mdbazuin/feature/encoding-json
    🔀 a562964 Merge pull request #30 from d5/indexable
    🔀 c7ae181 Merge pull request #32 from d5/d5-patch-1
    🔀 4fd8836 Merge pull request #35 from d5/iterable
    🔀 c816b70 Merge pull request #36 from d5/doc
    🔀 1acaf33 Merge pull request #40 from d5/d5-patch-1
    🔀 1315489 Merge pull request #41 from d5/sandbox
    🔀 a1bd73f Merge pull request #43 from d5/printf
    🔀 5e2187d Merge pull request #48 from d5/immutable
    🔀 c0bb733 Merge pull request #52 from d5/jsondoc
    🔀 93917a4 Merge pull request #53 from d5/condexpr
    🔀 0f1fe9b Merge pull request #54 from d5/d5-patch-1
    🔀 481d79c Merge pull request #55 from Chyroc/feat-builtin-function-type
    🔀 fdc52a0 Merge pull request #58 from d5/stringstime
    🔀 f7b0cd8 Merge pull request #62 from d5/v1prep
    🔀 61e534e Merge pull request #64 from d5/scriptmodule
    🔀 6420628 Merge pull request #70 from d5/fix69
    🔀 0d99cca Merge pull request #72 from d5/compiledset
    🔀 4f222b1 Merge pull request #73 from d5/charop
    🔀 d90f286 Merge pull request #74 from d5/iarrlen
    🔀 edfb765 Merge pull request #76 from d5/is_function
    🔀 a9224a3 Merge pull request #81 from ripienaar/80
    🔀 e81380b Merge pull request #85 from ripienaar/84
    🔀 9782d87 Merge pull request #86 from d5/ostestfix
    🔀 f482de6 Merge pull request #9 from d5/osmod
    3f55a6b Modules (#5)
    🚚 d8c83b6 Moved interfaceToObject from scripts/conversion.go to objects/conversion.go as FromInterface
    09f3d52 Opbinaryop and other minor optimizations (#157)
    7970a35 README (#1)
    🔨 052ae59 Refactored duplicate REPL code (#145)
    🚚 880a281 Remove a link (standalone language) from README
    🐎 5d8457a Removed double indirection for massive performance gains (#140)
    🐎 46884c7 Removed redundant code in the VM with no performance loss. (#132)
    3b53bc4 Revert "remove callable args alloc (#259)" (#260)
    6dd573c Runtime error trace format (#111)
    46c7190 Script.AddModule() to take *Script not *Compiled
    7cc683e SetBuiltinFunctions and SetBuiltinModules (#120)
    f265f17 Stack trace for errors (#108)
    1ee7425 Stdlib encodings: hex, base64 (#216) (#221)
    39112d2 String keys allowed for map definitions. (#118)
    09009d4 Substring function (#180)
    ⚡️ d688d71 Update README.md
    ⚡️ adbbf41 Update README.md
    ⚡️ c60fc28 Update README.md
    ⚡️ 22e1e35 Update README.md
    ⚡️ f145261 Update README.md
    ⚡️ 131afe7 Update README.md
    ⚡️ 1c92fff Update README.md
    ⚡️ f97ab7f Update README.md
    ⚡️ ab5289e Update README.md
    ⚡️ ddd9fa8 Update README.md
    ⚡️ 0318d95 Update README.md
    ⚡️ 9b0dcf4 Update README.md
    ⚡️ bf934d0 Update README.md
    ⚡️ 8027f96 Update README.md
    ⚡️ 3a9d293 Update README.md
    ⚡️ 2caa4d1 Update README.md
    ⚡️ 5fa340c Update README.md
    ⚡️ bbed48e Update README.md
    ⚡️ 5c713fe Update README.md
    ⚡️ dec1301 Update README.md
    ⚡️ cc2b0e5 Update README.md
    ⚡️ 66fbb50 Update README.md
    ⚡️ 5ab5db0 Update README.md
    ⚡️ 030b4b9 Update README.md
    ⚡️ e01d7f4 Update README.md
    ⚡️ 76a5c59 Update README.md
    ⚡️ 75e9e17 Update README.md
    ⚡️ 5b449b3 Update README.md
    ⚡️ f4f70ba Update README.md (#270)
    📚 4f46460 Update documentation for compiled scripts
    ⚡️ 44248b8 Update interoperability.md
    ⚡️ 85d90f6 Update objects.md
    ⚡️ a373584 Updated docs for SetBuiltinFunctions and SetBuiltinModules (#131)
    19d2945 Used by badge (#188)
    👍 cb5cbad len builtin supports map and module map
    5164d1d add 'exec' module
    🖨 37016f4 add 'printf' and 'sprintf' builtin functions
    2b517f3 add 'rand' module (#90)
    a9a9380 add 'times' module
    bbc76a0 add 'to_json' and 'from_json' to builtin documentation
    9ccc6dd add Bytecode.FormatInstructions and Bytecode.FormatConstants (#95)
    6bc2cbe add CircleCI config
    👯 b7977a4 add Compiled.Clone to make them safe for concurrent execution (#134)
    d08a636 add GitHub Actions (#293)
    1045afd add Indexable / IndexAssignable interface
    2486457 add Iterable interface
    🚚 7095b56 add ModuleMap.Remove() (#155)
    88ba20d add Script.DisableBuiltinFunction, Script.DisableStdModule, Script.SetUserModuleLoader functions
    8e56bd8 add Script.Run() method
    378bf51 add Time type; add is_array, is_immutable_array, is_map, is_immutable_map, is_time, time builtin function
    bff5900 add Variable.Error() function
    d1f7baf add Variable.IsUndefined()
    b203f09 add Yaegi to benchmark (#271)
    6a663c6 add script.Compiled.Set function so compiled script can replace value of global variables
    46707f6 add a sample
    5383c89 add another version of fibonacci to bench
    🏗 57700ac add build status to README
    7289d76 add compile-run to "tengo" tool
    04bb0f5 add context to script run
    🚚 2a144dc add docs directory and move some documents from Wiki
    📚 8a27848 add documentation comment on Object and Callable interface
    📚 49b2b5f add documentation for text module
    📚 06573e5 add documentation for times module
    📚 264f15f add documentation on scanner and parser.
    5292251 add equality tests
    c4d9500 add example
    d5b2413 add go module v2 (#244)
    0b11e7d add goja to benchmark
    🚀 760bc44 add goreleaser deploy to travis
    306055a add helper functions for builtin functions and builtin modules (#122)
    d8b50ef add interoperability example (#266)
    7f9fa83 add missing comment
    📦 53ce129 add module-import tests to most of runtime package (#125)
    9b1a0a3 add more comments
    309b03b add more strings functions to text module
    344c96d add objects tests
    b638f0d add objects.Callable
    8cad048 add os File functions; add Bytes type
    06c7e7d add os.readfile()
    69961de add os.stat() and file.stat()
    👍 5037994 add shebang support (#274)
    44c55ea add some more os module functions, add more built-int functions
    f752601 add strconv functions
    👍 366c699 add string comparison support (#294)
    b83eac8 add test for for-in compiler
    dab4986 add tests for Object.BinaryOp
    94b0d52 add tests for script custom objects
    adcf05d add variadic function parameters (#189)
    19498da adding immutable value (incomplete)
    54bea46 bench outputs expected result
    01fe30f bug fix for function return and if statement (#160)
    ac53405 builtin delete for maps and arrays (#250)
    73b5e62 builtin splice (#254)
    306fe1b clean up stdlib code
    7e88e10 combine REPL and tengo tool
    4ed7576 enable relative imports (#285)
    d413d2f feat: add builtin function: type
    17a50b7 fix #171 (#172)
    4cd9a2b fix #231 (#235)
    806ddeb fix CLI version command
    📜 8e5657d fix CharLit parser bug
    5c5d0e6 fix CircleCI setup
    1921d90 fix scipt.Variable.Value() bug (#139)
    8707fd6 fix to_json builtin function bug (#138)
    d1dd014 fix a bug in bytecode optimization code (#292)
    9b6c5e6 fix a bug in dead code elimination (#168)
    967ed03 fix a bug in tail-call optimization code
    50d0ba7 fix a compiler bug with dead code optimization (#284)
    e785e38 fix bytecode encoding/decoding (#152)
    3c30109 fix bytecode encoding/decoding of builtin modules (#154)
    814851a fix compile errors
    e059953 fix for in loop symbols (#290)
    🏗 2e74690 fix go.mod to work with the travis ci build (#218)
    7cb058b fix go.sum (#238)
    👕 e1e0e0c fix golint, ineffectassign issues and add some more tests
    📦 a9a233a fix internal package issue (#241)
    15494e1 fix local symbol resolution bug (#316)
    👕 a053476 fix markdownlint warnings (#255)
    📜 c2305f3 fix parsing and equality bug of "undefined"
    8dc0d7b fix script timeout bug (#170)
    3d7269c fix stdlib json string encoding (#272)
    011833b fix test fail
    e909415 fix travis setup
    b555842 fix typo in objects doc (#256)
    🛠 92c0ad3 fixed extensible
    85da0cd force using TrueValue, FalseValue, UndefinedValue
    046efa4 global size changed to 1024
    👍 816f452 go module support
    85001be implement immutable array and map
    a14f6ec incomplete implementation of 'os' module
    2c3282d initial commit
    928a728 initial version of "tengo" CLI tool
    👕 ff725f3 install golint in travis
    2cde0ea json module faster implementation (#173)
    e93f6f6 limit max object allocations (#129)
    4b370e8 minor change in bench code
    a9f9ba4 minor cleanups for 'os' module tests
    ⚡️ 68cd38e minor doc update
    👕 719e269 minor lint fixes (#182)
    2de0fa4 minor tengo tool help change
    ⚡️ 581aa57 minor update in bench output
    ⚡️ 080e272 minor update in repl output message
    🔨 61890b1 module refactor (#148)
    📦 53af0d6 move file and fileset to source package
    b5108b8 os Process functions
    👀 c087ba8 os: use SeekStart, SeekCurrent and SeekEnd instead deprecated values
    📜 69eb7da parser implementation for conditional expression
    🚚 5816186 parser.ParseFile removed (#117)
    ca128af reduce number of memory allocation in object binary operators
    4fac7b4 register immutable array to gob
    🚚 1cf3258 remove
    🚚 81fdf10 remove 'mode_irregular' from 'os' module
    🚚 2ceaf3b remove CircleCI
    🚚 b802132 remove VM.Stack() function
    🚚 b75bda7 remove callable args alloc (#259)
    🚚 d581cb2 remove unnecessary JMP when there's no ELSE block
    🚚 32df286 remove unnecessary function calls in VM
    🚚 64d9980 remove unused code for tuple value return
    🚚 061d800 removed 'case', 'default', 'switch', 'var' keywords
    📄 ad3980e replace outdated ErrInvalidTypeConversion in docs/objects.md (#223)
    b4a2da8 runtime/vm_builtin_test.go: Added builtin bytes convert test
    880ee04 script.Add accepts a CallableFunc value (#124)
    552e9c0 separate objects conversion functions
    c88a5f5 some code clean up (#237)
    47da30b some more tests in objects
    🐎 336fbc3 some performance optimization in VM
    575d969 split iterator files
    7834251 spread last call argument v2 (#302)
    b2a2934 tail call optimization
    cae7b24 ternary conditional expression implementation
    69a703b text module: regex functions (re_match, re_find, re_split, re_replace)
    bb07fa1 text.trim, text.pad_left and text.pad_right (#183)
    60c95c5 token.CHAR -> token.Char, token.STRING -> token.String
    ⚡️ de70f7c trying to optimize VM by cutting some repeated codes
    ce7e5cc type conversion builtin functions: string(), int(), bool(), float(), char()
    📚 b19d9de update CLI documentation
    ⚡️ b3d4854 update README
    ⚡️ 586a92f update README
    ⚡️ 4b8bd4e update README
    ⚡️ 48847c1 update README
    ⚡️ 2520caf update README (#151)
    ⚡️ a81295c update README, remove some unnecessary code
    ⚡️ d954348 update bench fibonacci tail call code
    ⚡️ c628152 update benchmark
    ⚡️ 7e3f3f8 update benchmark (#158)
    ⚡️ 1ac4090 update benchmark (#169)
    ⚡️ 17329aa update benchmark result with v1.15.0 (#141)
    ⚡️ 797e3ca update benchmark results
    📚 2b21c29 update builtin function documentation (#159)
    ⚡️ 27438ee update directory package structure
    ⚡️ fa215b0 update docs
    📚 950cb79 update documentation
    📚 bb9f375 update documentation
    📚 a9aa8dc update documentation
    ⚡️ a9eaf06 update interop sandbox document
    ⚡️ e445fd0 update interoperability
    ⚡️ fa6699f update readme
    ⚡️ cce71f0 update script package
    📚 2e0ea3a update syntax documentation (#186)
    ⚡️ dc16c9a update tests for index/slice operators
    ⚡️ 0854675 update vm to raise wrapped runtime errors (#247)
    🚀 6fb0df7 updated goreleaser config (#249)
    ⚡️ 591d745 updating documents for stdlib
    d4757ef use 'strconv.Quote()` instead of string formatter
    88dd022 use atomic.Load/Store to avoid data race
    d870ebf variable definition (operator ":=") is now required not optional
    🚧 edc23cf working on script modules (WIP)