Idea: a release will be a git tag, distributed as an autogenerated
archive (eg. by GitLab release feature).
This version string must therefore be stored in a revisioned file, so we
use `.version` for this purpose. Before tagging a new release this file
will have to be updated with the new version number.
When building gray the revision (shown in the output headers and usage
screen) will be set to either
- the latest commit hash when building from a git checkout,
- from the .version file when building from release archive.
The implementation is based on whether the .git directory is present.
- Avoid logging the same error over and over
- Make all the gray_errors actually warnings
- Replace `large_npl` error with `unstable_beam`, which is actually
the root cause of the former
- Use the gray_main error as exit code
1. Introduces enumerations (and some booleans) intended to replace all
the magic numbers used throughout the code to represent multiple
choices.
2. Replace the gray_params.sh script a new one that automatically
generates code for all the GRAY parameters by parsing
gray_params.f90.
3. Also generate extra code to accept the enum identifiers as valid
values in the configuration files and command line arguments.
4. Set sensible default values for parameters that are rarely changes.
ar does not support multiple builder writing to the same file.
This disable parallel building for .a targets.
See also "Archive Pitfalls" in the GNU Make manual.
When building the static library the Nixpkgs stdenv `ar` defaults to not
writing timestamps for the members file. This imply make will always try
to add all members to the archive, which defeats the purpose of the
file-level granularity.
- Documentation is not built anymore with the default `all` rule to
improve portability. It must be built explicitly with `make docs`.
- Font types are not specified to allow building on systems with a
restricted set of fonts.
- Syntax fixes in the documentation Markdown.
The \+ syntax is not POSIX and supported only by GNU sed.
This changes both the grep and sed commands to use extended regex.
Note: sed -E option is not POSIX either, but widely supported.
- unify the three makefiles into a single generic one
- automatically generate link targets (via the `depend` script)
and object dependencies (via a make rule)
- move all build artifacts under the build/ directory
- replace svn with git for the version information
- add a `static` variable to toggle between static/shared builds
- add a target to build the dependency graph of GRAY modules