(So far partial) Ada native implementation of IEEE 1788 . The goal is to have interval arithmetic support for all:
- integer
- modulo
- delta
- and floating point data types in Ada.
Limitations are given by the operations available for the respective Ada data types.
This library is currently in early implementation, traceability to the
respective standard documents is not provided and even for the implemented
functionality, reviews against the standard have not even begun.
Do not use it not baselined/ unreleased or with a baseline/ release below
1.0.0
in production, even if neither safety- nor security-relevant.
Building and testing requires the following tools to be installed:
- Alire package manager
- GNAT native toolchain
- GPRBuild
- GNATcov (for coverage analysis)
- GNATformat (for code formatting)
- GNATprove (for formal verification)
# Install toolchain via Alire
alr install gnat_native gprbuild gnatcov gnatformat gnatprove
# Validation Build
alr build --validation
# Run formal verification with GNATprove
alr gnatprove --proof=progressive:all --level=4 -j0 --checks-as-errors=on --warnings=error
# Run tests with coverage
cd tests
alr build --validation --stop-after=generation
alr gnatcov instrument --level=stmt+mcdc --dump-trigger=atexit --projects=../ieee1788.gpr
alr build --validation -- --src-subdirs=gnatcov-instr --implicit-with=gnatcov_rts_full
alr run --skip-build --args "aunit_results.xml"
Coverage reports can be generated in various formats:
- XCOV+
- DHTML
- HTML+
- SARIF
in the
gnatcov_out
directory. TODO: Describe how.
The API documentation of the main
branch is available at the
GitHub page.
This documentation is automatically updated on each push to the
main
branch and includes:
- API reference generated by GNATdoc
- TODO: RST formatted developer documentation
- TODO: Test coverage reports
- TODO: Formal verification results
For detailed information about contributing to this project, please see our CONTRIBUTING.md guide.
# Install and run pre-commit hooks
pip install -r requirements.txt
pre-commit run --all-files
If you want to learn more about creating good readme files then refer the following guidelines. You can also seek inspiration from the below readme files: