cannon: Remove support for singlethreaded and 32-bit multithreaded versions#15443
cannon: Remove support for singlethreaded and 32-bit multithreaded versions#15443
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #15443 +/- ##
===========================================
- Coverage 46.76% 45.95% -0.81%
===========================================
Files 1286 1279 -7
Lines 106661 105478 -1183
===========================================
- Hits 49875 48474 -1401
- Misses 53262 53515 +253
+ Partials 3524 3489 -35
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
dce24f2 to
2f55f1a
Compare
55e93a2 to
2178914
Compare
c4049bf to
7d8239a
Compare
|
@mbaxter I think I've come unstuck on this one. It's failing in the contract tests (https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/87722/workflows/9d9cfc81-5c44-4ee6-953e-14234977d6b0/jobs/3455600) because of a memory alignment problem. I think that's because it's running Any chance you could give me some hints? We could extend this to remove the 32-bit solidity implementations as well but we don't have a MIPS64.t.sol so not sure if we need to migrate some more solidity tests over to 64 bit to maintain coverage. |
Yeah - looks like the Looks like we will have to go ahead and remove the 32-bit solidity MIPS tests, which probably mean we should just go ahead and cut out the 32-bit contracts here as well.
We moved away from solidity tests because they're hard to work with and provide less coverage (no way to do differential testing in solidity). These tests have been implemented as differential tests in |
de9d230 to
6c3e3ca
Compare
|
Ok, got this passing everything by deleting the 32-bit solidity implementations and their tests as well and changing mipsVersion from 1 to 6 in about a bajillion places. We're going to need to follow up with some way to avoid having such an insane number of places hard code the latest mips version, but I think this PR is already way too big. The test failures show very clearly what needs to be updated when the state version updates, it's just time consuming to go around them all. |
6a4524f to
64800e1
Compare
|
The failing tests are all ones that connect to an external node and something seems to have changed with that node causing failures. Getting similar failures on develop as well: https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/87917/workflows/b9c2ee0b-e389-4d01-92ca-8513fea99541/jobs/3462290 |
|
lgtm - if it's helpful, I rebased and pushed a few more small fixes here. |
64800e1 to
e14b4c5
Compare
axelKingsley
left a comment
There was a problem hiding this comment.
LGTM, I focused on the circle ci file, as the rest has had attention from the proofs team. Left one question but otherwise G2G.
… test is always skipped on 64-bit.
Sanitize op-program 64-bit.
622c7af to
aa00e6a
Compare
…rsions (ethereum-optimism#15443) * cannon: Remove support for singlethreaded and 32-bit multithreaded cannon versions. * Update build-prestates.sh to handle some versions not having a cannon32 variant. * Stop building 32 bit prestate * op-e2e: Remove st cannon tests. Switch default to cannon MT. * cannon: Remove cannon stf diff check for singlethreaded vm. There is no singlethreaded vm in develop anymore so no need to check its compatible. * Don't copy out st cannon meta.json * Stop analysis op-program for 32-bit compatibility. * Remove mipsevm tests. They were only run for 32bit. * op-e2e: Always use cannon mt prestates and variant. * cannon: There are no states that can be JSON marshalled. * cannon: Remove go patching. * ci: Remove build step for MIPS tests. * cannon: Remove conditional build comment, restore test helper methods. * ci: Only run cannon lint and test for 64 bit. * Remove RunVMTests_OpenMips - the OpenMIPS tests were removed and this test is always skipped on 64-bit. * contracts: Only build single ffi - no need for a separate cannon64 build. * cannon: Remove 32-bit solidity implementations. * cannon: Load MIPS64 abi * cannon: Remove support for 32bit vms when loading artifacts for tests. * cannon: Update deployment scripts to only support cannon MT. * cannon: Update mips version in a lot of places. * Fix another mipsVersion * Format * Fix more mipsVersions * Fix test * Fix mipsVersion for TestImplementations * Cut cannon64 --tags * Don't build op-program for mips32 * Simplify cannon diff task - assume 64-bit * op-program: Don't copy 32-bit elf * op-e2e: Use cannon64 as default VM. Sanitize op-program 64-bit. --------- Co-authored-by: mbaxter <meredith@oplabs.co>
Description
Governance has now approved 64 bit cannon so it should be used for all deployments going forward and we can remove support for the single threaded and 32-bit multithreaded versions. This is a pretty brute force removal - all the build tags are removed (though things like the
Wordalias are preserved). Lots of things still have 64 and multithreaded in the name which isn't really necessary anymore. We can choose if we want to do all those renames in follow up PRs.Builds on #15487
Tests
Removed lots.
Metadata
Part of #13447