Since we have Nim 0.15.0 now, NimYAML 0.7.0 follows. This list is relevant for 
upgrading from a previous version:

  * The API has been split over several modules. Importing the [base 
package](http://forum.nim-lang.org///flyx.github.io/NimYAML/yaml.html) imports 
all subpackages, so this change is backwards-compatible. However, you are 
encouraged to import only those parts of the API you need.
  * It is possible to call all loading procs with a `string` instead of a 
`Stream` input. Loading YAML directly from a string will enable NimYAML to 
include correct line content in its parsing exceptions. This is not always 
possible with using Streams, where it will return an empty string instead if 
the line content is not available.
  * The API for writing custom represent/construct procs has changed. 
[representObject](http://forum.nim-lang.org///flyx.github.io/NimYAML/serialization.html#representobject)
 does not return a `YamlStreamEvent` iterator anymore. Instead, the 
implementation shall put its generated event(s) into the 
`SerializationContext`. You have to update existing code if you use that 
functionality.



Major new features are:

  * The serialization API features better checks and error messages in case of 
invalid input. This makes NimYAML feasible for user-written configuration files.
  * Usage of first-class iterators has been removed to make compiling to JS 
possible. However, finishing this is still blocked by a Nim compiler bug, see 
[here](https://github.com/flyx/NimYAML/issues/24).
  * YAML compliance has been improved.



A complete list of changes is available 
[here](https://github.com/flyx/NimYAML/blob/devel/CHANGELOG.md). NimYAML 0.7.0 
requires Nim 0.15.0.

Reply via email to