How does the online GATB compiler work? - GATB/gatb-core-tuto GitHub Wiki
The online GATB compiler is actually nothing more than a Docker container featuring:
- a Debian 7 Linux OS
- a gcc 4.7 c/c++ compiler
- a pre-compiled GATB-Core library (we use the latest official release of GATB-Core)
- all necessary dependencies required by gcc and GATB-Core
In turn, that Docker container is hosted on the A||GO Platform. This is the Cloud Computing Platform managed by Inria, the French National Research Centre in Computer Sciences, for the purpose of easy scientific software deployments.
Web browser and A||GO Platform exchange data by means of micro web services and JSON.
Now, how it is used by the online lessons?
When you click on the [Compile and Run] button, available on each lesson page, the browser sends the c++ code snippet (contained in the editor) to the A||GO Platform, as well as some hidden additional information (such as a sample data file name).
Then, the GATB-Compiler is invoked by A||GO to compile the code and execute it.
When the job has finished, the browser loads two log files that are automatically displayed in appropriate panels at the bottom of the [Compile and Run] button.