From ab154480fbbbe985fca5ff2f53855117f4117722 Mon Sep 17 00:00:00 2001 From: Ferdinand Majerech Date: Wed, 16 Nov 2011 20:41:21 +0100 Subject: [PATCH] Final commit before tha 0.3 release. --- CHANGES.txt | 66 ++++++++++++++++++++++++ README.html | 28 +++++----- README.rst | 24 +++++---- autoddoc.cfg | 2 +- doc/doctrees/environment.pickle | Bin 12705 -> 12705 bytes doc/html/articles/spec_differences.html | 2 +- doc/html/index.html | 2 +- doc/html/search.html | 2 +- doc/html/tutorials/custom_types.html | 2 +- doc/html/tutorials/getting_started.html | 2 +- doc/html/tutorials/yaml_syntax.html | 2 +- 11 files changed, 101 insertions(+), 31 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 048bd9f..58a572b 100644 --- a/CHANGES.txt +++ b/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: diff --git a/README.html b/README.html index 5c0d14a..aceea86 100644 --- a/README.html +++ b/README.html @@ -4,7 +4,7 @@ -D:YAML 0.2 +D:YAML 0.3 -
-

D:YAML 0.2

+
+

D:YAML 0.3

Introduction

D:YAML is an open source YAML parser and emitter library for the D programming language. It is (almost) -compliant to the YAML 1.1 specification. Much of D:YAML code is based on -PyYAML created by Kirill Simonov. D:YAML has no -external dependencies, all it needs is a D compiler and Phobos (standard -library). It is written in D2 and there are no plans for D1 or Tango support.

-

D:YAML is designed to be as easy to use as possible while supporting the full -feature set of YAML. To start using it in your project, see the +compliant to the YAML 1.1 specification. D:YAML is based on +PyYAML created by Kirill Simonov. It has no external +dependencies, it only needs a D compiler and Phobos (standard library). It is +written in D2 and there are no plans for D1 support.

+

D:YAML is designed to be easy to use while supporting the full feature set of +YAML. To start using it in your project, see the Getting Started tutorial.

-

D:YAML is still a work in progress. Its API is still not stable and there might -be compatibility breaking changes. For instance, currently some D:YAML API +

D:YAML is still a work in progress. Its API is not stable and there might be +compatibility breaking changes. For instance, currently some D:YAML API functions depend on the std.stream module in Phobos. This module is expected to be rewritten in future and D:YAML will change accordingly.

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.
  • +
  • Code examples.
  • No external dependencies.
  • Supports all YAML 1.1 constructs. All examples from the YAML 1.1 specification 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 (plain ASCII also works as it is a subset of UTF-8).
  • Support for both block (Python-like, based on indentation) and flow @@ -351,6 +352,7 @@ scalar tags.
  • 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 code in YAML.
  • +
  • Remembers YAML style information between loading and dumping if possible.
  • There is no support for recursive data structures. There are no plans to implement this at the moment.
diff --git a/README.rst b/README.rst index 9a14336..9f7205e 100644 --- a/README.rst +++ b/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 language. It is (`almost `_) -compliant to the YAML 1.1 specification. Much of D:YAML code is based on -`PyYAML `_ created by Kirill Simonov. D:YAML has no -external dependencies, all it needs is a D compiler and Phobos (standard -library). It is written in D2 and there are no plans for D1 or Tango support. +compliant to the YAML 1.1 specification. D:YAML is based on +`PyYAML `_ created by Kirill Simonov. It has no external +dependencies, it only needs a D compiler and Phobos (standard library). It is +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 -feature set of YAML. To start using it in your project, see the +D:YAML is designed to be easy to use while supporting the full feature set of +YAML. To start using it in your project, see the `Getting Started `_ tutorial. -D:YAML is still a work in progress. Its API is still not stable and there might -be compatibility breaking changes. For instance, currently some D:YAML API +D:YAML is still a work in progress. Its API is not stable and there might be +compatibility breaking changes. For instance, currently some D:YAML API functions depend on the ``std.stream`` module in Phobos. This module is expected 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 -------- -* 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. +* Code examples. * No external dependencies. * Supports all YAML 1.1 constructs. All examples from the YAML 1.1 specification 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 (plain ASCII also works as it is a subset of UTF-8). * 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 the exception of ``tag:yaml.org,2002:yaml``, which is used to represent YAML code in YAML. +* Remembers YAML style information between loading and dumping if possible. * There is no support for recursive data structures. There are no plans to implement this at the moment. diff --git a/autoddoc.cfg b/autoddoc.cfg index 15aea1f..434a5c0 100644 --- a/autoddoc.cfg +++ b/autoddoc.cfg @@ -29,7 +29,7 @@ links = ../index.html Documentation home # Source files or patterns to ignore. Supports regexp syntax. # E.g; To ignore main.d and all source files in the test/ directory, # 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] # Command to use to generate the documentation. diff --git a/doc/doctrees/environment.pickle b/doc/doctrees/environment.pickle index a11ac2aa0d0e309c14b8d0fb14d66f9ac289a4c2..9894b7d00b6ff975046591a9b15a1635930d29a6 100644 GIT binary patch delta 63 zcmZ3OyfAq~tG>}j7TFKo`WedZj+cSV=f1l#bRf*Pd~O&AZ;}zsXQ`cf1T_KB;+{p#x#QQb@=!g)pB#=+3Z%FrOAOY~HT_ GiV*-kHX-2v diff --git a/doc/html/articles/spec_differences.html b/doc/html/articles/spec_differences.html index 71052fa..c859c39 100644 --- a/doc/html/articles/spec_differences.html +++ b/doc/html/articles/spec_differences.html @@ -138,7 +138,7 @@ struct appears in Phobos.

diff --git a/doc/html/index.html b/doc/html/index.html index 8bc3e12..3fc1aac 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -104,7 +104,7 @@
diff --git a/doc/html/search.html b/doc/html/search.html index f6be88a..ca5873c 100644 --- a/doc/html/search.html +++ b/doc/html/search.html @@ -87,7 +87,7 @@
diff --git a/doc/html/tutorials/custom_types.html b/doc/html/tutorials/custom_types.html index 1314f85..e70c374 100644 --- a/doc/html/tutorials/custom_types.html +++ b/doc/html/tutorials/custom_types.html @@ -368,7 +368,7 @@ directory of the D:YAML package.

diff --git a/doc/html/tutorials/getting_started.html b/doc/html/tutorials/getting_started.html index 5586a2c..a6e63b4 100644 --- a/doc/html/tutorials/getting_started.html +++ b/doc/html/tutorials/getting_started.html @@ -237,7 +237,7 @@ example in the example/getting_st diff --git a/doc/html/tutorials/yaml_syntax.html b/doc/html/tutorials/yaml_syntax.html index 81228b5..564a9f1 100644 --- a/doc/html/tutorials/yaml_syntax.html +++ b/doc/html/tutorials/yaml_syntax.html @@ -330,7 +330,7 @@ Some of these might change in the future (especially !!map and !!set).