Developers need to know more than users. For example, they need to know about the test suite, and writing test cases. They need to know how to perform a developer installation. They need to know how to edit and compile this documentation. They need a step-by-step release process.
Every time you add a new feature and/or fix a new and exciting bug, it is a great idea to make sure that the new feature works and/or the bug stays fixed. Fortunately, it is pleasantly easy to add a test case to the testing suite.
<testing> <command_line> </command_line> <arguments> <argument /> <argument /> ... </arguments> <input_xsil_file /> <xsil_file> <moment_group /> <moment_group /> ... </xsil_file> </testing>
All .tmpl files are Cheetah template files. These are used to generate C++ code. These templates are compiled as part of the XMDS2 build process to .py files of the same name. Do not edit the generated .py files, always edit the .tmpl files and regenerate the corresponding .py files with make.
Geometry/: Code for describing the geometry of simulation dimensions and domains. Includes code for Geometry, Field and all DimensionRepresentations.
Operators/: Code for all <operator> elements, including IP, EX and the temporal derivative operator DeltaA.
SimulationDrivers/: Code for all <driver> elements. In particular, this is where the location of MPI and multi-path code.
Vectors/: Code for all <vector> elements, and their initialisation. This includes normal <vector> elements as well as <computed_vector> and <noise_vector> elements.
includes/: C++ header and sources files used by the generated simulations.
waf/: Our included version of the Python configuration and build tool waf.
waf_extensions/: waf tool for compiling Cheetah templates.
xsil2graphics2/: Templates for the output formats supported by xsil2graphics2.
wscript: waf build script for XMDS2 itself.
CodeParser.py: Minimally parses included C++ code for handling nonlocal dimension access, IP/EX operators and IP operator validation.
Configuration.py: Manages configuration and building of generated simulations.
FriendlyPlusStyle.py: Sphinx plug-in to improve formatting of XMDS scripts in user documentation.
This directory also contains code for the input script parser, code blocks, code indentation, and the root _ScriptElement class.
bin/: Executable scripts to be installed as part of XMDS2 (includes xmds2 and xsil2graphics2).
examples/: Example XMDS2 input scripts demonstrating most of XMDS2’s features.
testsuite/: Testsuite of XMDS2 scripts. Run the testsuite by executing ./run_tests.py