Final commit before tha 0.3 release.
This commit is contained in:
parent
2c9d464389
commit
ab154480fb
66
CHANGES.txt
66
CHANGES.txt
|
@ -1,3 +1,69 @@
|
||||||
|
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:
|
0.2.0:
|
||||||
|
|
||||||
|
|
||||||
|
|
28
README.html
28
README.html
|
@ -4,7 +4,7 @@
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
|
<meta name="generator" content="Docutils 0.7: http://docutils.sourceforge.net/" />
|
||||||
<title>D:YAML 0.2</title>
|
<title>D:YAML 0.3</title>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -310,36 +310,37 @@ ul.auto-toc {
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="d-yaml-0-2">
|
<div class="document" id="d-yaml-0-3">
|
||||||
<h1 class="title">D:YAML 0.2</h1>
|
<h1 class="title">D:YAML 0.3</h1>
|
||||||
|
|
||||||
<div class="section" id="introduction">
|
<div class="section" id="introduction">
|
||||||
<h1>Introduction</h1>
|
<h1>Introduction</h1>
|
||||||
<p>D:YAML is an open source YAML parser and emitter library for the D programming
|
<p>D:YAML is an open source YAML parser and emitter library for the D programming
|
||||||
language. It is
|
language. It is
|
||||||
(<a class="reference external" href="https://github.com/kiith-sa/D-YAML/wiki/Differences-between-D:YAML-and-the-YAML-specification">almost</a>)
|
(<a class="reference external" href="https://github.com/kiith-sa/D-YAML/wiki/Differences-between-D:YAML-and-the-YAML-specification">almost</a>)
|
||||||
compliant to the YAML 1.1 specification. Much of D:YAML code is based on
|
compliant to the YAML 1.1 specification. D:YAML is based on
|
||||||
<a class="reference external" href="http://www.pyyaml.org">PyYAML</a> created by Kirill Simonov. D:YAML has no
|
<a class="reference external" href="http://www.pyyaml.org">PyYAML</a> created by Kirill Simonov. It has no external
|
||||||
external dependencies, all it needs is a D compiler and Phobos (standard
|
dependencies, it only needs a D compiler and Phobos (standard library). It is
|
||||||
library). It is written in D2 and there are no plans for D1 or Tango support.</p>
|
written in D2 and there are no plans for D1 support.</p>
|
||||||
<p>D:YAML is designed to be as easy to use as possible while supporting the full
|
<p>D:YAML is designed to be easy to use while supporting the full feature set of
|
||||||
feature set of YAML. To start using it in your project, see the
|
YAML. To start using it in your project, see the
|
||||||
<a class="reference external" href="https://github.com/kiith-sa/D-YAML/wiki/Getting-Started">Getting Started</a>
|
<a class="reference external" href="https://github.com/kiith-sa/D-YAML/wiki/Getting-Started">Getting Started</a>
|
||||||
tutorial.</p>
|
tutorial.</p>
|
||||||
<p>D:YAML is still a work in progress. Its API is still not stable and there might
|
<p>D:YAML is still a work in progress. Its API is not stable and there might be
|
||||||
be compatibility breaking changes. For instance, currently some D:YAML API
|
compatibility breaking changes. For instance, currently some D:YAML API
|
||||||
functions depend on the <tt class="docutils literal">std.stream</tt> module in Phobos. This module is expected
|
functions depend on the <tt class="docutils literal">std.stream</tt> module in Phobos. This module is expected
|
||||||
to be rewritten in future and D:YAML will change accordingly.</p>
|
to be rewritten in future and D:YAML will change accordingly.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="features">
|
<div class="section" id="features">
|
||||||
<h1>Features</h1>
|
<h1>Features</h1>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>Easy to use, high-level API and detailed debugging messages.</li>
|
<li>Easy to use, high level API and detailed debugging messages.</li>
|
||||||
<li>Detailed API documentation and tutorials.</li>
|
<li>Detailed API documentation and tutorials.</li>
|
||||||
|
<li>Code examples.</li>
|
||||||
<li>No external dependencies.</li>
|
<li>No external dependencies.</li>
|
||||||
<li>Supports all YAML 1.1 constructs. All examples from the YAML 1.1 specification
|
<li>Supports all YAML 1.1 constructs. All examples from the YAML 1.1 specification
|
||||||
are parsed correctly.</li>
|
are parsed correctly.</li>
|
||||||
<li>Read and write from/to YAML files as well as memory or user defined streams.</li>
|
<li>Reads from and writes to YAML files as well as memory or user defined streams.</li>
|
||||||
<li>UTF-8, UTF-16 and UTF-32 encodings are supported, both big and little endian
|
<li>UTF-8, UTF-16 and UTF-32 encodings are supported, both big and little endian
|
||||||
(plain ASCII also works as it is a subset of UTF-8).</li>
|
(plain ASCII also works as it is a subset of UTF-8).</li>
|
||||||
<li>Support for both block (Python-like, based on indentation) and flow
|
<li>Support for both block (Python-like, based on indentation) and flow
|
||||||
|
@ -351,6 +352,7 @@ scalar tags.</li>
|
||||||
<li>All tags (data types) described at <a class="reference external" href="http://yaml.org/type/">http://yaml.org/type/</a> are supported, with
|
<li>All tags (data types) described at <a class="reference external" href="http://yaml.org/type/">http://yaml.org/type/</a> are supported, with
|
||||||
the exception of <tt class="docutils literal">tag:yaml.org,2002:yaml</tt>, which is used to represent YAML
|
the exception of <tt class="docutils literal">tag:yaml.org,2002:yaml</tt>, which is used to represent YAML
|
||||||
code in YAML.</li>
|
code in YAML.</li>
|
||||||
|
<li>Remembers YAML style information between loading and dumping if possible.</li>
|
||||||
<li>There is no support for recursive data structures.
|
<li>There is no support for recursive data structures.
|
||||||
There are no plans to implement this at the moment.</li>
|
There are no plans to implement this at the moment.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
24
README.rst
24
README.rst
|
@ -1,5 +1,5 @@
|
||||||
==========
|
==========
|
||||||
D:YAML 0.2
|
D:YAML 0.3
|
||||||
==========
|
==========
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
@ -9,18 +9,18 @@ Introduction
|
||||||
D:YAML is an open source YAML parser and emitter library for the D programming
|
D:YAML is an open source YAML parser and emitter library for the D programming
|
||||||
language. It is
|
language. It is
|
||||||
(`almost <https://github.com/kiith-sa/D-YAML/wiki/Differences-between-D:YAML-and-the-YAML-specification>`_)
|
(`almost <https://github.com/kiith-sa/D-YAML/wiki/Differences-between-D:YAML-and-the-YAML-specification>`_)
|
||||||
compliant to the YAML 1.1 specification. Much of D:YAML code is based on
|
compliant to the YAML 1.1 specification. D:YAML is based on
|
||||||
`PyYAML <http://www.pyyaml.org>`_ created by Kirill Simonov. D:YAML has no
|
`PyYAML <http://www.pyyaml.org>`_ created by Kirill Simonov. It has no external
|
||||||
external dependencies, all it needs is a D compiler and Phobos (standard
|
dependencies, it only needs a D compiler and Phobos (standard library). It is
|
||||||
library). It is written in D2 and there are no plans for D1 or Tango support.
|
written in D2 and there are no plans for D1 support.
|
||||||
|
|
||||||
D:YAML is designed to be as easy to use as possible while supporting the full
|
D:YAML is designed to be easy to use while supporting the full feature set of
|
||||||
feature set of YAML. To start using it in your project, see the
|
YAML. To start using it in your project, see the
|
||||||
`Getting Started <https://github.com/kiith-sa/D-YAML/wiki/Getting-Started>`_
|
`Getting Started <https://github.com/kiith-sa/D-YAML/wiki/Getting-Started>`_
|
||||||
tutorial.
|
tutorial.
|
||||||
|
|
||||||
D:YAML is still a work in progress. Its API is still not stable and there might
|
D:YAML is still a work in progress. Its API is not stable and there might be
|
||||||
be compatibility breaking changes. For instance, currently some D:YAML API
|
compatibility breaking changes. For instance, currently some D:YAML API
|
||||||
functions depend on the ``std.stream`` module in Phobos. This module is expected
|
functions depend on the ``std.stream`` module in Phobos. This module is expected
|
||||||
to be rewritten in future and D:YAML will change accordingly.
|
to be rewritten in future and D:YAML will change accordingly.
|
||||||
|
|
||||||
|
@ -29,12 +29,13 @@ to be rewritten in future and D:YAML will change accordingly.
|
||||||
Features
|
Features
|
||||||
--------
|
--------
|
||||||
|
|
||||||
* Easy to use, high-level API and detailed debugging messages.
|
* Easy to use, high level API and detailed debugging messages.
|
||||||
* Detailed API documentation and tutorials.
|
* Detailed API documentation and tutorials.
|
||||||
|
* Code examples.
|
||||||
* No external dependencies.
|
* No external dependencies.
|
||||||
* Supports all YAML 1.1 constructs. All examples from the YAML 1.1 specification
|
* Supports all YAML 1.1 constructs. All examples from the YAML 1.1 specification
|
||||||
are parsed correctly.
|
are parsed correctly.
|
||||||
* Read and write from/to YAML files as well as memory or user defined streams.
|
* Reads from and writes to YAML files as well as memory or user defined streams.
|
||||||
* UTF-8, UTF-16 and UTF-32 encodings are supported, both big and little endian
|
* UTF-8, UTF-16 and UTF-32 encodings are supported, both big and little endian
|
||||||
(plain ASCII also works as it is a subset of UTF-8).
|
(plain ASCII also works as it is a subset of UTF-8).
|
||||||
* Support for both block (Python-like, based on indentation) and flow
|
* Support for both block (Python-like, based on indentation) and flow
|
||||||
|
@ -46,6 +47,7 @@ Features
|
||||||
* All tags (data types) described at http://yaml.org/type/ are supported, with
|
* All tags (data types) described at http://yaml.org/type/ are supported, with
|
||||||
the exception of ``tag:yaml.org,2002:yaml``, which is used to represent YAML
|
the exception of ``tag:yaml.org,2002:yaml``, which is used to represent YAML
|
||||||
code in YAML.
|
code in YAML.
|
||||||
|
* Remembers YAML style information between loading and dumping if possible.
|
||||||
* There is no support for recursive data structures.
|
* There is no support for recursive data structures.
|
||||||
There are no plans to implement this at the moment.
|
There are no plans to implement this at the moment.
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ links = ../index.html Documentation home
|
||||||
# Source files or patterns to ignore. Supports regexp syntax.
|
# Source files or patterns to ignore. Supports regexp syntax.
|
||||||
# E.g; To ignore main.d and all source files in the test/ directory,
|
# E.g; To ignore main.d and all source files in the test/ directory,
|
||||||
# you would use: "main.d test/*"
|
# you would use: "main.d test/*"
|
||||||
ignore = test/*, examples/*, docsrc/*, autoddoc/*, yaml.d, unittest.d, cdc.d, dyaml/composer.d, dyaml/event.d, dyaml/parser.d, dyaml/reader.d, dyaml/scanner.d, dyaml/token.d, dyaml/util.d, dyaml/anchor.d, dyaml/emitter.d, dyaml/flags.d, dyaml/serializer.d, dyaml/sharedobject.d, dyaml/tag.d, dyaml/tagdirectives.d, dyaml/queue.d, dyaml/escapes.d, dyaml/fastcharsearch.d
|
ignore = test/*, examples/*, docsrc/*, autoddoc/*, yaml.d, unittest.d, cdc.d, dyaml/composer.d, dyaml/event.d, dyaml/parser.d, dyaml/reader.d, dyaml/scanner.d, dyaml/token.d, dyaml/util.d, dyaml/anchor.d, dyaml/emitter.d, dyaml/flags.d, dyaml/serializer.d, dyaml/zerostring.d, dyaml/tag.d, dyaml/tagdirective.d, dyaml/queue.d, dyaml/escapes.d, dyaml/fastcharsearch.d
|
||||||
|
|
||||||
[DDOC]
|
[DDOC]
|
||||||
# Command to use to generate the documentation.
|
# Command to use to generate the documentation.
|
||||||
|
|
Binary file not shown.
|
@ -138,7 +138,7 @@ struct appears in Phobos.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
||||||
Last updated on Nov 15, 2011.
|
Last updated on Nov 16, 2011.
|
||||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -104,7 +104,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
||||||
Last updated on Nov 15, 2011.
|
Last updated on Nov 16, 2011.
|
||||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -87,7 +87,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
||||||
Last updated on Nov 15, 2011.
|
Last updated on Nov 16, 2011.
|
||||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -368,7 +368,7 @@ directory of the D:YAML package.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
||||||
Last updated on Nov 15, 2011.
|
Last updated on Nov 16, 2011.
|
||||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -237,7 +237,7 @@ example in the <tt class="docutils literal"><span class="pre">example/getting_st
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
||||||
Last updated on Nov 15, 2011.
|
Last updated on Nov 16, 2011.
|
||||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -330,7 +330,7 @@ Some of these might change in the future (especially !!map and !!set).</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
© Copyright 2011, Ferdinand Majerech. Based on PyYAML http://www.pyyaml.org by Kirill Simonov.
|
||||||
Last updated on Nov 15, 2011.
|
Last updated on Nov 16, 2011.
|
||||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Reference in a new issue