compilation overview description

master
Martin Polanka 7 years ago
parent f87ac97a43
commit c6f7c89cac

@ -19,6 +19,12 @@ Follows list of steps which are needed when compiling _Exercise Configuration_ t
* Test Directories Resolver
* Boxes Compiler
First step when the compilation of exercise configuration start is to **merge pipelines** in a particular tests into one directed tree. After that there is list of tests which each contains the tree of all boxes which should be needed for one exercise execution. But the pipelines itself are not connected to variables from environment or exercise config which might be useful further on. Therefore the second step will try to **find variables** referenced in ports of boxes in all trees. At the time we have list of trees but for the execution we need some ordering thus we need to **topologically sort** the trees into basically arrays.
But that is still not all. We still have array of tests but this is undesirable because all tests may contain compilation and generally tasks which can be the same for all tests and can have the same output. So we need component which takes care of that and optimize multiple test trees into one. **Boxes optimizer** is such component which heuristically merge duplicate boxes from different tests and solve appropriate eventual conflicts which might arise. Now carry on, to provide more level of separation to executed solutions, all tests should have their **individual execution folder**. Of course there is consecutive step in compilation to do just that. We have to go through all boxes and to particular port or to be more precise to all concerned variables add its execution folder.
Finally we are at the end of compilation, the last thing which has to be done is **compilation of boxes** itself. Compilation will take the tree from optimizer and crawl all boxes in it. Each box will be compiled in job configuration task, also there has to be resolved assigning of limits to appropriate execution tasks. After that the result of compilation will be _Job Configuration_ structure which can be handed over to backend of ReCodEx.
#### Pipelines Merger
TODO
@ -33,7 +39,7 @@ TODO
#### Boxes Optimizer
To be implemented...
To be implemented... For the time being this feature is implemented only in simple way which just connects test trees into one without any further optimizations.
#### Test Directories Resolver

Loading…
Cancel
Save