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
9 - Fixed number of bugs and memory leaks
13 - Allow userdata objects to be emitted and destructed
14 - Use userdata objects to store lua function references
18 - Reworked macro interface
22 - Various utilities fixes
26 - Move to klib library from uthash to reduce memory overhead and increase performance
30 - Added safe iterators API
34 - Fixed serious bugs in schema and arrays iteration
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)
43 - Allow to save comments and macros when parsing UCL documents
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
65 **Incompatible changes**:
67 - `ucl_object_emit_full` now accepts additional argument `comments` that could be used to emit comments with UCL output