Skip to content

torsknod2/ieee1788-ada

Repository files navigation

Ada native implementation of IEEE 1788

Introduction

(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.

Maturity

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.

Status Badges

  • Best Practices
  • CI/ CD
  • Code Coverage
  • Dependency Review
  • Dependabot Updates
  • Average time to resolve an issue
  • Percentage of issues still open

Getting Started

Build and Test

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)

Testing and Analysis

# 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

Coverage reports can be generated in various formats:

  • XCOV+
  • DHTML
  • HTML+
  • SARIF in the gnatcov_out directory. TODO: Describe how.

Documentation

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

Contribute

For detailed information about contributing to this project, please see our CONTRIBUTING.md guide.

Pre-commit Checks

# 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:

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •