@@ -18,44 +18,53 @@ DAG is based on a fork of [daglib by Jacob Williams], refactored to
1818* Add ocumentation generated by [ FORD] ,
1919* Add runtime assertion-checking using [ Assert] , and
2020* Add [ JSON] file input/output using [ jsonff] .
21- * Ensure that DAG objects always have a valid state that includes a topolical ordering stored without mutating vertices or vertex arrays.
21+ * Ensure that dag objects always have a valid state that includes a topological
22+ ordering stored without mutating vertices or vertex arrays.
2223
2324Usage
2425-----
25- When compilers cooperate, we recommend using ` associate ` to assign names to dag's user-defined
26- structure constructor results. See the [ example] subdirectory for demonstrations of how we
27- use ` associate ` instead of the declare-and-define style that is much more common in Fortran
28- and other imperative programming languages. Associating a name instead of declaring an object
29- and then later defining it offers several potential advantages:
26+ When compilers cooperate, we recommend using ` associate ` to assign names to
27+ dag's user-defined structure constructor results. See the [ example]
28+ subdirectory for demonstrations of how we use ` associate ` instead of the
29+ declare-and-define style that is much more common in Fortran
30+ and other imperative programming languages. Associating a name instead of
31+ declaring an object and then later defining it offers several potential
32+ advantages:
3033
3134* It prevents the accidental use of declared-but-undefined data.
3235* It provides immutable state, which in turn
3336 - prevents the mistaken overwriting of data and
3437 - enables some possible compiler optimizations.
3538
36- Caveat emptor : your mileage may vary. Compiler support for ` associate ` is evolving and
37- compiler might or might not exploit optimizatio opportunities. When weird things happen,
38- resort to declaring and subsequently defining objects by assigning a constructor function
39- result to the declared object.
39+ _ Caveat emptor _ : your mileage may vary. Compiler support for ` associate ` is
40+ evolving and compiler might or might not exploit optimizatio opportunities.
41+ When weird things happen, resort to declaring and subsequently defining
42+ objects by assigning a constructor function result to the declared object.
4043
4144Prerequisites
4245-------------
43- The [ fpm] package manager automatically downloads and builds all dependencies.
44- See [ fpm.toml] for a complete list, including version numbers.
46+ The [ fpm] package manager automatically downloads and builds all
47+ dependencies. See [ fpm.toml] for a complete list, including version numbers.
48+
49+ Downloading
50+ -----------
51+ Obtain dag by downloading the [ latest release] or cloning the repository as
52+ follows:
4553
46- Downloading, building and testing
47- --------------------
48- With [ fpm] installed, clone
4954```
5055git clone [email protected] :sourceryinstitute/dag 5156```
52- ### Serial build and testing
53- Build and test the ` dag ` library with in a ` bash ` -like shell as follows:
57+
58+ Building and testing
59+ --------------------
60+ ### Building and testing for serial execution
61+ Build and test ` dag ` in a ` bash ` -like shell as follows:
5462```
5563fpm test
5664```
57- ### Parallel building and testing with the gfortran/OpenCoarrays
58- Build and test the ` dag ` library with in a ` bash ` -like shell as follows:
65+ ### Building and testing for parallel execution
66+ With [ gfortran] and [ OpenCoarrays] installed, build and test ` dag ` in a
67+ ` bash ` -like shell as follows:
5968```
6069fpm test --compiler caf --runner "cafrun -n 2"
6170```
@@ -66,7 +75,6 @@ Please report any test failures by submitting an [issue] on the DAG repository.
6675
6776Examples
6877--------
69-
7078The [ example] subdirectory provides the following examples:
7179
7280* [ print-to-json.f90] - constructs and prints it a JSON representation the DAG.
0 commit comments