1# Version history
2
3## Libucl 0.5
4
5- Streamline emitter has been added, so it is now possible to output partial `ucl` objects
6- Emitter now is more flexible due to emitter_context structure
7
8### 0.5.1
9- Fixed number of bugs and memory leaks
10
11### 0.5.2
12
13- Allow userdata objects to be emitted and destructed
14- Use userdata objects to store lua function references
15
16### Libucl 0.6
17
18- Reworked macro interface
19
20### Libucl 0.6.1
21
22- Various utilities fixes
23
24### Libucl 0.7.0
25
26- Move to klib library from uthash to reduce memory overhead and increase performance
27
28### Libucl 0.7.1
29
30- Added safe iterators API
31
32### Libucl 0.7.2
33
34- Fixed serious bugs in schema and arrays iteration
35
36### Libucl 0.7.3
37
38- Fixed a bug with macros that come after an empty object
39- Fixed a bug in include processing when an incorrect variable has been destroyed (use-after-free)
40
41### Libucl 0.8.0
42
43- Allow to save comments and macros when parsing UCL documents
44- C++ API
45- Python bindings (by Eitan Adler)
46- Add msgpack support for parser and emitter
47- Add Canonical S-expressions parser for libucl
48- CLI interface for parsing and validation (by Maxim Ignatenko)
49- Implement include with priority
50- Add 'nested' functionality to .include macro (by Allan Jude)
51- Allow searching an array of paths for includes (by Allan Jude)
52- Add new .load macro (by Allan Jude)
53- Implement .inherit macro (#100)
54- Add merge strategies
55- Add schema validation to lua API
56- Add support for external references to schema validation
57- Add coveralls integration to libucl
58- Implement tests for 80% of libucl code lines
59- Fix tonns of minor and major bugs
60- Improve documentation
61- Rework function names to the common conventions (old names are preserved for backwards compatibility)
62- Add Coverity scan integration
63- Add fuzz tests
64
65**Incompatible changes**:
66
67- `ucl_object_emit_full` now accepts additional argument `comments` that could be used to emit comments with UCL output