@@ -9,40 +9,45 @@ Overview
99========
1010
1111DAG is a Fortran 2018 library for creating and manipulating directed acyclic graphs (DAGs).
12- DAG is based on a fork of [ daglib by Jacob Williams] , refactored to add
12+ DAG is based on a fork of [ daglib by Jacob Williams] , refactored to
1313
14- * A build system and test harness automated by [ fpm] ,
15- * Unit testing written with [ Vegetables] ,
16- * Continuous-integration testing and documentation deployment via [ GitHub Actions] ,
17- * Documentation generated by [ FORD] ,
18- * Runtime assertion-checking using [ Assert] , and
19- * [ JSON] file input/output using [ jsonff] .
14+ * Adopt a functional programming pattern based on (mostly) pure function constructors
15+ and component getters but no setters. When compilers cooperate, we recommend using
16+ ` associate ` to assign names to constructor results to avoid unnecessary copies.
17+ * Add build system and test harness automated by [ fpm] ,
18+ * Add unit testing written with [ Vegetables] ,
19+ * Add continuous-integration testing and documentation deployment via [ GitHub Actions] ,
20+ * Add ocumentation generated by [ FORD] ,
21+ * Add runtime assertion-checking using [ Assert] , and
22+ * Add [ JSON] file input/output using [ jsonff] .
2023
21- DAG includes a topological sort feature, and it generates files in the [ GraphViz] "dot" format.
24+ Constructor results contain an private index array that describes a topologically sorting
25+ of the vertices in a DAG.
2226
2327Prerequisites
2428-------------
25- DAG was developed with the following prerequisite package versions:
29+ The [ fpm] package manager automatically downloads and builds all dependencies.
30+ See [ fpm.toml] for a complete list, including version numbers.
2631
27- 1 . [ gfortran] 10.2.0
28- 2 . [ OpenCoarrays] 2.9.2
29- 3 . [ fpm] 0.1.3
30- 4 . [ graphviz] 2.44.1
31-
32- Earlier versions might work also.
33-
34- Building and testing
32+ Downloading, building and testing
3533--------------------
36- After installing [ fpm] , clone, build, and test, execute the following in a ` bash ` -like shell:
34+ With [ fpm] installed, clone
3735```
3836git clone [email protected] :sourceryinstitute/dag 39- fpm test --compiler caf --runner "cafrun -n 1"
4037```
41- replacing ` 1 ` in the last line with the desired number of images to execute in parallel for
42- each test. Also try compiling and running the example with
38+ ### Serial build and testing
39+ Build and test the ` dag ` library with in a ` bash ` -like shell as follows:
40+ ```
41+ fpm test
4342```
44- fpm run --example
43+ ### Parallel building and testing with the gfortran/OpenCoarrays
44+ Build and test the ` dag ` library with in a ` bash ` -like shell as follows:
4545```
46+ fpm test --compiler caf --runner "cafrun -n 2"
47+ ```
48+ replacing ` 2 ` in the last line with the desired number of images to execute in parallel
49+ for each test.
50+
4651Please report any test failures by submitting an [ issue] on the DAG repository.
4752
4853Examples
0 commit comments