1268828Sbapt# Version history
2268828Sbapt
3268828Sbapt## Libucl 0.5
4268828Sbapt
5268828Sbapt- Streamline emitter has been added, so it is now possible to output partial `ucl` objects
6268828Sbapt- Emitter now is more flexible due to emitter_context structure
7275223Sbapt
8275223Sbapt### 0.5.1
9275223Sbapt- Fixed number of bugs and memory leaks
10275223Sbapt
11275223Sbapt### 0.5.2
12275223Sbapt
13275223Sbapt- Allow userdata objects to be emitted and destructed
14275223Sbapt- Use userdata objects to store lua function references
15275223Sbapt
16275223Sbapt### Libucl 0.6
17275223Sbapt
18275223Sbapt- Reworked macro interface
19275223Sbapt
20275223Sbapt### Libucl 0.6.1
21275223Sbapt
22275223Sbapt- Various utilities fixes
23279549Sbapt
24279549Sbapt### Libucl 0.7.0
25279549Sbapt
26279549Sbapt- Move to klib library from uthash to reduce memory overhead and increase performance
27279549Sbapt
28279549Sbapt### Libucl 0.7.1
29279549Sbapt
30279549Sbapt- Added safe iterators API
31279549Sbapt
32279549Sbapt### Libucl 0.7.2
33279549Sbapt
34279549Sbapt- Fixed serious bugs in schema and arrays iteration
35290071Sbapt
36290071Sbapt### Libucl 0.7.3
37290071Sbapt
38314278Sbapt- Fixed a bug with macros that come after an empty object
39290071Sbapt- Fixed a bug in include processing when an incorrect variable has been destroyed (use-after-free)
40298166Sbapt
41298166Sbapt### Libucl 0.8.0
42298166Sbapt
43298166Sbapt- Allow to save comments and macros when parsing UCL documents
44298166Sbapt- C++ API
45298166Sbapt- Python bindings (by Eitan Adler)
46298166Sbapt- Add msgpack support for parser and emitter
47298166Sbapt- Add Canonical S-expressions parser for libucl
48298166Sbapt- CLI interface for parsing and validation (by Maxim Ignatenko)
49298166Sbapt- Implement include with priority
50298166Sbapt- Add 'nested' functionality to .include macro (by Allan Jude)
51298166Sbapt- Allow searching an array of paths for includes (by Allan Jude)
52298166Sbapt- Add new .load macro (by Allan Jude)
53298166Sbapt- Implement .inherit macro (#100)
54298166Sbapt- Add merge strategies
55298166Sbapt- Add schema validation to lua API
56298166Sbapt- Add support for external references to schema validation
57298166Sbapt- Add coveralls integration to libucl
58298166Sbapt- Implement tests for 80% of libucl code lines
59298166Sbapt- Fix tonns of minor and major bugs
60298166Sbapt- Improve documentation
61298166Sbapt- Rework function names to the common conventions (old names are preserved for backwards compatibility)
62298166Sbapt- Add Coverity scan integration
63298166Sbapt- Add fuzz tests
64298166Sbapt
65298166Sbapt**Incompatible changes**:
66298166Sbapt
67298166Sbapt- `ucl_object_emit_full` now accepts additional argument `comments` that could be used to emit comments with UCL output