DAG is a Fortran 2018 library for creating and manipulating directed acyclic graphs (DAGs). DAG is based on a fork of daglib by Jacob Williams, refactored to add
- A build system and test harness automated by fpm,
- Unit testing written with Vegetables,
- Continuous-integration testing and documentation deployment via GitHub Actions,
- Documentation generated by FORD,
- Runtime assertion-checking using Sourcery, and
- JSON file input/output using jsonff.
DAG includes a topological sort feature, and it generates files in the GraphViz "dot" format.
DAG was developed with the following prerequisite package versions:
- gfortran 10.2.0
- OpenCoarrays 2.9.2
- fpm 0.1.3
- graphviz 2.44.1
Earlier versions might work also.
After installing fpm, clone, build, and test, execute the following in a bash
-like shell:
git clone git@github.com:sourceryinstitute/dag
fpm test --compiler caf --runner "cafrun -n 1"
replacing 1
in the last line with the desired number of images to execute in parallel for
each test. Please report any test failures by submitting an [issue] on the DAG repository.
The jacob-example test provides a short example of the use of dag, including checks
for the expected results. That test also writes the following image to a .pdf
file:
This library is released under a BSD-3 license.