[openwrt/openwrt] ucode: update to latest Git HEAD

LEDE Commits lede-commits at lists.infradead.org
Wed Sep 1 06:41:48 PDT 2021


jow pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/9e9057f4164a31bbe5a645878a9e0f083b533c0f

commit 9e9057f4164a31bbe5a645878a9e0f083b533c0f
Author: Jo-Philipp Wich <jo at mein.io>
AuthorDate: Sun Jul 11 20:37:45 2021 +0200

    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 at mein.io>
---
 package/utils/ucode/Makefile | 47 +++++++++++++++++++++++++++++++++++---------
 1 file changed, 38 insertions(+), 9 deletions(-)

diff --git a/package/utils/ucode/Makefile b/package/utils/ucode/Makefile
index 7c8907a716..26281af730 100644
--- a/package/utils/ucode/Makefile
+++ b/package/utils/ucode/Makefile
@@ -12,15 +12,19 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=https://github.com/jow-/ucode.git
-PKG_SOURCE_DATE:=2021-03-31
-PKG_SOURCE_VERSION:=973cc6c865dcf6075c493125313058b650b08234
-PKG_MIRROR_HASH:=fb4d3e231c79a9122743f0ced7fd4fdcf81903de5c721d3c18d5779e44d50bdf
+PKG_SOURCE_DATE:=2021-07-30
+PKG_SOURCE_VERSION:=929c8627cf077c3e348fb12b02553d4a444c5e48
+PKG_MIRROR_HASH:=
 PKG_MAINTAINER:=Jo-Philipp Wich <jo at mein.io>
 PKG_LICENSE:=ISC
 
+PKG_ABI_VERSION:=20210730
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
+CMAKE_OPTIONS += -DSOVERSION=$(PKG_ABI_VERSION)
+
 define Package/ucode/default
   SECTION:=utils
   CATEGORY:=Utilities
@@ -29,7 +33,7 @@ endef
 
 define Package/ucode
   $(Package/ucode/default)
-  DEPENDS:=+libjson-c
+  DEPENDS:=+libucode
 endef
 
 define Package/ucode/description
@@ -38,6 +42,18 @@ define Package/ucode/description
 endef
 
 
+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)
@@ -83,33 +99,46 @@ define Package/ucode-mod-uci/description
 endef
 
 
+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
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ucode $(1)/usr/bin/ucode
+	$(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
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/fs.so $(1)/usr/lib/ucode/
+	$(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
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/math.so $(1)/usr/lib/ucode/
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/math.so $(1)/usr/lib/ucode/
 endef
 
 define Package/ucode-mod-ubus/install
 	$(INSTALL_DIR) $(1)/usr/lib/ucode
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/ubus.so $(1)/usr/lib/ucode/
+	$(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
-	$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/uci.so $(1)/usr/lib/ucode/
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/ucode/uci.so $(1)/usr/lib/ucode/
 endef
 
 
 $(eval $(call BuildPackage,ucode))
+$(eval $(call BuildPackage,libucode))
 $(eval $(call BuildPackage,ucode-mod-fs))
 $(eval $(call BuildPackage,ucode-mod-math))
 $(eval $(call BuildPackage,ucode-mod-ubus))



More information about the lede-commits mailing list