git: 1d6e02cfc3f0 - stable/13 - MFV: libucl: Update to 0.9.2
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 02 Oct 2025 08:20:58 UTC
The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=1d6e02cfc3f091503f441834840cfcba34c29cae commit 1d6e02cfc3f091503f441834840cfcba34c29cae Author: Muhammad Moinur Rahman <bofh@FreeBSD.org> AuthorDate: 2025-08-27 18:36:12 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2025-10-02 07:28:55 +0000 MFV: libucl: Update to 0.9.2 - Add FREEBSD-upgrade instructions - Add FREEBSD-Xlist file - Remove all unnecessary files which are not required for in-tree build Approved by: bapt Differential Revision: https://reviews.freebsd.org/D50472 Event: Oslo Hackathon 202508 Sponsored by: The FreeBSD Foundation (cherry picked from commit 2326db40a1d2dd98631d70aae200ca52575139fb) --- contrib/libucl/CMakeLists.txt | 314 ----------- contrib/libucl/ChangeLog.md | 103 ---- contrib/libucl/FREEBSD-Xlist | 40 ++ contrib/libucl/FREEBSD-upgrade | 39 ++ contrib/libucl/Makefile.am | 81 --- contrib/libucl/Makefile.unix | 89 --- contrib/libucl/Makefile.w32 | 92 --- contrib/libucl/README.md | 418 -------------- contrib/libucl/autogen.sh | 2 - contrib/libucl/configure.ac | 188 ------- contrib/libucl/doc/Makefile.am | 9 - contrib/libucl/doc/api.md | 506 ----------------- contrib/libucl/doc/lua_api.md | 196 ------- contrib/libucl/doc/pandoc.template | 12 - contrib/libucl/examples/ucl_cpp.cc | 26 - contrib/libucl/haskell/hucl.hs | 123 ---- contrib/libucl/include/ucl.h | 4 +- contrib/libucl/libucl.pc | 11 - contrib/libucl/libucl.pc.in | 11 - contrib/libucl/lua/Makefile.am | 26 - contrib/libucl/lua/libucl.rockspec.in | 26 - contrib/libucl/lua/lua_ucl.c | 83 ++- contrib/libucl/m4/ax_lua.m4 | 664 ---------------------- contrib/libucl/m4/gcov.m4 | 89 --- contrib/libucl/python/MANIFEST.in | 5 - contrib/libucl/python/setup.py | 75 --- contrib/libucl/python/src/uclmodule.c | 335 ----------- contrib/libucl/python/tests/__init__.py | 0 contrib/libucl/python/tests/compat.py | 8 - contrib/libucl/python/tests/test_dump.py | 66 --- contrib/libucl/python/tests/test_example.py | 59 -- contrib/libucl/python/tests/test_load.py | 122 ---- contrib/libucl/python/tests/test_validation.py | 50 -- contrib/libucl/python/ucl.pyi | 15 - contrib/libucl/src/Makefile.am | 30 - contrib/libucl/src/mum.h | 2 - contrib/libucl/src/ucl_emitter.c | 80 ++- contrib/libucl/src/ucl_emitter_streamline.c | 9 +- contrib/libucl/src/ucl_hash.c | 146 +++-- contrib/libucl/src/ucl_msgpack.c | 4 +- contrib/libucl/src/ucl_parser.c | 214 +++++-- contrib/libucl/src/ucl_schema.c | 1 + contrib/libucl/src/ucl_util.c | 87 +-- contrib/libucl/stamp-h.in | 1 - contrib/libucl/tests/.gitignore | 10 + contrib/libucl/tests/Makefile.am | 45 -- contrib/libucl/tests/schema/definitions.json | 32 -- contrib/libucl/tests/schema/ref.json | 16 - contrib/libucl/tests/schema/refRemote.json | 76 --- contrib/libucl/tests/test_speed.c | 2 +- contrib/libucl/tests/test_streamline.c | 43 +- contrib/libucl/uthash/utlist.h | 749 ++++++++++++++++++------- contrib/libucl/utils/CMakeLists.txt | 12 - contrib/libucl/utils/Makefile.am | 23 - contrib/libucl/utils/chargen.c | 128 ----- contrib/libucl/utils/objdump.c | 185 ------ contrib/libucl/utils/ucl-tool.c | 170 ------ 57 files changed, 1072 insertions(+), 4880 deletions(-) diff --git a/contrib/libucl/CMakeLists.txt b/contrib/libucl/CMakeLists.txt deleted file mode 100644 index 5fe772a30f88..000000000000 --- a/contrib/libucl/CMakeLists.txt +++ /dev/null @@ -1,314 +0,0 @@ -PROJECT(libucl C) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR) - -SET(LIBUCL_VERSION_MAJOR 0) -SET(LIBUCL_VERSION_MINOR 5) -SET(LIBUCL_VERSION_PATCH 0) - -SET(LIBUCL_VERSION - "${LIBUCL_VERSION_MAJOR}.${LIBUCL_VERSION_MINOR}.${LIBUCL_VERSION_PATCH}") - -INCLUDE(CheckCCompilerFlag) -INCLUDE(CheckCSourceCompiles) -INCLUDE(FindOpenSSL) -INCLUDE(GNUInstallDirs) - -OPTION(ENABLE_URL_INCLUDE "Enable urls in ucl includes (requires libcurl or libfetch) [default: OFF]" OFF) -OPTION(ENABLE_URL_SIGN "Enable signatures check in ucl includes (requires openssl) [default: OFF]" OFF) -OPTION(BUILD_SHARED_LIBS "Build Shared Libraries [default: OFF]" OFF) -OPTION(ENABLE_LUA "Enable lua support [default: OFF]" OFF) -OPTION(ENABLE_LUAJIT "Enable luajit support [default: OFF]" OFF) -OPTION(ENABLE_UTILS "Enable building utility binaries [default: OFF]" OFF) - -# Find lua installation -MACRO(FindLua) - # Find lua libraries - UNSET(LUA_INCLUDE_DIR CACHE) - UNSET(LUA_LIBRARY CACHE) - CMAKE_PARSE_ARGUMENTS(LUA "" "VERSION_MAJOR;VERSION_MINOR;ROOT" "" ${ARGN}) - - IF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR) - MESSAGE(FATAL_ERROR "Invalid FindLua invocation: ${ARGN}") - ENDIF() - - IF(ENABLE_LUAJIT MATCHES "ON") - MESSAGE(STATUS "Check for luajit ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}") - FIND_PATH(LUA_INCLUDE_DIR luajit.h - HINTS - "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}" - $ENV{LUA_DIR} - PATH_SUFFIXES "include/luajit-2.0" - "include/luajit${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}" - "include/luajit${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "include/luajit-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "include/luajit" - "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}" - "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - include/lua include - PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS} - ) - FIND_LIBRARY(LUA_LIBRARY - NAMES luajit - "luajit-2.0" - "luajit2.0" - "luajit${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}" - "luajit${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "luajit-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - HINTS - "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}" - $ENV{LUA_DIR} - PATH_SUFFIXES lib64 lib - PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS} - DOC "Lua library" - ) - - IF(NOT LUA_LIBRARY OR NOT LUA_INCLUDE_DIR) - MESSAGE(STATUS "Fallback from luajit to plain lua") - SET(ENABLE_LUAJIT "OFF") - MESSAGE(STATUS "Check for lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}") - FIND_PATH(LUA_INCLUDE_DIR lua.h - HINTS - "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}" - $ENV{LUA_DIR} - PATH_SUFFIXES "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}" - "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - include/lua include - PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS} - ) - FIND_LIBRARY(LUA_LIBRARY - NAMES lua - "lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}" - "lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - HINTS - "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}" - $ENV{LUA_DIR} - PATH_SUFFIXES lib64 lib - PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS} - DOC "Lua library" - ) - ENDIF() - ELSE(ENABLE_LUAJIT MATCHES "ON") - MESSAGE(STATUS "Check for lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}") - FIND_PATH(LUA_INCLUDE_DIR lua.h - HINTS - "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}" - $ENV{LUA_DIR} - PATH_SUFFIXES "include/lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}" - "include/lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "include/lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - include/lua include - PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS} - ) - FIND_LIBRARY(LUA_LIBRARY - NAMES lua - "lua${LUA_VERSION_MAJOR}${LUA_VERSION_MINOR}" - "lua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - "lua-${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}" - HINTS - "${RSPAMD_SEARCH_PATH}" "${LUA_ROOT}" - $ENV{LUA_DIR} - PATH_SUFFIXES lib64 lib - PATHS ${RSPAMD_DEFAULT_LIBRARY_PATHS} - DOC "Lua library" - ) - ENDIF(ENABLE_LUAJIT MATCHES "ON") - - IF(LUA_LIBRARY AND LUA_INCLUDE_DIR) - SET(LUA_FOUND 1) - IF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR) - SET(LUA_VERSION_MAJOR ${LUA_VERSION_MAJOR}) - SET(LUA_VERSION_MINOR ${LUA_VERSION_MINOR}) - ENDIF(NOT LUA_VERSION_MAJOR OR NOT LUA_VERSION_MINOR) - IF(ENABLE_LUAJIT MATCHES "ON") - MESSAGE(STATUS "Found luajit ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}") - ELSE(ENABLE_LUAJIT MATCHES "ON") - MESSAGE(STATUS "Found lua ${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}") - ENDIF(ENABLE_LUAJIT MATCHES "ON") - ENDIF(LUA_LIBRARY AND LUA_INCLUDE_DIR) -ENDMACRO() - -IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") - LIST(APPEND CMAKE_REQUIRED_LIBRARIES rt) -ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux") - -IF(ENABLE_URL_INCLUDE MATCHES "ON") - FIND_LIBRARY(LIBFETCH_LIBRARY NAMES fetch PATHS PATH_SUFFIXES lib64 lib - PATHS - ~/Library/Frameworks - /Library/Frameworks - /usr/local - /usr - /sw - /opt/local - /opt/csw - /opt - DOC "Path where the libfetch library can be found") - IF(LIBFETCH_LIBRARY) - FIND_FILE(HAVE_FETCH_H NAMES fetch.h PATHS /usr/include - /opt/include - /usr/local/include - DOC "Path to libfetch header") - ELSE(LIBFETCH_LIBRARY) - # Try to find libcurl - FIND_PACKAGE(CURL) - IF(NOT CURL_FOUND) - MESSAGE(WARNING "Neither libcurl nor libfetch were found, no support of URL includes in configuration") - ENDIF(NOT CURL_FOUND) - ENDIF(LIBFETCH_LIBRARY) -ENDIF(ENABLE_URL_INCLUDE MATCHES "ON") - -set(SYNC_BUILTINS_TEST_SOURCE [====[ -int main() -{ - unsigned long val; - - __sync_bool_compare_and_swap(&val, 0, 1); - __sync_add_and_fetch(&val, 1); - __sync_fetch_and_add(&val, 0); - __sync_sub_and_fetch(&val, 1); - - return 0; -} -]====]) - -CHECK_C_SOURCE_COMPILES("${SYNC_BUILTINS_TEST_SOURCE}" HAVE_ATOMIC_BUILTINS) -IF(NOT HAVE_ATOMIC_BUILTINS) - MESSAGE(WARNING "Libucl references could be thread-unsafe because atomic builtins are missing") -ENDIF(NOT HAVE_ATOMIC_BUILTINS) - -SET(CMAKE_C_WARN_FLAGS "") -CHECK_C_COMPILER_FLAG(-W SUPPORT_W) -CHECK_C_COMPILER_FLAG(-Wno-pointer-sign SUPPORT_WPOINTER_SIGN) -CHECK_C_COMPILER_FLAG(-Wno-unused-parameter SUPPORT_WUNUSED_PARAMETER) -IF(SUPPORT_W) - SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -W") -ENDIF(SUPPORT_W) -IF(SUPPORT_WPOINTER_SIGN) - SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wno-pointer-sign") -ENDIF(SUPPORT_WPOINTER_SIGN) -IF(SUPPORT_WUNUSED_PARAMETER) - SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wno-unused-parameter") -ENDIF(SUPPORT_WUNUSED_PARAMETER) - -SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_WARN_FLAGS}" ) - -IF(ENABLE_URL_SIGN MATCHES "ON") - IF(OPENSSL_FOUND) - SET(HAVE_OPENSSL 1) - INCLUDE_DIRECTORIES("${OPENSSL_INCLUDE_DIR}") - ENDIF(OPENSSL_FOUND) -ENDIF(ENABLE_URL_SIGN MATCHES "ON") - -SET(UCL_COMPILE_DEFS) -IF(HAVE_FETCH_H) - LIST(APPEND UCL_COMPILE_DEFS -DHAVE_FETCH_H=1) -ENDIF(HAVE_FETCH_H) -IF(CURL_FOUND) - LIST(APPEND UCL_COMPILE_DEFS -DCURL_FOUND=1) -ENDIF(CURL_FOUND) -IF(HAVE_OPENSSL) - LIST(APPEND UCL_COMPILE_DEFS -DHAVE_OPENSSL=1) -ENDIF(HAVE_OPENSSL) -IF(HAVE_ATOMIC_BUILTINS) - LIST(APPEND UCL_COMPILE_DEFS -DHAVE_ATOMIC_BUILTINS=1) -ENDIF(HAVE_ATOMIC_BUILTINS) - -SET(UCLSRC src/ucl_util.c - src/ucl_parser.c - src/ucl_emitter.c - src/ucl_emitter_streamline.c - src/ucl_emitter_utils.c - src/ucl_hash.c - src/ucl_schema.c - src/ucl_msgpack.c - src/ucl_sexp.c) - -SET(UCLHDR include/ucl.h - include/ucl++.h) - -SET (LIB_TYPE STATIC) -IF (BUILD_SHARED_LIBS) - SET (LIB_TYPE SHARED) -ENDIF (BUILD_SHARED_LIBS) -ADD_LIBRARY(ucl ${LIB_TYPE} ${UCLSRC}) -ADD_LIBRARY(ucl::ucl ALIAS ucl) -SET_TARGET_PROPERTIES(ucl PROPERTIES VERSION ${LIBUCL_VERSION} SOVERSION ${LIBUCL_VERSION_MAJOR}) -TARGET_INCLUDE_DIRECTORIES(ucl - PUBLIC - include - PRIVATE - src - uthash - klib) -TARGET_COMPILE_DEFINITIONS(ucl - PRIVATE - ${UCL_COMPILE_DEFS} -) - -IF(ENABLE_LUA MATCHES "ON") - IF(ENABLE_LUAJIT MATCHES "ON") - FindLua(VERSION_MAJOR "5" VERSION_MINOR "1" ROOT "${LUA_ROOT}") - IF(NOT LUA_FOUND) - MESSAGE(FATAL_ERROR "Lua not found, lua support is required") - ELSE(NOT LUA_FOUND) - INCLUDE_DIRECTORIES("${LUA_INCLUDE_DIR}") - ENDIF(NOT LUA_FOUND) - ELSE(ENABLE_LUAJIT MATCHES "ON") - FindLua(VERSION_MAJOR "5" VERSION_MINOR "2" ROOT "${LUA_ROOT}") - IF(NOT LUA_FOUND) - FindLua(VERSION_MAJOR "5" VERSION_MINOR "1" ROOT "${LUA_ROOT}") - ENDIF(NOT LUA_FOUND) - IF(NOT LUA_FOUND) - MESSAGE(FATAL_ERROR "Lua not found, lua support is required") - ELSE(NOT LUA_FOUND) - INCLUDE_DIRECTORIES("${LUA_INCLUDE_DIR}") - ENDIF(NOT LUA_FOUND) - ENDIF(ENABLE_LUAJIT MATCHES "ON") - SET(UCL_LUA_SRC lua/lua_ucl.c) - ADD_LIBRARY(lua-ucl ${LIB_TYPE} ${UCL_LUA_SRC}) - ADD_LIBRARY(ucl::lua ALIAS lua-ucl) - IF(ENABLE_LUAJIT MATCHES "ON") - TARGET_LINK_LIBRARIES(lua-ucl "${LUAJIT_LIBRARY}") - ELSE(ENABLE_LUAJIT MATCHES "ON") - TARGET_LINK_LIBRARIES(lua-ucl "${LUA_LIBRARY}") - ENDIF(ENABLE_LUAJIT MATCHES "ON") - TARGET_LINK_LIBRARIES(lua-ucl ucl) - TARGET_INCLUDE_DIRECTORIES(lua-ucl PUBLIC include PRIVATE src uthash) - SET_TARGET_PROPERTIES(lua-ucl PROPERTIES - VERSION ${LIBUCL_VERSION} - SOVERSION ${LIBUCL_VERSION_MAJOR} - PUBLIC_HEADER include/lua_ucl.h) - INSTALL(TARGETS lua-ucl DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -ENDIF() - -IF(HAVE_FETCH_H) - TARGET_LINK_LIBRARIES(ucl fetch) -ELSE(HAVE_FETCH_H) - IF(CURL_FOUND) - TARGET_LINK_LIBRARIES(ucl ${CURL_LIBRARIES}) - ENDIF(CURL_FOUND) -ENDIF(HAVE_FETCH_H) -IF(ENABLE_URL_SIGN MATCHES "ON") - IF(OPENSSL_FOUND) - TARGET_LINK_LIBRARIES(ucl ${OPENSSL_LIBRARIES}) - ENDIF(OPENSSL_FOUND) -ENDIF(ENABLE_URL_SIGN MATCHES "ON") - -IF(UNIX) - TARGET_LINK_LIBRARIES(ucl -lm) -ENDIF(UNIX) - -SET_TARGET_PROPERTIES(ucl PROPERTIES - PUBLIC_HEADER "${UCLHDR}") - -INSTALL(TARGETS ucl DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - -IF(ENABLE_UTILS MATCHES "ON") - ADD_SUBDIRECTORY(utils) -ENDIF() - diff --git a/contrib/libucl/ChangeLog.md b/contrib/libucl/ChangeLog.md deleted file mode 100644 index cba29aa9a7b5..000000000000 --- a/contrib/libucl/ChangeLog.md +++ /dev/null @@ -1,103 +0,0 @@ -# Version history - -## Libucl 0.5 - -- Streamline emitter has been added, so it is now possible to output partial `ucl` objects -- Emitter now is more flexible due to emitter_context structure - -### 0.5.1 -- Fixed number of bugs and memory leaks - -### 0.5.2 - -- Allow userdata objects to be emitted and destructed -- Use userdata objects to store lua function references - -### Libucl 0.6 - -- Reworked macro interface - -### Libucl 0.6.1 - -- Various utilities fixes - -### Libucl 0.7.0 - -- Move to klib library from uthash to reduce memory overhead and increase performance - -### Libucl 0.7.1 - -- Added safe iterators API - -### Libucl 0.7.2 - -- Fixed serious bugs in schema and arrays iteration - -### Libucl 0.7.3 - -- Fixed a bug with macros that come after an empty object -- Fixed a bug in include processing when an incorrect variable has been destroyed (use-after-free) - -### Libucl 0.8.0 - -- Allow to save comments and macros when parsing UCL documents -- C++ API -- Python bindings (by Eitan Adler) -- Add msgpack support for parser and emitter -- Add Canonical S-expressions parser for libucl -- CLI interface for parsing and validation (by Maxim Ignatenko) -- Implement include with priority -- Add 'nested' functionality to .include macro (by Allan Jude) -- Allow searching an array of paths for includes (by Allan Jude) -- Add new .load macro (by Allan Jude) -- Implement .inherit macro (#100) -- Add merge strategies -- Add schema validation to lua API -- Add support for external references to schema validation -- Add coveralls integration to libucl -- Implement tests for 80% of libucl code lines -- Fix tonns of minor and major bugs -- Improve documentation -- Rework function names to the common conventions (old names are preserved for backwards compatibility) -- Add Coverity scan integration -- Add fuzz tests - -**Incompatible changes**: - -- `ucl_object_emit_full` now accepts additional argument `comments` that could be used to emit comments with UCL output - -### Libucl 0.8.1 - -- Create ucl_parser_add_file_full() to be able to specify merge mode and parser type (by Allan Jude) -- C++ wrapper improvements (by @ftilde) -- C++ wrapper: add convenience method at() and lookup() (by Yonghee Kim) -- C++ wrapper: add assignment operator to Ucl class (by Yonghee Kim) -- C++ wrapper: support variables in parser (by Yonghee Kim) -- C++ wrapper: refactoring C++ interface (by Yonghee Kim): - - use auto variables (if possible) - - remove dangling expressions - - use std::set::emplace instead of std::set::insert - - not use std::move in return statement; considering copy elision -- C++ wrapper: fix compilation error and warnings (by Zhe Wang) -- C++ wrapper: fix iteration over objects in which the first value is `false` (by Zhe Wang) -- C++ wrapper: Macro helper functions (by Chris Meacham) -- C++ wrapper: Changing the duplicate strategy in the C++ API (by Chris Meacham) -- C++ wrapper: Added access functions for the size of a UCL_ARRAY (by Chris Meacham) -- Fix caseless comparison -- Fix include when EPERM is issued -- Fix Windows build -- Allow to reserve space in arrays and hashes -- Fix bug with including of empty files -- Move to mum_hash from xxhash -- Fix msgpack on non-x86 -- python: Add support to Python 3 (by Denis Volpato Martins) -- python: Add support for Python 2.6 tests (by Denis Volpato Martins) -- python: Implement validation function and tests (by Denis Volpato Martins) -- python: Added UCL_NULL handling and tests (by Denis Volpato Martins) -- Fix schema validation for patternProperties with object data (by Denis Volpato Martins) -- Remove the dependency on NBBY, add missing <strings.h> include (by Ed Schouten) -- Allow to emit msgpack from Lua -- Performance improvements in Lua API -- Allow to pass opaque objects in Lua API for transparent C passthrough -- Various bugs fixed -- Couple of memory leaks plugged \ No newline at end of file diff --git a/contrib/libucl/FREEBSD-Xlist b/contrib/libucl/FREEBSD-Xlist new file mode 100644 index 000000000000..6d8cb4ff8f5b --- /dev/null +++ b/contrib/libucl/FREEBSD-Xlist @@ -0,0 +1,40 @@ +.github +.gitignore +CMakeLists.txt +ChangeLog.md +Makefile.am +Makefile.unix +Makefile.w32 +README.md +autogen.sh +configure.ac +doc/Makefile.am +doc/api.md +doc/lua_api.md +doc/pandoc.template +examples/ucl_cpp.cc +haskell/hucl.hs +libucl.pc.in +lua/Makefile.am +lua/libucl.rockspec.in +m4/.gitignore +m4/ax_lua.m4 +m4/gcov.m4 +python/MANIFEST.in +python/setup.py +python/src/uclmodule.c +python/tests/__init__.py +python/tests/compat.py +python/tests/test_dump.py +python/tests/test_example.py +python/tests/test_load.py +python/tests/test_validation.py +python/ucl.pyi +src/Makefile.am +stamp-h.in +tests/Makefile.am +utils/CMakeLists.txt +utils/Makefile.am +utils/chargen.c +utils/objdump.c +utils/ucl-tool.c diff --git a/contrib/libucl/FREEBSD-upgrade b/contrib/libucl/FREEBSD-upgrade new file mode 100644 index 000000000000..b80736d7877b --- /dev/null +++ b/contrib/libucl/FREEBSD-upgrade @@ -0,0 +1,39 @@ +# FreeBSD libucl import instruction +# +# At least the following ports are required when importing libucl: +# - devel/autoconf +# - devel/automake +# - devel/git +# - devel/gmake +# - devel/libtool +# +# 1. Vendor import +# +# $ git clone https://github.com/vstakhov/libucl.git /tmp/libucl +# $ cd /tmp/libucl +# $ git checkout <REF_BRANCH_TO_BE_IMPORTED> +# $ cd /usr/src +# $ git checkout vendor/libucl +# $ rsync -va --delete --exclude=.git /tmp/libucl/ /usr/src/contrib/libucl/ +# $ git add . +# $ git commit -m "vendor import libucl <REF_BRANCH_TO_BE_IMPORTED>" +# $ git tag -a vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED> -m "vendor import libucl <REF_BRANCH_TO_BE_IMPORTED>" +# $ git push --follow-tags freebsd vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED> +# +# 2. Test +# +# $ cd /usr/src +# $ git checkout vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED> +# $ ./autogen.sh +# $ ./configure +# $ gmake +# $ gmake check +# $ gmake clean +# +# 3. Merge vendor tree +# +# $ git subtree merge -P contrib/libucl vendor/libucl/<REF_BRANCH_TO_BE_IMPORTED> +# $ sh -c 'for F in `cat FREEBSD-Xlist | grep -v FreeBSD`; do rm -rf ./$F ; done' +# +# Recheck if there were any new files were added which are not necessary in the +# contrib tree. If so, remove them and also add them to the FREEBSD-Xlist file. diff --git a/contrib/libucl/Makefile.am b/contrib/libucl/Makefile.am deleted file mode 100644 index 5b51bcc3b468..000000000000 --- a/contrib/libucl/Makefile.am +++ /dev/null @@ -1,81 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = uthash klib README.md - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = libucl.pc - -if LUA_SUB - LUA_SUBDIR = lua -endif - -COVERAGE_INFO_FILE = $(top_builddir)/coverage.info -COVERAGE_REPORT_DIR = $(top_builddir)/coverage - -.PHONY = coverage-requirement-check clean-coverage-report - -coverage-requirement-check: - @if test ! -e $(GCOV); then \ - echo "Cannot find $(GCOV). Please install gcov."; \ - exit 1; \ - fi - -coverage: coverage-requirement-check clean-coverage coverage-build coverage-check coverage-report - @echo "Please execute 'make clean' before 'make' or 'make check' to remove instrumented object files(compiled with -O0 etc.). Note that 'make clean' also remove coverage data." - -coverage-build: coverage-requirement-check - @if test `find $(top_builddir) -name "*.gcno" | wc -l` -eq 0; then \ - echo "Start to remove old non-instrumented object files..."; \ - $(MAKE) $(AM_MAKEFLAGS) clean; \ - echo "Successfully removed old non-instrumented object files."; \ - fi - @echo "Start to build libraries with coverage options..." - $(MAKE) $(AM_MAKEFLAGS) \ - CFLAGS="$(CFLAGS) $(COVERAGE_CFLAGS) $(COVERAGE_OPTFLAGS)" \ - CXXFLAGS="$(CXXFLAGS) $(COVERAGE_CXXFLAGS) $(COVERAGE_OPTFLAGS)" \ - LDFLAGS="$(LDFLAGS) $(COVERAGE_LDFLAGS)" \ - LIBS="$(LIBS) $(COVERAGE_LIBS)" - @echo "Successfully built libraries with coverage options." - -coverage-check: coverage-requirement-check - @echo "Start to run tests with instrumented libraries..." - $(MAKE) $(AM_MAKEFLAGS) check \ - CFLAGS="$(CFLAGS) $(COVERAGE_CFLAGS) $(COVERAGE_OPTFLAGS)" \ - CXXFLAGS="$(CXXFLAGS) $(COVERAGE_CXXFLAGS) $(COVERAGE_OPTFLAGS)" \ - LDFLAGS="$(LDFLAGS) $(COVERAGE_LDFLAGS)" \ - LIBS="$(LIBS) $(COVERAGE_LIBS)" - @echo "Successfully run tests with instrumented libraries." - -coverage-lcov: coverage-check coverage-requirement-check - $(LCOV) --capture \ - --directory "$(top_builddir)/" \ - --output-file $(COVERAGE_INFO_FILE) \ - --gcov-tool $(GCOV) \ - --compat-libtool --checksum - $(LCOV) --extract $(COVERAGE_INFO_FILE) `pwd`/src/ucl_\* \ - --output-file $(COVERAGE_INFO_FILE) - -coverage-report: coverage-lcov - @echo "Start to create coverage reports..." - $(GENHTML) --prefix "$(top_srcdir)" \ - --output-directory $(COVERAGE_REPORT_DIR) \ - --title $(PACKAGE_NAME) \ - --legend --show-details \ - $(GENHTML_OPTIONS) \ - $(COVERAGE_INFO_FILE) - @echo "Successfully created coverage reports into $(COVERAGE_REPORT_DIR) directory." - -clean-coverage-report: - -rm -rf $(COVERAGE_INFO_FILE) - -rm -rf $(COVERAGE_REPORT_DIR) - -clean-coverage: clean-coverage-report - -$(LCOV) --gcov-tool $(GCOV) --zerocounters --directory $(top_builddir) - @if xargs --version 2>/dev/null; then \ - find $(top_builddir) -name "*.gcno" | xargs --no-run-if-empty rm; \ - else \ - find $(top_builddir) -name "*.gcno" | xargs rm; \ - fi - -clean-local: clean-coverage - -SUBDIRS = src tests utils doc $(LUA_SUBDIR) diff --git a/contrib/libucl/Makefile.unix b/contrib/libucl/Makefile.unix deleted file mode 100644 index 0653d4843f7e..000000000000 --- a/contrib/libucl/Makefile.unix +++ /dev/null @@ -1,89 +0,0 @@ -CC ?= gcc -DESTDIR ?= /usr/local -LD ?= gcc -C_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src -I./klib -MAJOR_VERSION = 0 -MINOR_VERSION = 2 -PATCH_VERSION = 9 -VERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)" -SONAME = libucl.so -SONAME_FULL = $(SONAME).$(MAJOR_VERSION) -OBJDIR ?= .obj -TESTDIR ?= tests -SRCDIR ?= src -INCLUDEDIR ?= include -MKDIR ?= mkdir -INSTALL ?= install -RM ?= rm -RMDIR ?= rmdir -LN ?= ln -LD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm -LD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl -LD_ADD ?= -lrt -COPT_FLAGS ?= -O2 -HDEPS = $(SRCDIR)/ucl_hash.h \ - $(SRCDIR)/ucl_chartable.h \ - $(SRCDIR)/ucl_internal.h \ - $(INCLUDEDIR)/ucl.h \ - $(SRCDIR)/mum.h -OBJECTS = $(OBJDIR)/ucl_hash.o \ - $(OBJDIR)/ucl_util.o \ - $(OBJDIR)/ucl_parser.o \ - $(OBJDIR)/ucl_emitter.o \ - $(OBJDIR)/ucl_schema.o - -all: $(OBJDIR) $(OBJDIR)/$(SONAME) - -$(OBJDIR)/$(SONAME): $(OBJDIR)/$(SONAME_FULL) - $(LN) -sf $(SONAME_FULL) $(OBJDIR)/$(SONAME) - -$(OBJDIR)/$(SONAME_FULL): $(OBJECTS) - $(CC) -o $(OBJDIR)/$(SONAME_FULL) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS) - -$(OBJDIR): - @$(MKDIR) -p $(OBJDIR) - -# Compile rules -$(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c -$(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c -$(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c -$(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c -$(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c - -clean: - $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME_FULL) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate $(OBJDIR)/test_schema || true - $(RMDIR) $(OBJDIR) - -# Utils - -chargen: utils/chargen.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c -objdump: utils/objdump.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS) - -# Tests - -test: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate $(OBJDIR)/test_schema - -run-test: test - TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate $(OBJDIR)/test_schema - -$(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS) -$(OBJDIR)/test_schema: $(TESTDIR)/test_schema.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/test_schema $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_schema.c $(LD_UCL_FLAGS) -$(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/test_speed $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_speed.c $(LD_UCL_FLAGS) $(LD_ADD) -$(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/test_generate $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_generate.c $(LD_UCL_FLAGS) $(LD_ADD) - -install: $(OBJDIR)/$(SONAME) - $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME) - $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h - -.PHONY: clean $(OBJDIR) diff --git a/contrib/libucl/Makefile.w32 b/contrib/libucl/Makefile.w32 deleted file mode 100644 index 5d9398bf1988..000000000000 --- a/contrib/libucl/Makefile.w32 +++ /dev/null @@ -1,92 +0,0 @@ -CC ?= gcc -DESTDIR ?= /usr/local -LD ?= gcc -C_COMMON_FLAGS ?= -fPIC -Wall -W -Wno-unused-parameter -Wno-pointer-sign -I./include -I./uthash -I./src -MAJOR_VERSION = 0 -MINOR_VERSION = 2 -PATCH_VERSION = 9 -VERSION = "$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_VERSION)" -SONAME = libucl.dll -OBJDIR ?= .obj -TESTDIR ?= tests -SRCDIR ?= src -INCLUDEDIR ?= include -MKDIR ?= mkdir -INSTALL ?= install -RM ?= rm -RMDIR ?= rmdir -ifeq (Windows_NT, $(OS)) -LN ?= ln -else -LN ?= rem ln -endif -LD_SHARED_FLAGS ?= -Wl,-soname,$(SONAME) -shared -lm -LD_UCL_FLAGS ?= -L$(OBJDIR) -Wl,-rpath,$(OBJDIR) -lucl -LD_ADD ?= -lrt -COPT_FLAGS ?= -O2 -HDEPS = $(SRCDIR)/ucl_hash.h \ - $(SRCDIR)/ucl_chartable.h \ - $(SRCDIR)/ucl_internal.h \ - $(INCLUDEDIR)/ucl.h \ - $(SRCDIR)/mum.h -OBJECTS = $(OBJDIR)/ucl_hash.o \ - $(OBJDIR)/ucl_util.o \ - $(OBJDIR)/ucl_parser.o \ - $(OBJDIR)/ucl_emitter.o \ - $(OBJDIR)/ucl_emitter_utils.o \ - $(OBJDIR)/ucl_schema.o - -all: $(OBJDIR) $(OBJDIR)/$(SONAME) - -$(OBJDIR)/$(SONAME): $(OBJECTS) - $(CC) -o $(OBJDIR)/$(SONAME) $(OBJECTS) $(LD_SHARED_FLAGS) $(LDFLAGS) $(SSL_LIBS) $(FETCH_LIBS) - -$(OBJDIR): - @$(MKDIR) -p $(OBJDIR) - -# Compile rules -$(OBJDIR)/ucl_util.o: $(SRCDIR)/ucl_util.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_util.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_util.c -$(OBJDIR)/ucl_parser.o: $(SRCDIR)/ucl_parser.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_parser.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_parser.c -$(OBJDIR)/ucl_emitter.o: $(SRCDIR)/ucl_emitter.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_emitter.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter.c -$(OBJDIR)/ucl_emitter_utils.o: $(SRCDIR)/ucl_emitter_utils.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_emitter_utils.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_emitter_utils.c -$(OBJDIR)/ucl_hash.o: $(SRCDIR)/ucl_hash.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_hash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_hash.c -$(OBJDIR)/ucl_schema.o: $(SRCDIR)/ucl_schema.c $(HDEPS) - $(CC) -o $(OBJDIR)/ucl_schema.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/ucl_schema.c -$(OBJDIR)/xxhash.o: $(SRCDIR)/xxhash.c $(HDEPS) - $(CC) -o $(OBJDIR)/xxhash.o $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) -c $(SRCDIR)/xxhash.c - -clean: - $(RM) $(OBJDIR)/*.o $(OBJDIR)/$(SONAME) $(OBJDIR)/$(SONAME) $(OBJDIR)/chargen $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/objdump $(OBJDIR)/test_generate - $(RMDIR) $(OBJDIR) - -# Utils - -chargen: utils/chargen.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/chargen $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/chargen.c -objdump: utils/objdump.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/objdump $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) utils/objdump.c $(LD_UCL_FLAGS) - -# Tests - -test: $(OBJDIR) $(OBJDIR)/$(SONAME) $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate - -run-test: test - TEST_DIR=$(TESTDIR) $(TESTDIR)/run_tests.sh $(OBJDIR)/test_basic $(OBJDIR)/test_speed $(OBJDIR)/test_generate - -$(OBJDIR)/test_basic: $(TESTDIR)/test_basic.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/test_basic $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_basic.c $(LD_UCL_FLAGS) -$(OBJDIR)/test_speed: $(TESTDIR)/test_speed.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/test_speed $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_speed.c $(LD_UCL_FLAGS) $(LD_ADD) -$(OBJDIR)/test_generate: $(TESTDIR)/test_generate.c $(OBJDIR)/$(SONAME) - $(CC) -o $(OBJDIR)/test_generate $(CPPFLAGS) $(COPT_FLAGS) $(CFLAGS) $(C_COMMON_FLAGS) $(SSL_CFLAGS) $(FETCH_FLAGS) $(LDFLAGS) $(TESTDIR)/test_generate.c $(LD_UCL_FLAGS) $(LD_ADD) - -install: $(OBJDIR)/$(SONAME) - $(INSTALL) -m0755 $(SONAME) $(DESTDIR)/lib/$(SONAME) - $(INSTALL) -m0644 include/ucl.h $(DESTDIR)/include/ucl.h - -.PHONY: clean $(OBJDIR) diff --git a/contrib/libucl/README.md b/contrib/libucl/README.md deleted file mode 100644 index 53d8a651d73b..000000000000 --- a/contrib/libucl/README.md +++ /dev/null @@ -1,418 +0,0 @@ -# LIBUCL - -[](https://circleci.com/gh/vstakhov/libucl) -[](https://scan.coverity.com/projects/4138) -[](https://coveralls.io/github/vstakhov/libucl?branch=master) - -**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)* - -- [Introduction](#introduction) -- [Basic structure](#basic-structure) -- [Improvements to the json notation](#improvements-to-the-json-notation) - - [General syntax sugar](#general-syntax-sugar) - - [Automatic arrays creation](#automatic-arrays-creation) - - [Named keys hierarchy](#named-keys-hierarchy) - - [Convenient numbers and booleans](#convenient-numbers-and-booleans) -- [General improvements](#general-improvements) - - [Comments](#comments) - - [Macros support](#macros-support) - - [Variables support](#variables-support) - - [Multiline strings](#multiline-strings) - - [Single quoted strings](#single-quoted-strings) -- [Emitter](#emitter) -- [Validation](#validation) -- [Performance](#performance) -- [Conclusion](#conclusion) - -## Introduction - -This document describes the main features and principles of the configuration -language called `UCL` - universal configuration language. - -If you are looking for the libucl API documentation you can find it at [this page](doc/api.md). - -## Basic structure - -UCL is heavily infused by `nginx` configuration as the example of a convenient configuration -system. However, UCL is fully compatible with `JSON` format and is able to parse json files. -For example, you can write the same configuration in the following ways: - -* in nginx like: - -```nginx -param = value; -section { - param = value; - param1 = value1; - flag = true; - number = 10k; - time = 0.2s; - string = "something"; - subsection { - host = { - host = "hostname"; - port = 900; - } - host = { - host = "hostname"; - port = 901; - } - } -} -``` - -* or in JSON: - -```json -{ - "param": "value", - "section": { - "param": "value", - "param1": "value1", - "flag": true, - "number": 10000, - "time": "0.2s", - "string": "something", - "subsection": { - "host": [ - { - "host": "hostname", - "port": 900 - }, - { - "host": "hostname", - "port": 901 - } - ] - } - } -} -``` - -## Improvements to the json notation. - -There are various things that make ucl configuration more convenient for editing than strict json: - -### General syntax sugar - *** 6765 LINES SKIPPED ***