Page MenuHomeSolus

Initial commit for solidity, verison 0.8.6
Needs ReviewPublic

Authored by GZGavinZhao on Jul 4 2021, 11:34 PM.


Group Reviewers
Triage Team
Maniphest Tasks
T9709: Package Request: Solidity

Resolves T9709

This version (and possibily many versions after this) uses a custom-built cvc4 (version 1.8) because cvc4 will not be included in the official Solus repository (as discussed in T9708). cvc4 is an optional but recommended dependency that is used with SMT checker. cvc4 is first built and installed in the "setup" part, and after that the solidity package will build. Because of this, the cvc4 executable is included with this package.

Some optimization flags and dependency (pkgconfig(cln)) are appended to the build of cvc4 (line 29) after a member of cvc5 kindly provided some suggestions. See cvc5/cvc5#6836 for details.

Test Plan

Successfully built the example projects on the official Solidity documentation page.

Signed-off-by: Gavin Zhao <>

Diff Detail

No Linters Available
No Unit Test Coverage
Build Status
Buildable 1006
Build 1006: arc lint + arc unit

Event Timeline

GZGavinZhao created this revision.Jul 4 2021, 11:34 PM
GZGavinZhao requested review of this revision.Jul 4 2021, 11:34 PM

Pinging @DataDrake for review since this requires CVC4 and more-or-less works around the previous CVC4 rejection rather than waiting on solidity to support CVC5.

  1. Solidity currently has no plan to use cvc5 plus cvc5 is not even out yet, so "waiting" for it might not be a good idea.
  2. As mentioned, cvc4 is an optional dependency, so it's totally fine if we don't want to include that.

Also I noticed I was not using the correct way to include cvc4. I will fix it once we decide on what to do with cvc4.

Um @DataDrake, when you're not busy, could you please share your opinions on this issue?