openwrt/package/utils/ucode/Makefile

214 lines
5.3 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:=2022-02-11
PKG_SOURCE_VERSION:=a29bad9454edcc285f7f37410b6822affede44d1
PKG_MIRROR_HASH:=eaba0f12c469ef82b772a64f8763e8855dbba81551a78d05f547c0922a7dacad
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=ISC
PKG_ABI_VERSION:=20220206
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
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)
define Package/ucode/default
SECTION:=utils
CATEGORY:=Utilities
TITLE:=ucode - 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)
TITLE+= - runtime library
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
define Package/ucode-mod-fs
$(Package/ucode/default)
TITLE+= (filesystem module)
DEPENDS:=ucode
endef
define Package/ucode-mod-fs/description
The filesystem plugin module allows interaction with the local file system.
endef
define Package/ucode-mod-math
$(Package/ucode/default)
TITLE+= (math module)
DEPENDS:=ucode
endef
define Package/ucode-mod-math/description
The math plugin provides access to various <math.h> procedures.
endef
define Package/ucode-mod-nl80211
$(Package/ucode/default)
TITLE+= (nl80211 module)
DEPENDS:=ucode +libnl-tiny
endef
define Package/ucode-mod-nl80211/description
The nl80211 plugin provides access to the Linux wireless 802.11 netlink API.
endef
define Package/ucode-mod-resolv
$(Package/ucode/default)
TITLE+= (resolv module)
DEPENDS:=ucode
endef
define Package/ucode-mod-resolv/description
The resolv plugin implements simple DNS resolving.
endef
define Package/ucode-mod-rtnl
$(Package/ucode/default)
TITLE+= (rtnl module)
DEPENDS:=ucode +libnl-tiny
endef
define Package/ucode-mod-rtnl/description
The rtnl plugin provides access to the Linux routing netlink API.
endef
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
define Package/ucode-mod-struct
$(Package/ucode/default)
TITLE+= (struct module)
DEPENDS:=ucode
endef
define Package/ucode-mod-struct/description
The struct plugin implemnts Python 3 compatible struct.pack/unpack functionality.
endef
define Package/ucode-mod-ubus
$(Package/ucode/default)
TITLE+= (ubus module)
DEPENDS:=ucode +libubus +libblobmsg-json
endef
define Package/ucode-mod-ubus/description
The ubus module allows ucode template scripts to enumerate and invoke ubus
procedures.
endef
define Package/ucode-mod-uci
$(Package/ucode/default)
TITLE+= (uci module)
DEPENDS:=ucode +libuci
endef
define Package/ucode-mod-uci/description
The uci module allows templates to read and modify uci configuration.
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 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
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ucode $(1)/usr/bin/ucode
endef
define Package/libucode/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libucode.so.* $(1)/usr/lib/
endef
define Package/ucode-mod-fs/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
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
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/fs.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-math/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
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
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/math.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-nl80211/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/nl80211.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-resolv/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/resolv.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-rtnl/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/rtnl.so $(1)/usr/lib/ucode/
endef
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
define Package/ucode-mod-struct/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/struct.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-ubus/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
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
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/ubus.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-uci/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
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
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/uci.so $(1)/usr/lib/ucode/
endef
$(eval $(call BuildPackage,ucode))
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-mod-fs))
$(eval $(call BuildPackage,ucode-mod-math))
$(eval $(call BuildPackage,ucode-mod-nl80211))
$(eval $(call BuildPackage,ucode-mod-resolv))
$(eval $(call BuildPackage,ucode-mod-rtnl))
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
$(eval $(call BuildPackage,ucode-mod-struct))
$(eval $(call BuildPackage,ucode-mod-ubus))
$(eval $(call BuildPackage,ucode-mod-uci))