Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Introduce universal compilation host to execution framework #15802

Draft
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

erak
Copy link
Collaborator

@erak erak commented Jan 31, 2025

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

  • fix remaining end-to-end tests
  • use std::map instead of std::vector to store compiled contracts in the output
  • move function definitions to .cpp files
  • replace solAssert by soltestAssert

Copy link

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.

@erak erak changed the title [WIP] Test: Introduce universal compilation pipeline to execution framework [WIP] Test: Introduce universal compilation host to execution framework Jan 31, 2025
@erak erak changed the title [WIP] Test: Introduce universal compilation host to execution framework [WIP] Introduce universal compilation host to execution framework Jan 31, 2025
@cameel cameel force-pushed the test-invocable-compiler branch from 03084d0 to 44e7475 Compare February 1, 2025 12:54
@cameel cameel force-pushed the test-invocable-compiler branch from 44e7475 to ffde948 Compare February 1, 2025 18:35
@cameel
Copy link
Member

cameel commented Feb 1, 2025

This is weird. I rebased this to get the tests to run (I thought they didn't run originally because the PR is from a fork and maybe out of CCI credits) but they all fail across the board during checkout. Apparently due to permissions to the repo?

@ekpyron ekpyron added the 🟡 PR review label label Feb 3, 2025
@ekpyron
Copy link
Member

ekpyron commented Feb 3, 2025

@erak (once you're back): you should have permissions to post branches in the main repo, that should make CI more well-behaved (I think when there's several CI subscriptions involved or such, there's weird issues otherwise)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants