Skip to content
Permalink
Browse files

Changelog for v0.3.0; updated Readme

  • Loading branch information...
flyx committed Mar 22, 2018
1 parent f9bf8fa commit 2017a7c2523499c03b8d7fe06546a5a8bae6476d
Showing with 40 additions and 16 deletions.
  1. +7 −0 Changelog.md
  2. +33 −16 Readme.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
@@ -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

0 comments on commit 2017a7c

Please sign in to comment.
You can’t perform that action at this time.