xref: /freebsd/contrib/libucl/ChangeLog.md (revision a0409676120c1e558d0ade943019934e0f15118d)
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