Skip to content

Latest commit

 

History

History
241 lines (214 loc) · 10.1 KB

ChangeLog.md

File metadata and controls

241 lines (214 loc) · 10.1 KB

Version history

Libucl 0.9.0

  • 803b588 Breaking: Try to fix streamline embedding
  • 9eddef0 Fix: set p to endptr before checking
  • 25d3f51 Fix broken tests
  • ac644e2 Update makefile.yml
  • 0a5739e Create makefile.yml
  • 987389a Merge branch 'master' into vstakhov-gh-actions
  • 7433904 Import lua code from Rspamd
  • 3912614 Create cmake-multi-platform.yml
  • 3a04c92 lua: Push string with len
  • 2fefed6 Use _WIN32 instead of _MSC_VER
  • aecf17e Avoid build failure trying to create setup.py link if it already exists.
  • 4ef9e6d Add inttypes.h for PRId64
  • dcb43f0 Fix excessive escaping when using ucl_object_fromstring()

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

Libucl 0.8.2

  • .include: also validate priority to be within range
  • Add -W into list of warnings
  • Add ability to add file preprocessors
  • Add ability to pass both the parser and userdata into a macro handler
  • Add missing tests for .gitignore
  • Add more safe guards when trying to insert objects
  • Add some documentation/example about the .priority macro
  • Add tests for single quotes
  • Added CMake compile definitions
  • Added CMake support to build utils
  • Added a fuzzer for OSS-fuzz integration
  • Added a return statement if the string is 0
  • Added default CMake "build" directory to gitignore
  • Added fuzzer for msgpack
  • Adding another fix
  • Adjust example.
  • Allow to test msgpack inputs
  • Another sync
  • Assume gcov absense as a non-fatal error
  • Avoid read when a chunk is ended
  • CMake: Install headers and library.
  • Check for NULL inputs in ucl_object_compare()
  • Cleanup CURL handle after use
  • Cleanup CURL handle after use
  • Convert ucl_hash_insert() from returning int to returning bool.
  • Convert ucl_hash_reserve() from returning int to bool.
  • Do not try to emit single quoted strings in json mode
  • Document single quotes
  • Document ucl_object_iter_chk_excpn().
  • Document usage of ucl_object_iter_chk_excpn().
  • Don't double-escape Lua strings
  • Excercise ucl_object_iter_chk_excpn().
  • Fix '\v' encoding
  • Fix 68d87c362b0d7fbb45f395bfae616a28439e0bbc by setting error to 0 always. Which makes it even uglier.
  • Fix cmake public include install
  • Fix emitting of the bad unicode escapes
  • Fix format strings, add printf attribute to schema functions
  • Fix levels and objects closing
  • Fix load macro with try=true
  • Fix mismerge.
  • Fix mismerge.
  • Fix old issue with parsing numbers
  • Fix processing of the incomplete msgpack objects
  • Fix remain calculations
  • Fix remain lenght calculation that led to assertion failure
  • Fix single quotes emitting
  • Fix spelling and markup errors.
  • Fix typos: replace missmatch with mismatch
  • Fix ucl++ bug where iterators stop on a null field.
  • Fix ucl_util.c not having the prototype for ucl_hash_sort()
  • Fix variables expansion
  • Fix vertical tab handling
  • Fixed Visual Studio compilation error
  • Fixed expanding variables at runtime
  • Fixed linker error
  • Fixed ucl_tool's command line argument parsing
  • Fixing error with installing using pip from git with following command: 'pip install -e git+https://github.com/vstakhov/libucl.git/#egg=ucl
  • Forgot hash sort function
  • Improve ENOMEM handling: handle most of errors while consuructing parser, also extend iterator routines to allow capturing such exception and checking it in the higher level code using new ucl_object_iter_chk_excpn() API.
  • Mark + as unsafe which fixes export a key with + in config mode
  • Modernise the CMake build system slightly.
  • Modernize CMake file with target-based includes.
  • Pass correct pointer to var_handler
  • Port util objdump to Windows (Visual Studio)
  • Port util ucl-tool to Windows
  • Provide inline free(3) wrapper, so it's easier to plug the code into out memory usage tracking framework.
  • Provide inline free(3) wrapper, so it's easier to plug the code into out memory usage tracking framework.
  • Provide priority validation for the .priority macro
  • Put space between "exit" and ().
  • Put space between name of teh function and ().
  • Python build fixes
  • Read data in chunks
  • Remove leak in the test
  • Remove one more bit of unused logic
  • Remove one more stupid assertion
  • Remove unnecessary (and ignored) const from return types.
  • Remove unnecessary std::move from return statement.
  • Remove unused CMake logic and ad -Wno-pointer-sign.
  • Removed dependency from rspamd CMake file
  • Removed null-terminator for input data
  • Rename ENOMEM-safe version of kv_xxx macros from kv_xxx into kv_xxx_safe and put back old version as well (with a big warning in the header file) for a compat purposes.
  • Renamed util binaries to match autotools
  • Replace neat and tidy implementation of kv_xxx() macros using error handling labels with a much uglier implementation using "error code pointer". One man's "ugly" is other man's "pretty", I suppose.
  • Replaced spaces by tabs to match coding style
  • Rework hash table structure to provide pointers and order safety
  • Save chunk in the parser stack
  • Save filename in chunk
  • Split level and flags, add obrace flag, fix msgpack flags
  • Squelch incompatible pointer type warning
  • Support single quoted strings
  • Suppress the [-Wunused-parameter] warning.
  • Sync changes from Rspamd
  • Sync changes from rspamd
  • Sync with Rspamd
  • Understand nan and inf
  • Use safe iterator - avoid leaking memory.
  • docs: fix simple typo, tectual -> textual
  • fix: Changed OpenSSL check inside configure.am
  • fix: Incorrect pointer arithmetics in ucl_expand_single_variable
  • fix: ucl_expand_single_variable doesn't call free
  • lua: Return early when init fails
  • make use of the undocumented flag UCL_PARSER_NO_IMPLICIT_ARRAYS, so that multiple keys are treated as arrays, and special code doesn't have to be added to the Python module to handle it.
  • mypy/stubgen: add typeinterfaces for ucl python module
  • o ucl_object_iterate2() -> ucl_object_iterate_with_error();
  • python: update package to 0.8.1
  • ucl_check_variable: fix out_len on unterminated variable
  • ucl_chunk_skipc: avoid out-of-bounds read
  • ucl_expand_single_variable: better bounds check
  • ucl_expand_variable: fix out-of-bounds read
  • ucl_inherit_handler: fix format string for non-null-terminated strings
  • ucl_lc_cmp is not used outside ucl_hash.c
  • ucl_lex_json_string: fix out-of-bounds read
  • ucl_maybe_parse_number: if there is trailing content, it is not a number
  • ucl_object_copy_internal: null terminate keys
  • ucl_object_copy_internal: use memcpy instead of strdup
  • ucl_object_free is deprecated
  • ucl_parse_value: fix out-of-bounds read
  • ucl_strnstr: fix out-of-bounds read
  • update JSON example to match w/ UCL example