13dcf5eb7SBaptiste Daroussin# Version history 23dcf5eb7SBaptiste Daroussin 33dcf5eb7SBaptiste Daroussin## Libucl 0.5 43dcf5eb7SBaptiste Daroussin 53dcf5eb7SBaptiste Daroussin- Streamline emitter has been added, so it is now possible to output partial `ucl` objects 63dcf5eb7SBaptiste Daroussin- Emitter now is more flexible due to emitter_context structure 74bf54857SBaptiste Daroussin 84bf54857SBaptiste Daroussin### 0.5.1 94bf54857SBaptiste Daroussin- Fixed number of bugs and memory leaks 104bf54857SBaptiste Daroussin 114bf54857SBaptiste Daroussin### 0.5.2 124bf54857SBaptiste Daroussin 134bf54857SBaptiste Daroussin- Allow userdata objects to be emitted and destructed 144bf54857SBaptiste Daroussin- Use userdata objects to store lua function references 154bf54857SBaptiste Daroussin 164bf54857SBaptiste Daroussin### Libucl 0.6 174bf54857SBaptiste Daroussin 184bf54857SBaptiste Daroussin- Reworked macro interface 194bf54857SBaptiste Daroussin 204bf54857SBaptiste Daroussin### Libucl 0.6.1 214bf54857SBaptiste Daroussin 224bf54857SBaptiste Daroussin- Various utilities fixes 238e3b1ab2SBaptiste Daroussin 248e3b1ab2SBaptiste Daroussin### Libucl 0.7.0 258e3b1ab2SBaptiste Daroussin 268e3b1ab2SBaptiste Daroussin- Move to klib library from uthash to reduce memory overhead and increase performance 278e3b1ab2SBaptiste Daroussin 288e3b1ab2SBaptiste Daroussin### Libucl 0.7.1 298e3b1ab2SBaptiste Daroussin 308e3b1ab2SBaptiste Daroussin- Added safe iterators API 318e3b1ab2SBaptiste Daroussin 328e3b1ab2SBaptiste Daroussin### Libucl 0.7.2 338e3b1ab2SBaptiste Daroussin 348e3b1ab2SBaptiste Daroussin- Fixed serious bugs in schema and arrays iteration 3539ee7a7aSBaptiste Daroussin 3639ee7a7aSBaptiste Daroussin### Libucl 0.7.3 3739ee7a7aSBaptiste Daroussin 3811dd9ed6SBaptiste Daroussin- Fixed a bug with macros that come after an empty object 3939ee7a7aSBaptiste Daroussin- Fixed a bug in include processing when an incorrect variable has been destroyed (use-after-free) 40d9f0ce31SBaptiste Daroussin 41d9f0ce31SBaptiste Daroussin### Libucl 0.8.0 42d9f0ce31SBaptiste Daroussin 43d9f0ce31SBaptiste Daroussin- Allow to save comments and macros when parsing UCL documents 44d9f0ce31SBaptiste Daroussin- C++ API 45d9f0ce31SBaptiste Daroussin- Python bindings (by Eitan Adler) 46d9f0ce31SBaptiste Daroussin- Add msgpack support for parser and emitter 47d9f0ce31SBaptiste Daroussin- Add Canonical S-expressions parser for libucl 48d9f0ce31SBaptiste Daroussin- CLI interface for parsing and validation (by Maxim Ignatenko) 49d9f0ce31SBaptiste Daroussin- Implement include with priority 50d9f0ce31SBaptiste Daroussin- Add 'nested' functionality to .include macro (by Allan Jude) 51d9f0ce31SBaptiste Daroussin- Allow searching an array of paths for includes (by Allan Jude) 52d9f0ce31SBaptiste Daroussin- Add new .load macro (by Allan Jude) 53d9f0ce31SBaptiste Daroussin- Implement .inherit macro (#100) 54d9f0ce31SBaptiste Daroussin- Add merge strategies 55d9f0ce31SBaptiste Daroussin- Add schema validation to lua API 56d9f0ce31SBaptiste Daroussin- Add support for external references to schema validation 57d9f0ce31SBaptiste Daroussin- Add coveralls integration to libucl 58d9f0ce31SBaptiste Daroussin- Implement tests for 80% of libucl code lines 59d9f0ce31SBaptiste Daroussin- Fix tonns of minor and major bugs 60d9f0ce31SBaptiste Daroussin- Improve documentation 61d9f0ce31SBaptiste Daroussin- Rework function names to the common conventions (old names are preserved for backwards compatibility) 62d9f0ce31SBaptiste Daroussin- Add Coverity scan integration 63d9f0ce31SBaptiste Daroussin- Add fuzz tests 64d9f0ce31SBaptiste Daroussin 65d9f0ce31SBaptiste Daroussin**Incompatible changes**: 66d9f0ce31SBaptiste Daroussin 67d9f0ce31SBaptiste Daroussin- `ucl_object_emit_full` now accepts additional argument `comments` that could be used to emit comments with UCL output 68*a0409676SBaptiste Daroussin 69*a0409676SBaptiste Daroussin### Libucl 0.8.1 70*a0409676SBaptiste Daroussin 71*a0409676SBaptiste Daroussin- Create ucl_parser_add_file_full() to be able to specify merge mode and parser type (by Allan Jude) 72*a0409676SBaptiste Daroussin- C++ wrapper improvements (by @ftilde) 73*a0409676SBaptiste Daroussin- C++ wrapper: add convenience method at() and lookup() (by Yonghee Kim) 74*a0409676SBaptiste Daroussin- C++ wrapper: add assignment operator to Ucl class (by Yonghee Kim) 75*a0409676SBaptiste Daroussin- C++ wrapper: support variables in parser (by Yonghee Kim) 76*a0409676SBaptiste Daroussin- C++ wrapper: refactoring C++ interface (by Yonghee Kim): 77*a0409676SBaptiste Daroussin - use auto variables (if possible) 78*a0409676SBaptiste Daroussin - remove dangling expressions 79*a0409676SBaptiste Daroussin - use std::set::emplace instead of std::set::insert 80*a0409676SBaptiste Daroussin - not use std::move in return statement; considering copy elision 81*a0409676SBaptiste Daroussin- C++ wrapper: fix compilation error and warnings (by Zhe Wang) 82*a0409676SBaptiste Daroussin- C++ wrapper: fix iteration over objects in which the first value is `false` (by Zhe Wang) 83*a0409676SBaptiste Daroussin- C++ wrapper: Macro helper functions (by Chris Meacham) 84*a0409676SBaptiste Daroussin- C++ wrapper: Changing the duplicate strategy in the C++ API (by Chris Meacham) 85*a0409676SBaptiste Daroussin- C++ wrapper: Added access functions for the size of a UCL_ARRAY (by Chris Meacham) 86*a0409676SBaptiste Daroussin- Fix caseless comparison 87*a0409676SBaptiste Daroussin- Fix include when EPERM is issued 88*a0409676SBaptiste Daroussin- Fix Windows build 89*a0409676SBaptiste Daroussin- Allow to reserve space in arrays and hashes 90*a0409676SBaptiste Daroussin- Fix bug with including of empty files 91*a0409676SBaptiste Daroussin- Move to mum_hash from xxhash 92*a0409676SBaptiste Daroussin- Fix msgpack on non-x86 93*a0409676SBaptiste Daroussin- python: Add support to Python 3 (by Denis Volpato Martins) 94*a0409676SBaptiste Daroussin- python: Add support for Python 2.6 tests (by Denis Volpato Martins) 95*a0409676SBaptiste Daroussin- python: Implement validation function and tests (by Denis Volpato Martins) 96*a0409676SBaptiste Daroussin- python: Added UCL_NULL handling and tests (by Denis Volpato Martins) 97*a0409676SBaptiste Daroussin- Fix schema validation for patternProperties with object data (by Denis Volpato Martins) 98*a0409676SBaptiste Daroussin- Remove the dependency on NBBY, add missing <strings.h> include (by Ed Schouten) 99*a0409676SBaptiste Daroussin- Allow to emit msgpack from Lua 100*a0409676SBaptiste Daroussin- Performance improvements in Lua API 101*a0409676SBaptiste Daroussin- Allow to pass opaque objects in Lua API for transparent C passthrough 102*a0409676SBaptiste Daroussin- Various bugs fixed 103*a0409676SBaptiste Daroussin- Couple of memory leaks plugged