Changelog for v0.3.0; updated Readme

This commit is contained in:
Felix Krause 2018-03-22 21:17:02 +01:00
parent f9bf8fae53
commit 2017a7c252
2 changed files with 40 additions and 16 deletions

View File

@ -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

View File

@ -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