Goals for overhaul of all aspects of XML input system
- Dominant language
- C++
- Stars
- 403
- Forks
- 154
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 82
Description
This issue serves to gather requirements and suggestions for revisions to the input system, and also to gather known problems with the existing system. I envisage revising the situation around v4.0.0, i.e. not immediately, but within a year.
Please add comments.
The current system of input settings and overall XML handling is showing strains. From the user perspective, we lack validation, silently ignore typos/errors, lack sufficient defaults, and don't have a way to show all the settings that are set or used by a given input. Many input files specify properties that should be defaults or that we even don't read, e.g. "version" information, although on occasion the version settings are actually important. The inputs are therefore much more cluttered than necessary. As new functionality is added or older/less used functionality is reactivated, this is an increasing problem.
From the computational side, the current implementation lacks separation of responsibilities between object instantiation and input handling making construction of unit tests difficult. There are also no clear docs explaining this aspect of the code or the expected standards, which anyone seeking to add an observable would need to know. We also know the current implementation of XML parsing leaks memory.
Related issues, most of which need to be triaged ahead of a bigger overhaul include:
Relocate command line flags: #146
Input setting validation: #228
Input robustness in Jastrow specification: #282
New capabilities (twist averaging in one input): #147
Defaults: #19 (and really defaults for nearly all settings in the simulation)
Verbosity setting: #404
Contributor guide
Assessment
This issue has not been assessed yet.