Introduce universal compilation host to execution framework
Description
This PR implements a universal compiler host for running tests with various compilers (etc. the internal compiler aka. CompilerStack or standard JSON compiler).
Details
It introduces some common types for the compiler inputs and its output. A compilation module that wraps the linked / internal compiler was added. It can be used in a newly added universal compiler host. This host is then used inside the test execution framework.
Outlook
The input / output types introduced by this PR were inspired by the SolidityCompilationFramework. In a future PR the universal compiler host could be used there as well.
Ultimately, this PR makes it possible to implement a compilation module for the standard JSON compiler as well and use that in the pipeline.
Thank you for your contribution to the Solidity compiler! A team member will follow up shortly.
If you haven't read our contributing guidelines and our review checklist before, please do it now, this makes the reviewing process and accepting your contribution smoother.
If you have any questions or need our help, feel free to post them in the PR or talk to us directly on the #solidity-dev channel on Matrix.
There was an error when running chk_coding_style for commit f79fbaed6453a28a25f6d1cd338074525c4359cf:
Error: Trailing whitespace found:
test/libsolidity/util/compiler/InternalCompiler.cpp:93:
test/libsolidity/util/compiler/InternalCompiler.cpp:94:
test/libsolidity/util/compiler/InternalCompiler.cpp:95:
test/libsolidity/util/compiler/InternalCompiler.cpp:98: // std::cout << "sourceName: " << sourceName << std::endl;
test/libsolidity/util/compiler/InternalCompiler.cpp:104:
Please check that your changes are working as intended.
Hey @clonker, I'm done reworking this. Would you mind having another look?