[WIP] Introduce universal compilation host to execution framework #15802
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
TODO
std::map
instead ofstd::vector
to store compiled contracts in the output.cpp
filessolAssert
bysoltestAssert