0.4.0: - FEATURES/IMPROVEMENTS: - API BREAKING: All structs and classes stored directly in YAML nodes (aka custom YAML data types) now need to define the opCmp operator. This is used for duplicate detection instead of AAs (which are broken) and will allow efficient access to data in unordered maps. - API BREAKING: Simplified the Constructor API. Constructor functions now don't need to get Marks through parameters - any exceptions thrown by the constructor functions are caught and wrapped along with Mark info. - Various small improvements in the API documentation. - Updated API documentation, tutorials and examples to match the changes. - Small CDC (build script) improvements. - BUGFIXES: - Fixed compilation with DMD 2.057. - Fixed a bug caused by std.regex changes that broke null value parsing. - Fixed compilation on 32bit. - Various small bugfixes. 0.3.0: - FEATURES/IMPROVEMENTS: - API BREAKING: Removed Node.getToVar as it turned out to be a premature optimization. - API BREAKING: Constructor API for constructing custom YAML data types has been improved to make it easier to load custom classes/structs. See the custom types tutorial and Constructor API documentation. - Node.opIndex now returns a reference to a node. - Added a shortcut alias Node.as for Node.get . Node.as might eventually replace Node.get (in a 1.0 release). - User can now access a string representation of tag of a node. - Nodes now remember their scalar and collection styles between loading and dumping. These are not accessible to user. User can set output styles in Representer. - Updated API documentation to reflect the new changes, added more examples and overall made the documentation more readable. - Improved error messages of exceptions. - Drastically optimized scanning and parsing, decreasing parsing time to about 10% (no precise benchmark comparison with 0.2 at the moment). - Eliminated most GC usage, improving speed and memory usage. - Optimized Dumper for speed, especially when dumping many small files. - Reader has been reimplemented to improve performance. - Many other speed and memory optimizations. - Added a profiling build target and a parsing/dumping benchmark. - Added a random YAML file generator and a YAML file analyzer, as example applications and for benchmarking. - Added a "clean" target to example Makefiles. - Got rid of all global state. - BUGFIXES: - Fixed compatibility issues with DMD 2.056. - Fixed an Emitter bug which caused tags to always be emitted in full format. - Fixed a bug that caused errors when loading documents with YAML version directives. - Fixed many const-correctness bugs. - Minor bugfixes all over the code. - Fixed many documentation bugs. 0.2.0: - FEATURES/IMPROVEMENTS: - Implemented YAML emitter, and related unittests/documentation. - Tags are now stored in nodes, allowing D:YAML to be closer to the specification. - Loader API has been broken to make it more extensible in future - Representer and Constructor are no more specified in the constructor, and the load() shortcut functions have been removed, as all that's needed to load a YAML document now is Loader("file.yaml").load() . - BUGFIXES: - Fixed many bugs in the parser, scanner, composer and constructor.