From 2017a7c2523499c03b8d7fe06546a5a8bae6476d Mon Sep 17 00:00:00 2001 From: Felix Krause Date: Thu, 22 Mar 2018 21:17:02 +0100 Subject: [PATCH] Changelog for v0.3.0; updated Readme --- Changelog.md | 7 +++++++ Readme.md | 49 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/Changelog.md b/Changelog.md index cb08d4c..0ae5374 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,12 @@ # AdaYaml Changelog +## v0.3.0 + + * Added DOM API + * Fixed several bugs found by fuzzing (#7) + * Removed experimental code from main project and moved it to own project + * Fixed a bug when reading from stdio + ## v0.2.0 * passes all tests of the yaml-test-suite diff --git a/Readme.md b/Readme.md index f573b9c..0a472a5 100644 --- a/Readme.md +++ b/Readme.md @@ -1,20 +1,40 @@ # AdaYaml - YAML 1.3 implementation in Ada -This is an implementation of the upcoming YAML 1.3 standard. This library is -currently under construction. Be wary of errors, I have not even proven it -correct. +This is an implementation of the upcoming YAML 1.3 standard. Since the standard +is not completed yet, some features are due to change. + +You can use it as YAML 1.2 implementation, it will parse almost all valid +YAML 1.2 documents since proposed changes to 1.3 are minimal and only cover edge +cases. ## Status Current YAML test suite status: ``` -Total Tests Run: 224 -Successful Tests: 224 -Failed Assertions: 0 -Unexpected Errors: 0 +Total Tests Run: 249 +Successful Tests: 244 +Failed Assertions: 2 +Unexpected Errors: 3 ``` +The parser is thoroughly tested and only fails test cases that are expected not +to pass in YAML 1.3. Lionel Matias has [fuzzy-tested AdaYaml][3], his findings +have been adressed. Benchmarks of AdaYaml show that it currently uses about +twice the time libyaml uses for parsing large YAML documents. + +The parts of AdaYaml which have not undergone extensive testing are the DOM API +and the Presenter. + +## Installation + +You can install AdaYaml easily by executing + + gprbuild -p -XMode=release yaml.gpr + gprinstall -XMode=release yaml.gpr + +Afterwards, you can `with "yaml";` in your projects. + ## YAML 1.3 Features Status of YAML 1.3 features, taken from [this list][1]: @@ -43,20 +63,16 @@ Status of YAML 1.3 features, taken from [this list][1]: - [x] Have a basic working representer - [x] Test against the YAML test suite - [ ] Implement fancy error reporting (starting line of error with marker) - - [ ] Do some benchmarks + - [x] Do some benchmarks - [ ] Web demo - [ ] Implement UTF-16 and UTF-32 encodings - [ ] Make AdaYaml a drop-in replacement for libyaml (provide the C interface) - [ ] As proof-of-concept, implement the [Transformations extension][2] - - [ ] Maybe provide a DOM API + - [x] Maybe provide a DOM API ## Hacking -These commands may be useful for toying around: - - make adayaml - -This builds the library. Not really useful right now. +You can build the tests with: make test @@ -70,8 +86,8 @@ code coverage from the testsuite: make test-coverage-run -The following builds a small utility that reads a YAML files and outputs a -stream of events to the command line: +The following command builds a small utility that reads a YAML files and outputs +a stream of events to the command line: make utils @@ -87,3 +103,4 @@ To edit the code, you can use GNAT Programming Studio to open the `*.gpr` files. [1]: https://github.com/yaml/summit.yaml.io/wiki/YAML-RFC-Index [2]: https://github.com/yaml/summit.yaml.io/wiki/The-Transformations-Extension + [3]: https://blog.adacore.com/running-american-fuzzy-lop-on-your-ada-code \ No newline at end of file