openwrt/package/utils/ucode/Makefile

185 lines
4.8 KiB
Makefile
Raw Normal View History

#
# Copyright (C) 2020-2021 Jo-Philipp Wich <jo@mein.io>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ucode
ucode: update to latest Git HEAD 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>
2021-11-01 18:27:00 +00:00
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/jow-/ucode.git
PKG_SOURCE_DATE:=2024-07-11
PKG_SOURCE_VERSION:=1a8a0bcf725520820802ad433db22d8f64fbed6c
PKG_MIRROR_HASH:=0a859c97457a019adc73b028c19e2b334271b2c4de28337f1a18fd35438af3d3
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=ISC
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
PKG_ABI_VERSION:=20230711
HOST_BUILD_DEPENDS:=libjson-c/host
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
include $(INCLUDE_DIR)/package.mk
ucode: update to latest Git HEAD 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>
2022-06-29 18:19:35 +00:00
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
CMAKE_OPTIONS += -DSOVERSION=$(PKG_ABI_VERSION)
ifeq ($(HOST_OS),Darwin)
CMAKE_HOST_OPTIONS += \
-DCMAKE_SKIP_RPATH=FALSE \
-DCMAKE_MACOSX_RPATH=1 \
-DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOSTPKG}/lib"
else
CMAKE_HOST_OPTIONS += \
-DSOVERSION=$(PKG_ABI_VERSION)
endif
ucode: update to latest Git HEAD 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>
2022-06-29 18:19:35 +00:00
CMAKE_HOST_OPTIONS += \
-DFS_SUPPORT=ON \
-DMATH_SUPPORT=ON \
-DNL80211_SUPPORT=OFF \
-DRESOLV_SUPPORT=OFF \
-DRTNL_SUPPORT=OFF \
-DSTRUCT_SUPPORT=ON \
-DUBUS_SUPPORT=OFF \
-DUCI_SUPPORT=OFF \
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
-DULOOP_SUPPORT=OFF \
-DDEBUG_SUPPORT=ON \
-DLOG_SUPPORT=OFF
ucode: update to latest Git HEAD 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>
2022-06-29 18:19:35 +00:00
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
define Package/ucode/default
SUBMENU:=ucode
SECTION:=lang
CATEGORY:=Languages
TITLE:=Tiny scripting and templating language
endef
define Package/ucode
$(Package/ucode/default)
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
DEPENDS:=+libucode
endef
define Package/ucode/description
ucode is a tiny script interpreter featuring an ECMAScript oriented
script language and Jinja-inspired templating.
endef
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
define Package/libucode
$(Package/ucode/default)
SUBMENU:=
SECTION:=libs
CATEGORY:=Libraries
TITLE+= (library)
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
ABI_VERSION:=$(PKG_ABI_VERSION)
DEPENDS:=+libjson-c
endef
define Package/libucode/description
The libucode package provides the shared runtime library for the ucode interpreter.
endef
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
# 1: name
# 2: cmake symbol
# 3: depends
# 4: description
define UcodeModule
UCODE_MODULES += ucode-mod-$(strip $(1))
CMAKE_OPTIONS += -D$(strip $(2))=$(if $(CONFIG_PACKAGE_ucode-mod-$(strip $(1))),ON,OFF)
PKG_CONFIG_DEPENDS += CONFIG_PACKAGE_ucode-mod-$(strip $(1))
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
define Package/ucode-mod-$(strip $(1))
$(Package/ucode/default)
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
TITLE+= ($(strip $(1)) module)
DEPENDS:=+ucode $(3)
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
endef
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
define Package/ucode-mod-$(strip $(1))/description
$(strip $(4))
endef
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
define Package/ucode-mod-$(strip $(1))/install
$(INSTALL_DIR) $$(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/$(strip $(1)).so $$(1)/usr/lib/ucode/
endef
ucode: update to latest Git HEAD 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>
2022-06-29 18:19:35 +00:00
endef
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include/ucode
$(CP) $(PKG_INSTALL_DIR)/usr/include/ucode/*.h $(1)/usr/include/ucode/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libucode.so* $(1)/usr/lib/
endef
define Package/ucode/install
$(INSTALL_DIR) $(1)/usr/bin
ucode: update to latest Git HEAD 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>
2022-03-22 19:26:59 +00:00
$(CP) $(PKG_INSTALL_DIR)/usr/bin/u* $(1)/usr/bin/
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
endef
define Package/libucode/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libucode.so.* $(1)/usr/lib/
endef
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
debug, DEBUG_SUPPORT, +libubox +libucode, \
The debug plugin module provides runtime debugging and introspection facilities.))
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
fs, FS_SUPPORT, , \
The filesystem plugin module allows interaction with the local file system.))
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
log, LOG_SUPPORT, +libubox, \
The log plugin module provides access to the syslog and libubox ulog APIs.))
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
math, MATH_SUPPORT, , \
The math plugin provides access to various <math.h> procedures.))
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
nl80211, NL80211_SUPPORT, +libnl-tiny +libubox, \
The nl80211 plugin provides access to the Linux wireless 802.11 netlink API.))
ucode: update to latest Git HEAD 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>
2021-11-01 18:27:00 +00:00
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
resolv, RESOLV_SUPPORT, , \
The resolv plugin implements simple DNS resolving.))
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
rtnl, RTNL_SUPPORT, +libnl-tiny +libubox, \
The rtnl plugin provides access to the Linux routing netlink API.))
$(eval $(call UcodeModule, \
socket, SOCKET_SUPPORT, , \
The socket plugin provides access to IPv4, IPv6, Unix and packet socket APIs.))
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(eval $(call UcodeModule, \
struct, STRUCT_SUPPORT, , \
The struct plugin implements Python 3 compatible struct.pack/unpack functionality.))
$(eval $(call UcodeModule, \
ubus, UBUS_SUPPORT, +libubus +libblobmsg-json, \
The ubus module allows ucode template scripts to enumerate and invoke ubus procedures.))
$(eval $(call UcodeModule, \
uci, UCI_SUPPORT, +libuci, \
The uci module allows templates to read and modify uci configuration.))
$(eval $(call UcodeModule, \
uloop, ULOOP_SUPPORT, +libubox, \
The uloop module allows ucode scripts to interact with OpenWrt uloop event loop implementation.))
ucode: update to latest Git HEAD 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>
2021-07-11 18:37:45 +00:00
$(eval $(call BuildPackage,libucode))
$(eval $(call BuildPackage,ucode))
ucode: update to latest Git HEAD - 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>
2023-10-26 22:15:58 +00:00
$(foreach mod,$(UCODE_MODULES), \
$(eval $(call BuildPackage,$(mod))))
ucode: update to latest Git HEAD 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>
2022-06-29 18:19:35 +00:00
$(eval $(call HostBuild))