From f1eab6a5da77af13a49060e61f0ce1c33c177596 Mon Sep 17 00:00:00 2001 From: Ferdinand Majerech Date: Wed, 6 Aug 2014 16:55:30 +0200 Subject: [PATCH] Updated changelog. --- CHANGES.html | 27 +++++++++++++++++++++++---- CHANGES.rst | 23 +++++++++++++++++++---- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/CHANGES.html b/CHANGES.html index 9bf27be..244da5a 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -348,6 +348,12 @@ ul.auto-toc {

As many people have been using D:YAML from git master since the 0.4 release, each change is prefixed by the year the change was introduced.

diff --git a/CHANGES.rst b/CHANGES.rst index 4c3567c..9512325 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -9,6 +9,8 @@ Breaking changes As many people have been using D:YAML from git master since the 0.4 release, each change is prefixed by the year the change was introduced. +- ``2014`` The ``cdc.d`` build script has been removed; dub is now the only 'official' + way to build D:YAML. - ``2014`` Broke compatibility with all DMD versions before 2.066 - ``2014`` ``Loader`` API depending on ``std.stream`` is now deprecated and will be removed in the next release. @@ -50,18 +52,31 @@ Other improvements input, and UTF-32 inputs can be encoded into UTF-8 in-place without allocating. UTF-16 inputs still need an allocation. This also gets rid of all dchar[]->char[] conversions which were a significant source of GC allocations. +- Various optimizations in ``Reader``/``Scanner``, especially for mostly-ASCII files + containing plain scalars (most common YAML files). Measured speedup of ~80% when + parsing mostly-ASCII + files, slowdown of ~12% for mostly non-ASCII files (all tested files were UTF-8). - Less GC usage during YAML node construction. -- The ``Scanner`` subsystems is now mostly ``@nogc``; it never allocates memory for - token values, using slices into the input buffer instead. +- ``Scanner`` is now mostly ``@nogc``; it never allocates memory for token values, using + slices into the input buffer instead. - Custom, ``@nogc`` UTF decoding/encoding code based on ``std.utf`` to enable more use of ``@nogc`` in D:YAML internals and to improve performance. -- Replaced ``std.stream.EndianStream`` with custom endian-fixing code. +- Less memory allocations during scanning in general, including manual allocations. +- Default ``Constructor``/``Resolver`` are now only constructed if the user doesn't + specify their own. +- Replaced ``std.stream.EndianStream`` with + `tinyendian `_. - D:YAML is now a DUB package. - Removed static data structures such as default Constructor and Resolver. - Compile-time checks for size of data structures that should be small. - Better error messages. - Various refactoring changes, using more 'modern' D features, better tests. -- Updated documentation, examples. +- Updated documentation, examples to reflect changes in 0.5. +- Updated the ``yaml_bench`` example/tool with options to keep the input file in memory + instead of reloading it for repeated parses, and to only benchmark scanning time + instead of the entire parser. +- The ``yaml_gen`` example/tool can now generate strings from user-specified alphabets + which may contain non-ASCII characters. ^^^^^^^^