aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils/ucode
Commit message (Collapse)AuthorAgeFilesLines
* ucode: update to latest Git HEADJo-Philipp Wich2023-11-021-3/+3
| | | | | | | | | | | cfb24ea build: avoid redefining _FORTIFY_SOURCE 448c763 lib: enforce consistent `index()` behavior with empty needle argument cdc0203 nl80211: fix maybe uninitialized variable a69b5c8 vm: fix unused result warning ea046bd build: enable source fortification by default Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit 262554f12cbcc4e3bea2440ce1e696ce8791e732)
* ucode: fix build on macosFelix Fietkau2023-11-021-1/+11
| | | | | | | | Remove ABI version, since its format is not accepted by the linker. Enable rpath to avoid clash with system libraries Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry picked from commit 5eb8a21ba5fe5e87c03f0361d1db989189be9c6d)
* ucode: update to latest Git HEADJo-Philipp Wich2023-11-021-145/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Introduces signal handling facilities - Fixes potentially incorrect object equality tests - Introduces debug library - Introduces log library - ABI version bump due to changed VM structure layout - Revised packaging Changelog: 07c0317 jsdoc: switch to own custom theme 6ca08b0 jsdoc: properly handle indented documentation blocks 2a67f22 lib: add/improve documentation for require(), loadfile(), loadstring() 9993ccb uci: fix potential memory leaks in `configs()` f56394f ci: re-trigger workflows on pull request pushes 1c18993 lib: various documentation fixes d25dcb1 uci: add module documentation 4a8ece2 docs: use CSS and local JavaScript fixups to improve formatting 8f21cfa lib: introduce log library 8a3aefe build: auto-enable module depending on present libraries 6a01adc build: convert CMakeLists.txt into lowercase 8700665 ci: don't skip pull request workflows for `master` branch 0184d23 include: fix execvpe compat function on macOS 8b23884 uloop: rename environ variable to avoid clashing with system macro on macOS 7c209d7 types: ensure double serializatiion with decimal places d150425 rtnl: update the link attr TODOs d394174 rtnl: add IFLA_TARGET_NETNSID for operating in other namespaces 1227733 lib: fix documented return value for `splice()` c9982de docs: add struct module documentation 7dde493 docs: add missing headline to debug module documentation 8f852ea types: improve comparison reliability of binary strings 6940c28 lib: introduce debug library be07107 treewide: consolidate platform specific code in platform.c 2593270 uloop: interrupt on VM signals 97a5292 lib: add `signal()` stdlib function 1dbbb6a main: enable signal dispatching in the standalone cli interpreter 1623245 types: treat signal handler array as GC root 29b1c0d vm: introduce basic signal handling infrastructure 093684d fs: explicitly compare isatty() result 4f4f38f types: don't rely on implicit type conversion in ucv_compare() 4bee0ef docs: disable GitHub Jekyll post processing 5efb7a0 docs: further rework 33bc7bf docs: fix markup quirks 9d5e420 docs: add information about memory management and operator precedence f1190ef docs: various improvements f0cc841 fs: use `fseeko()` and `ftello()` cba0c3c fs: complete function documentation coverage f9260f7 github: drop superfluous CNAME file c85bc74 Create CNAME 5309294 lib: add JSDoc documentation b0f2f90 fs: add JSDoc documentation fe086da math: add JSDoc documentation 70f9348 docs: add initial JSDoc infrastructure 24f1a56 source: fix source offset accounting 9df9160 lexer: don't count EOF token as newline b9d8f06 ci: switch to official openwrt/gh-action-sdk Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit eacc885816fb46bf4054b0c3dd2cd1513322ad09)
* ucode: update to the latest versionFelix Fietkau2023-09-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | 9986b839595d ci: unbreak failing builds by using fixed gh-actions-openwrt-ci-sdk 77c961e20eda ci: fix broken imx6-generic SDK build 86107a647cb0 ci: cancel concurrent builds ed543d8bf481 ci: update the workflows 11d5f8840002 Merge pull request #151 from ynezz/ynezz/unbreak-ci b934ce815ff2 program: fix memory leak in read_sourceinfo b0baf043e64c Merge pull request #152 from Ansuel/fix-memory-leak 740e2501fdca main: add user specified library search paths before default path 15f1a669e8e2 struct: remove state->len 29edb011caf1 ubus: add support for strings containing null bytes 2b4346bfdc67 vm: clear vm->alloc_refs in uc_gc_common b213bd120d55 Merge pull request #150 from nbd168/misc-improvements 66520ebe27ae vm: immediately release arguments on calls with invalid spreads 07cc72a77e3b README.md: fix debian dependencies d048ea88fe71 compiler: fix memory leak in uc_compiler_compile_import on early exit 7b7e22dcdf02 Merge pull request #155 from luizluca/luizluca-patch-1 d656d150905e types: implement ucv_object_sort() d72eebeb168b lib: support object ordering in `uc_sort()` ed1f0133c870 nl80211: add constants for iftypes 3ffb046c59a6 Merge pull request #156 from nbd168/nl80211-iftypes c7d84aae0969 Merge pull request #153 from jow-/lib-sort-object-support Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry picked from commit 9419a50242f81b73bae2b1105c0e370385682ad1)
* ucode: update to the latest versionTianling Shen2023-05-181-3/+3
| | | | | | | | | 8f78aff2cb68 ubus: support multiple call return values 51f4dba67313 ucode: also link libresolv if ns_initparse() is not found 5c7d07773a59 uci: fix ctx.commit() without arguments 5163867269fc Merge pull request #148 from jow-/uci-fix-commit Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
* ucode: update to the latest versionFelix Fietkau2023-02-141-4/+4
| | | | | | | | | | | | | | 08c709c58187 rtnl: add support for registering an uloop based listener 599a7fb59380 Merge pull request #140 from nbd168/rtnl c4125c516e0a nl80211: fix NL80211_ATTR_SURVEY_INFO c43bb9d8fe8d Merge pull request #141 from dhewg/master c1342d934b2d nl80211: add missing ucv_get() calls 9022b270683a rtnl: add missing ucv_get() calls 837cffec5a5c Merge pull request #142 from nbd168/ref-fixes 65b1f181e642 rtnl: add missing uc_vm_registry_set call ab2f3f70257d Merge pull request #143 from nbd168/rtnl-fix Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ucode: update to the latest versionFelix Fietkau2023-01-291-4/+4
| | | | | | | | | | | 1c8df08824ef style: add .editorconfig file ec167d39b803 nl80211: refactor command bitmask handling 6704ec0d5b29 nl80211: add support for registering an uloop based listener 48a6eac1da15 fs: implement `fs.pipe()` f1be0d725735 types: fix array unshift operations and add test coverage 941d14837faf Merge pull request #138 from nbd168/nl80211 Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ucode: move to the lang submenuAndre Heider2023-01-281-5/+9
| | | | | | | Just as lua or the various languages from the package feed. libucode is the exception, so move it to the libs menu instead. Signed-off-by: Andre Heider <a.heider@gmail.com>
* ucode: update to latest Git HEADBrian Norris2023-01-211-3/+3
| | | | | | | | | | | | | To bring in isatty() support. Includes new commits: be30472bfdbb fs: add `isatty()` function 0a58d510529e nl80211: add support for NL80211_ATTR_MPATH_INFO Signed-off-by: Brian Norris <computersforpeace@gmail.com> [ remove additional merge commit ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ucode: update to the latest versionFelix Fietkau2023-01-091-3/+3
| | | | | | | | | 34cfbb922c96 README.md: various spelling and documentation fixes ff32355ea645 build: make rtnl/nl80211 depend on linux instead of !APPLE c0e413c21f7b include: add uc_fn_thisval() 1e4d20932646 Merge pull request #134 from nbd168/thisval Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ucode: update to latest Git HEADJo-Philipp Wich2022-12-061-3/+3
| | | | | | | | | | | | | | | | | 46d93c9 tests: fixup testcases 4c654df types: adjust double printing format eac2add compiler: fix bytecode for logical assignments of properties 3903b18 fs: add `realpath()` function 8366102 math: add isnan() function eef83d3 tests: relax sleep() test 394e901 lib: uc_json(): accept trailing whitespace when parsing strings 1867c8b uloop: terminate parent uloop in task child processes d2cc003 uci: auto-load package in `ctx.foreach()` and `ctx.get_first()` 6c5ee53 compiler: ensure that arrow functions with block bodies return no value fdc9b6a compiler: fix `??=`, `||=` and `&&=` logical assignment semantics 88dcca7 add cmake to install requires for debian Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-10-181-3/+3
| | | | | | | 00af065 fs: expose `getdelim()` functionality through `fd.read()` 21ace5e lexer: fixes for regex literal parsing Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-10-151-3/+3
| | | | | | | | | | | | | | | 4ae7072 fs: use `getline()` for line wise read operations 21ace5e lexer: fixes for regex literal parsing 00965fa lib: implement slice() function 76d396d main: implement print mode 7bbba78 compiler: optimize function return opcode generation a45f2a3 lexer: improve regex literal handling d64d5d6 vm: maintain export symbol tables per program f4b4ded uloop: task: gracefully handle absent output callback a58fe47 ubus: hold reference to underlying connection until deferred is concluded e23b58a lib: uc_system(): retry waitpid() on EINTR Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-09-161-3/+3
| | | | | | | | | | | cc4eb79 ubus: support obtaining numeric error code 01c412c ubus: add toplevel constants for ubus status codes 8e240fa ubus: allow object method call handlers to return a numeric status code 5cdddd3 lib: add limit support to split() and replace() 0ba9c3e fs: add optional third permission argument to fs.open() c1f7b3b lib: remove fixed capture group limit in match() and regex replace() Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* update: update to latest Git HEADJo-Philipp Wich2022-08-301-3/+3
| | | | | | | 344fa9e lib: extend render() to support function values 89452b2 lib: improve getenv() and split() implementations Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-08-241-4/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bcdd2cb examples: add module search path initialization and freeing ee1946f ubus: fix GCC strncpy() truncation warning 131d99c lib: introduce three new functions call(), loadstring() and loadfile() 8e8dae0 lib: introduce helper function for indenting error messages 476f02b lib: simplify include_path() d84b53a source: avoid null pointer access in uc_source_runpath_set() c43a54f types: gracefully handle unpatched upvalues in ucv_free() e2fb11a README.md: document gc() function b41cb2d main: introduce -g flag to allow enabling periodic gc from cli 85d7885 lib: implement gc() 47528f0 vm: support automatic periodic GC runs 381cc75 types: treat vm->exports as GC roots fcc49e6 compiler: add import statement support for dynamic extensions c9442f1 vm: introduce new I_DYNLOAD opcode b6fd8a2 lib: internally expose new uc_require_library() helper a486adc vm: don't treat offset 0 special for exceptions 41ccd19 compiler: don't treat offset 0 special at syntax errors b4a3f68 compiler: improve formatting of nested syntax error messages 5d5dadc program: remove now unused uc_program_export_lookup() 304995b compiler: rework export index allocation 506cc37 compiler: fix deriving module path from source runpath 54b7fac compiler: enforce stricter module compilation rules d62e372 vm: don't initialize upvalues for module functions b856602 program: add serialization and deserialization for module function flag d7d1bde compiler: add a flag denoting module functions 156d584 treewide: unexport libucode internal functions 10e056d compiler: add support for import/export statements 862e49d compiler: resolve predeclared upvalues 78dfb08 compiler: require a name in function declarations afd78c1 compiler: fix reported source position in inc/dec operator error e1c3db0 tests: run_tests.sh: substitute dynamic test directory path in output 3c168b5 vm, cli: move search path into global configuration structure d85bc71 vm: introduce import and export opcodes 365782e vm: honor constant flag of objects and arrays 6becc64 vm: transparently resolve upvalue references 3418967 vm: gracefully handle unresolved upvalues 50cf572 program: add function to globally lookup exported name c441f65 program: add infrastructure to handle multiple sources per program 2322468 program: fix reporting source position of first instruction 9c9a9ec program: fix en/decoding debuginfo upvalue slots in precompiled bytecode 41114a0 source: add tracking of exported symbols 70ae304 lib: honor constant flag of arrays 3c104f5 types: resolve upvalue references on stringification 3a6f9cb types: add ability to mark array and object values as constant b738f3a lexer: recognize module related keywords 03c8e4b lexer: rewrite token scanner fd433aa lexer: fix parsing with disabled block left stripping 557577a rtnl: fix parsing/creation of IFLA_AF_SPEC RTA for the AF_BRIDGE family 35c6b73 compiler: fix stack mismatch on continue statements nested in switches f673096 uloop: end uloop on exceptions in managed code 2e5426c ubus: end uloop on exceptions in managed code c024270 rtnl: expose IFLA_STATS64 contents d3c58c0 rtnl: expose ifinfomsg.ifi_change member c4dde50 rtnl: update NETLINK_GET_STRICT_CHK socket flag with every request 7ef0d02 nl80211: fix NL80211_SURVEY_INFO_NOISE datatype 9a2e592 compiler: fix stack mismatch on nonmatching switch statements with locals 03c8ca5 nl80211: recognize further NL80211_STA_INFO_* NLAs a1ed566 struct: add optional offset argument to `unpack()` 230e595 rtnl: fix segmentation fault on parsing linkinfo RTA without data 523566d rtnl: zero request message headers 56be30d rtnl: fix premature netlink reply receive abort 1347440 rtnl: avoid stray "netlink: %d bytes leftover after parsing attributes." 44b0a3b struct: fix packing `*` format after other repeated formats Also package uloop binding module which has been introduced by a previous ucode update and introduce a host build with the basic set of modules. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-06-011-3/+3
| | | | | | | | d996047 syntax: adjust number literal parsing and string to number conversion 9efbe18 lib: refactor `uc_int()` Fixes: #9923 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-05-311-3/+3
| | | | | | | da3f089 lib: rework uc_index() implementation 559029e ci: make jobs faster during pull request testing Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-05-201-3/+3
| | | | | | | | | 081871e compiler: fix segmentation fault on compiling unexpected unary expressions 090b426 fs: avoid input buffering with small limits in fs.readfile() 8da140f lib: introduce hexenc() and hexdec() 9a72423 Update README.md Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: reorder BuildPackage callsJo-Philipp Wich2022-04-281-1/+1
| | | | | | | | | Ensure that the libucode recipe is processed before the ucode one in order to reliably encode the ABI version into ucode's libucode dependency. Fixes: #9788 Ref: https://forum.openwrt.org/t/fw4-wont-start-after-upgrade/126308 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: fix PKG_MIRROR_HASHJo-Philipp Wich2022-04-221-1/+1
| | | | | Fixes: 0400774a10 ("ucode: update to latest Git HEAD") Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-04-221-3/+3
| | | | | | | e14b099 syntax: implement support for ES6 template literals 111cf06 vm: stop executing bytecode on return of nested calls Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-04-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 33f1e0b treewide: move json-c compat shims into internal header file e0e9431 vm: move unhandled exception reporting out of `uc_vm_execute_chunk()` 2b59140 vm: fix callframe double free on unhanded exceptions 7d7e950 main: abort when failing to load a preload library 1032a67 lib: let `json()` accept input objects implementing `read()` method 5ee68d5 fs: implement `fs.readfile()` and `fs.writefile()` df6b861 ci: debian: change path before attempting to invoke Git operations dfaf05a ci: debian: automatically update changelog from Git tag 34f3c45 ci: fix YAML syntax of Debian workflow e956bcf fs: fix off-by-one in fs.dirname() function 6fc4b6c .gitignore: fix overmatching patterns, blacklist cram .venv 7c2e082 build: remove legacy json-c check 77942af build: add polyfills for older libjson-c versions 0b4aaa3 CI: build Debian package f404285 debian: Add package definition a37f654 types: fix escape sequence encoding of high byte values in JSON strings aae5312 Update README.md 8134e25 build: fix symlink install target 87c7296 treewide: replace some leftover "utpl" occurrences, update .gitignore 7d27ad5 build: only stage ucc symlink if compile support is enabled 171402f lib: add date and time related functions 8b5dc60 lib: provide API function to obtain stdlib function implementations eb0d2f1 main: turn ucode into multicall executable 28ee7e1 uloop: add support for tasks 753dea9 CI: build on macOS 668c5c0 lib: add argument position support (`%m$`) to `sprintf()` and `printf()` ab46fdf treewide: remove legacy json-c include directives b8f49b1 tests: 21_regex_literals: generalize syntax error test case fd2e5e7 tests: 16_sort: fix logic flaw exposed on OS X 2c71bf2 tests: run_tests.sh: pass dummy value to `-T` flag 55c4a90 lib: disallow zero padding for %s formats 0d05cb5 tests: run_tests.sh: use greadlink if available 271e520 resolv: make OS X compatible d13c320 fs: avoid Linux specific sys/sysmacros.h include on OS X 33397a3 uloop: use execvp() on OS X bafdc8f lib: add naive sigtimedwait() stub for OS X ada1585 build: consolidate CMakeLists.txt and cover OS X deviations befbb69 include: add OS X compatible endian.h header 49838a8 include: rename include guards to avoid clashes with system headers 91f65de nl80211: add missing attributes and correct some attribute flags b4a1fd5 lib: adjust require(), render() and include() raw mode semantics 4618807 main: rework CLI frontend 73dcd78 lib: fix potential integer underflow on empty render output c402551 vm: fix crash on object literals with non-string computed properties efe8a02 syntax: support add new operators 078d686 ubus: add event support 6c66c83 ubus: refactor error and argument handling 1cb04f9 ubus: add object publishing, notify and subscribe support 0e85974 uloop: clear errno before integer conversion attempts 05bd7ed types: treat resource type prototypes as GC roots a2a26ca lib: introduce uloop binding 6b6d01f vm: release this context on exception in managed method call 1af23a9 tests: fix proto() testcase 4ce69a8 fs: implement access(), mkstemp(), file.flush() and proc.flush() Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-02-121-3/+3
| | | | | | | | a29bad9 compiler: fix patchlist corruption on switch statement syntax errors 86f0662 lib: change `ord()` to always return single byte value 116a8ce vallist: fix storing/retrieving short strings with 8bit byte value Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-02-081-4/+4
| | | | | | a317c17 compiler: fix incorrect loop break targets Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-02-071-3/+3
| | | | | | | | | | | | | | | | | | | | | 11adf0c source: convert source objects into proper uc_value_t type 3a49192 treewide: rework function memory model 7edad5c tests: add functional tests for builtin functions d5003fd lib: fix leaking tokener in uc_json() on parse exception 5d0ecd9 lib: fix infinite loop on empty regexp matches in uc_replace() 3ad57f1 lib: fix infinite loop on empty regexp matches in uc_match() 32d596d lib: fix infinite loop on empty regexp matches in uc_split() 3e3f38d vm: ensure consistent trace output between gcc and clang compiled ucode 3600ded vm: fix leaking function value on call exception 3059295 vm: NULL-initialize pointer to make cppcheck happy 98e59bf source: zero-initialize conversion union to make cppcheck happy 7a65c14 run_tests.sh: change workdir to testcase directory during execution afec8d7 run_tests.sh: support placing supplemental testcase files 3ada6e0 run_tests.sh: always treat outputs as text data 2cb627f program: rename bytecode load/write functions, track path of executed file 1094ffa lib: fix memory leak in uc_require_ucode() Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2022-01-282-16/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | c6dae42 LICENSE: add ISC license file 402f603 lib: introduce struct library dcb6ffd struct: fix PowerPC specific compiler pragma name a0512ea treewide: fix typo in exported function names and types eaaaf88 nl80211: fix wiphy dump reply merge logic e6efadb fs: add utility functions 54ef6c0 nl80211: fix premature netlink reply receive abort 07802f3 syntax: disallow keywords in object property shorthand notation 3489b75 vm: support object property access on resource value types dc8027c types: consider resource prototypes when marking reachable objects 5680fab treewide: fix upvalue reference type name 0d29b25 treewide: fix "resource" misspellings 99fdafd vm: introduce value registry 66f7c00 ubus: add support for async requests 5c77dd5 fs: implement fdopen(), file.fileno() and proc.fileno() b605dbf treewide: rework numeric value handling 599d233 vallist: store double values in a platform neutral manner 5bb9ab7 struct: reuse double packing routines from core 2fd7ab5 vm: optimize string concatenation eafa321 lib: implement uniq() function 6b2e79a types: add initial infrastructure for function serialization 725bb75 compiler, vm: use a program wide constant list 6c2caf9 source: refactor source file handling 371ba45 program: implement support for precompiling source files 3578afe build: support building without compile capabilities 61d0a34 lib: replace usages of vasprintf() with xvasprintf() 03b6a8e syntax: drop legacy syntax support 01132db lib: fix %J string formats with precision specifier 3f44c42 lib: rework format string handling a1b3c5d struct: implement `*` format, fix invalid memory accesses 34a04a2 run_tests.sh: fix exitcode evaluation abe38e7 run_tests.sh: add ability to define environment variables for testcases 04fa2ba tests: reorganize testcase files 6a55d10 lib: fix exists() error return value aa860a3 vm: fix `null` loose equality/inequality checks 3f6d199 vallist: uc_number_parse(): parse empty strings as `0`, not `NaN` ddc5aa7 vm: fix NaN strict equality tests Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: add temporary fix for integer formatting on 32bit systemsJo-Philipp Wich2022-01-232-1/+12
| | | | | | | | | | | | The ucode VM always passes 64bit integer values to sprintf implementation while the `%d` format expects 32bit integers on 32bit platforms, leading to incorrect formatting results. Temporarily solve the issue by casting the numeric argument to int until a more thorough fix arrives with the next update. Fixes: FS#4234 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2021-10-251-3/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 0f022aa lib: increase refcount when returning cached module instance c9e68bb lib: introduce resolver library 9041e24 lib: fix uninitialized memory access on handling %J string formats 4ee06d8 syntax: introduce optional chaining operators ce4a7d9 vm: reset callframes before invoking unhandled exception handler 218e822 vm: clear exception information before calling managed code functions 5b908bd ubus: properly handle signed 64bit values too e43b751 ubus: fix handling signed 16bit and 32bit integers 137428f nl80211: fix issues spotted by static code analyzer b9d4f61 nl80211: treat signal attr values as signed integers 9a7c355 nl80211: expose sta_info attributes bb358d9 lib: introduce Linux 802.11 netlink binding 914f54c types: fix invalid memory access on setting non-contiguous array indexes 631f00d main: fix leaking module name when processing -m flag e55188b compiler: properly handle jumps to offset 0 98c4147 tests: support specifying cmdline args in testcase files 64e4f68 types: fix formatting escape sequences for 8 bit chars dd86e1d rtnl: automatically derive message family from certain address attrs 74fdb97 rtnl: expose IPv4 and IPv6 devconfig information 7fa1008 rtnl: allow reply nla payloads to be smaller than headsize cbae3cb lib: introduce Linux route netlink binding e6dd389 ci: adjust build prereqs for GitHub as well 07ae165 ci: add libnl-tiny to prereqs Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2021-09-011-9/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 929c862 vm: fix toplevel function call protocol 8f34d70 fs: fix chown() and rename() error return values 03ca445 tests: disable fuzz tests for now 3b1be3d types: mark further GC roots d49af4e types: fix comparison of differently signed integers c79ff39 types: handle conversion errors when dealing with negative error indexes 3315b1f types: allow negative array indexes d5b25f9 treewide: harmonize function naming cc4ce8d module: remove unused defines f5d7526 examples: add libucode usage examples 559eff2 types, vm: adjust GC api e5e7e62 treewide: move header files into dedicated directory ff6168a build: install header files 7e6ce0f main: introduce new flag `-x` to allow disabling specific functions b1817b3 vm: fix invalid memory access on GC'ing uninitialized VM context 498fe87 main: refactor option parsing and VM setup ff52440 treewide: consolidate typedef naming 1d60418 vm: add API to control trace mode 48f33ad vm: make root exception handler configurable 0f69f09 vm: fix invalid memory access on toplevel function calls 6bcc318 vm: fix handling exceptions in top-level function calls 4ae0568 lib, vm: reimplement exit() as exception type 2f77657 vm: extend API to allow returning result value from VM execution 111645a vm: remove module preloading logic 38ff6de main: preload modules ourselves d5bc223 vm: add uc_vm_invoke() helper ef0baf1 vm: cosmetic fix for outputting exceptions without source context b11a2fa vm: move global scope allocation into uc_vm_init() 900b2a3 vm: add getter and setter for vm globals scope 0179576 lib: rename uc_add_proto_functions() to uc_add_functions() 98b9c84 lib: expose stdlib function array 1adfba0 treewide: eliminate dead code and unused functions 3974e71 treewide: replace a number of unnecessary type casts bf85226 treewide: move ressource type registry into vm instance e2b3d2e build: split into libucode and ucode cli dad8f3a types: properly deal with circular data in GC mark phase 62dbd64 lexer: rename UT_ prefixed constants to UC_ bc8e465 types: fix wrong assert() on tearing down object trees 853b9f1 vm: fix potential invalid memory access in uc_vm_get_error_context() 6f05cdd lib: fix refcount imbalance in uc_require_path() 96f140b lib, vm: ensure that require() compiles modules only once df5db5f compiler: don't segfault on invalid declaration expressions a97c7a1 lexer: transition into EOF state on unrecognized character 2a838d1 compiler: improve mapping of binary operator tokens to instructions 9872f65 vm: add support for I_LE and I_GE instructions 4e410c3 treewide: let uc_cmp() use instruction instead of token numbers ce6081d lexer, vm: reorder token and instruction numbers 234a4f6 lib: implement b64enc() and b64dec() functions 856a0c0 lib: only consider context of calling function for callbacks 86fb130 lib: implement min() and max() functions 3e893e6 lib: pass-through "this" context to library function callbacks 42de7ab lib: implement `sourcepath()` function 05c80a7 lib: fix negative uc_index() return value on 32bit systems 9874562 lexer: implement raw code mode 3b665c8 lexer: drop value union from keyword table 44354cf lexer, compiler: separate TK_BOOL token into TK_TRUE and TK_FALSE tokens 5879bdf syntax: drop Infinity and NaN keywords d4edadc lib: rename uc_lib_init() to uc_load_stdlib() d81bad7 main, lib: move allocation of globals object into lib function c4f4b38 main: simplify REQUIRE_SEARCH_PATH initialization 54ca3aa types: fix uninitialized memory on setting non-contiguous array indexes cbc0d78 build: let require search patch default to CMAKE_INSTALL_PREFIX 5714705 syntax: introduce `const` support ed32c42 compiler, lexer: add NO_LEGACY define to disable legacy syntax features ff6811f syntax: implement `delete` as proper operator 5803d86 lib: implement wildcard() function dfb7379 fs: implement chmod(), chown(), rename() and glob() functions 1ddf5b6 lexer: skip interpreter line in any source buffer 9951a00 build: lower minimum required CMake version to v3.13 7b81ab2 main: expose argv as global ARGV array to ucode scripts 7283a70 tests: rename misnamed testcases for consistency 3f80116 compiler: fix local for-loop initializer variable declarations f20b56f compiler: properly parse slashes in parenthesized division expressions 5c4e1ea lib: implement regexp(), a function to construct regexp instances at runtime e546bba lib: implement render(), an include variant capturing output in a string 0cb10c6 vm: implement mechanism to change output file descriptor eb8a64d lib: fix uc_sort() f1ffc9f vm: truncate long values after 60 chars in trace output 850612f compiler: properly handle break/continue in nested scopes f0a9875 compiler: properly handle keyword in parenthesized property access expression 1660433 compiler: fix stack mismatch on compiling `use strict` statements a36e0df syntax: implement support for 'use strict' pragma 827a34a vm, compiler: get rid of unused struct members 594cdf3 lib: implement assert() c4d1648 lib: add support for pretty printing JSON to printf() and sprintf() f2eaea3 lib: gracefully handle truncated format strings in uc_printf_common() 02629b8 lexer: fix infinite loop on parsing unterminated comments 2bc9bac lexer: fix infinite loop on parsing unterminated expression blocks f73e201 lexer: fix infinite loop when parsing regexp literal at EOF 86b4863 compiler: fix segfault on parsing invalid pre/post increment expressions 0e24509 lib: fix reporting source context lines at EOF e66b2ad compiler, lexer: improve lexical state handling e29b574 lib: fix uc_split() quirks 64eec7f treewide: ISO C / pedantic compliance 4af803d build: output error messages on test failures 9ef693e vm: improve context for early errors 6def9fc tests: pass ucode library path through environment d5dd183 treewide: address various sign-compare warnings 28825ac types: support creating ressource values without associated type 9c5106a types: fix potential memory leaks and null pointer accesses c51934a types: fix potential leak of key in ucv_object_add() 7b28727 main: fix ineffective EOF check in parse() 4cf897c lib: uc_system(): fix invalid free() of non-heap memory 35af4ba treewide: rework internal data type system f2c4b79 treewide: fix issues reported by clang code analyzer 93ededb tests: allow executing run_tests.sh from any directory 0e4a387 Add initial GitLab and GitHub CI support df73b25 tests: add more tests 41d33d0 tests: custom: return exit code if tests fails 1c548a6 cmake: do not output binaries into lib directory 2b59097 tests: create custom tests from current tests cases 8039361 main: provide just binary name in help output 778e4f7 lexer: fix incomplete struct initializers 502ecdc cmake: enable extra compiler checks 3c2aeff cmake: fix includes and libraries 617a114 cmake: make 3.0 minimum version f360350 lib: implement sleep(ms) function 7f0ff91 lib: allow parsing non-array, non-object value in json() Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2021-04-011-3/+3
| | | | | | | | 973cc6c compiler: actually expand block scope fix to for/while alt syntax 97bf297 compiler: ensure that alternative if/for/while syntax has own block scope f0e2a64 tests: add missing test case for fixed switch codegen Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: update to latest Git HEADJo-Philipp Wich2021-03-291-3/+3
| | | | | | | | | | | | | | | | | | | aa9621d compiler: rework switch statement code generation b5f0de1 vm: add trace mode instruction dump output fixes 0341d64 vm: fix another for-loop memory leak 00d9419 vm: fix further memory leaks in trace mode 20a3763 vm: fix loop variable memory leak in NEXTK/NEXTKV instruction 9a6ef2b lib: prevent use-after-free after uc_shift() 03f1324 object: free prototype object when registering existing ressource type b3d758b compiler: fix for/break miscompilation 86e3970 lib: fix value refcount of uc_unshift() return value fe464ea run_tests.sh: allow passing tests to run as arguments 091ae1b compiler: fix another try/catch miscompilation fcedb19 lib: fix passing uninitialized memory to sigprocmask() 0d0357d vm: fix leaking source context strings in trace mode 7a41fb3 lib: use execvp() in system() Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ucode: fix PKG_MIRROR_HASHDaniel Golle2021-03-241-1/+1
| | | | Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ucode: introduce packageJo-Philipp Wich2021-03-191-0/+116
This commit introduces ucode, a tiny template processor utilizing a syntax closely resembling ECMA Script for embedded script blocks. Signed-off-by: Jo-Philipp Wich <jo@mein.io>