Update Requirements authored by Serafim Simonov's avatar Serafim Simonov
......@@ -3,4 +3,26 @@ List all general requirements for the configuration DSL.
- There exist global feature selections (CPP_OPTIONS) where some have constraints to packages and other features.
- There exist package specific features (**pkg**_OPTIONS:H)
- Packages may depend on other packages
- In the experiment directory there are two subdirectories containing configuration files:
| Directory | Typical configuration files |
| ------ | ------ |
| Code | SIZE.h, CPP_OPTIONS.h, package specific SIZE and OPTIONS files |
| data | data files, data.pkg |
- SIZE.h — information about underlying computational grod
- package.conf — optional file, where we declare packages used in experiment
- CPP_OPTIONS — contains list of preprocessor options that can enable or disable some simulation aspects
- data files — contain experiment configuration parameters
- data.pkg — optional file, where we enable the usage of additional packages if needed.
1. The DSL must be designed for modelers and model users.
2. As modelers do not use classic IDEs, the DSL must be usable with and embedded in
their standard tool chain, i.e., usable with Vi and Emacs, and integration in Jupyter.
3. The DSL must generate configuration files.
4. The DSL must support Generators for different models.
5. Since the models can be reused, the DSL must provide import functionality.
6. The DSL must not allow specification of invalid parameters
7. The DSL must support specification of units of measurement