mrkeyoor.com_
Fri 16 Oct 18:51 UTC
Dev Toolsevaluationupdated 11 Oct 2026

solidity review

Solidity is a programming language for contracts that run on Ethereum and other compatible networks. This repository contains its compiler, which turns contract source into executable code for those networks, and is useful for compiler development or detailed debugging.

+6 / 4dstars / 7d
Verdict

Our Solidity source setup failed after 1 second because CMake could not find the required Boost 1.83.0 headers and components, so we have no completed build or test result to recommend from this run. Use a released compiler through an application toolchain for ordinary contract work. Own this C++ environment when compiler contributions or a specific debugging problem justify it, and read code-generation fixes before selecting a release.

We ran it

Lab card: what happened when we ran solidityScreenshot of solidity (soliditylang.org)
Install✗ · 1s
Build—
Repo17468 files~738,884 lines of source · 64.7 MB · 3 CI workflows · tests dir

Answers from our run

Does solidity build from source?

The dependency install failed, and the project has no separate build step. We cloned commit 4a392a0 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use solidity?

Beginners looking for the shortest route to a contract: the README directs them to the browser-based Remix editor.

What are the alternatives to solidity?

solc-js, Foundry. Our Solidity source setup failed after 1 second because CMake could not find the required Boost 1.

Setup2/5Source setup stopped at a documented Boost requirement
Docs4/5Detailed compiler and setup guides sit beyond the short README
Community5/5October 9 push and issue and PR activity through October 11
Maturity4/5Maintained compiler with consequential code-generation patch fixes

Who it’s for

Compiler contributors investigating or changing Solidity's code generation and optimizer.
Tool authors who need the native compiler's JSON interface and can preserve its configuration.
Contract teams reproducing a compiler problem against a specific source revision.

Who it’s NOT for

Beginners looking for the shortest route to a contract: the README directs them to the browser-based Remix editor.
Teams unwilling to provision C++ library requirements: our setup stopped because CMake could not find the required Boost headers and components.
Integrations depending on the experimental language-server mode or Generic Solidity prototype: release v0.8.37 removed both.
Products requiring permissively licensed compiler source: the README specifies GPL-3.0 and separate terms for some included code.

Setup reality

Our sandbox setup for commit 4a392a0 failed after 1 second with exit code 1. CMake could not find Boost headers or its filesystem, unit_test_framework, and program_options components, requiring at least 1.83.0. No build or test result was recorded.

Local compilation needs no wallet, chain connection, or hosted-service credential. Building the compiler source needs CMake, a suitable C++ toolchain, and Boost development libraries. The detailed installation guide lists these requirements, while the README links to that guide.

We used an unprivileged Debian lab-cpp:1 container with 3 CPUs and 8 GB of RAM. Z3 is an optional solver dependency, and packaged compiler routes avoid owning this source environment. To reproduce a released compiler from source, the documentation specifies its release tarball instead of GitHub's generic source archive.

Contract authors usually need a released compiler

To compile a contract, you don't normally need to work inside Solidity's C++ source tree. The README points beginners to Remix, a browser editor, while the installation guide offers standalone compilers and JavaScript bindings. This repository is most useful when you need to inspect how Solidity translates a contract, reproduce a compiler problem, or change that translation. Choosing the source checkout adds an engineering job before your own application work starts.

Our checkout contained 17,468 files and roughly 738,884 source lines, occupying 64.7 MB. That scale is reasonable for a compiler with supporting documentation and regression material, but it's a poor starting point for someone who simply wants to write a token contract. I'd use a released compiler through an application toolchain first. Open this repository when a specific compiler behavior demands investigation or your product needs an integration beyond those packaged routes.

What happened when we ran it

Our run of commit 4a392a0 failed during installation after 1 second, with exit code 1. We cloned it on October 9, 2026, into an unprivileged Debian sandbox using the lab-cpp:1 image, with 3 CPUs and 8 GB of RAM and no secrets. CMake stopped during configuration. The supplied measurement contains no build or test result, so this run supports a setup finding rather than a judgment about compilation speed or compiler correctness.

CMake reported that it could not find Boost, including Boost_INCLUDE_DIR and the filesystem, unit_test_framework, and program_options components. The required minimum was 1.83.0. The call stack points through FindBoost and the repository's EthDependencies file, then ends with configuration incomplete. That's a named dependency failure. It doesn't tell us whether installing Boost would expose another requirement, and it doesn't establish that a correctly provisioned environment would fail.

The sandbox scan found 3 CI workflow files, a tests directory, and no Dockerfile. Those signals show that upstream checking material exists, but they cannot replace a completed local run. Our harness never reached a reported build or test outcome. The immediate next step for a source contributor is to supply the documented Boost development components and repeat configuration, preserving the exact compiler revision and toolchain used.

Boost is documented beyond the short README

The source-build guide lists Boost alongside CMake, Git, and a suitable C++ compiler. The README delegates setup details to that page rather than spelling them out inline. That's an extra click with consequences: a generic C++ container does not promise the library set this repository expects. Our failure is an example of that dependency boundary, not evidence that the project concealed it.

Boost 1.83.0 is the floor named in our failing log. Treat that version and the requested components as environment requirements, rather than assuming any distribution package with Boost in its name will satisfy configuration. The guide also discusses an optional Z3 solver for the SMTChecker, a feature that reasons about contract properties. A source environment should record whether that solver is present, since changing the environment changes which compiler capabilities you can investigate.

Tooling must read errors inside the JSON output

The compiler interface guide recommends standard JSON input and output for automated integrations. It has a consequential detail: compiler errors are reported in the output even when the process terminates successfully. A wrapper that treats process exit status as the whole answer can mistake rejected contract code for successful work. Inspect the error entries and requested artifacts before accepting a compilation result.

Our 1-second failure happened earlier, inside CMake, and says nothing about this interface's behavior. Once you have a compiler, reproducibility also involves the selected EVM target and optimizer settings, both exposed by the JSON interface. Keep those settings with the compiler revision and source inputs. A shared library receiving identical contract text through different configurations is not necessarily producing the same deployment artifact.

Release notes can change the compiler you should trust

Release v0.8.37, published September 10, 2026, documents code-generation fixes affecting memory-byte deletion and custom-error parameter ordering. It also fixes overlapping memory slots for mutually recursive functions in the optimizer. These concern emitted program behavior. For a contract team, reading whether a fix touches its source patterns is more useful than treating a successful compilation as proof that every earlier compiler version was suitable.

The 64.7 MB source checkout isn't the only way to obtain the compiler. The documentation offers packaged routes and specifically directs anyone rebuilding a released compiler to the project's release source tarball, rather than GitHub's generic source archive. That's a practical reproducibility detail. The repository uses GPL-3.0, which also deserves attention if you intend to distribute a modified compiler or incorporate its code into another product. The README points out separate terms for some included code.

October activity supports maintenance, not a green local run

The repository's last push was October 9, 2026, and its open issue and PR queue showed updates through October 11. GitHub reported 837 open issues and PRs. Recent changes concern compiler internals, including calldata handling and intermediate-representation work. Together with the September release, that supports an actively maintained project. The queue count alone cannot tell you how many unresolved defects affect your contracts.

For application work, use Foundry when you need a contract workflow around the compiler, or solc-js when a JavaScript integration is the requirement. Neither is a replacement language compiler implementation, and neither alternative was measured here. I'd take ownership of Solidity's source environment only for compiler contributions, detailed debugging, or an integration that needs it. Start that decision with the concrete obstacle our run found: the checkout couldn't configure without its required Boost components.

Alternatives

ProjectWhat it isPick it when
solc-jsJavaScript bindings around the same Solidity compiler source compiled through Emscripten.pick this instead when your product needs JavaScript access to Solidity compilation rather than a native C++ development checkout.
Foundry gh↗An Ethereum application toolkit with contract workflows and a local development node.pick this instead when writing and exercising contracts is the job, rather than modifying the compiler itself.

What people are saying

  1. [velocity-scout] argotorg/solidity

Sources

  1. Solidity README
  2. Solidity source-build requirements
  3. Compiler standard JSON interface
  4. Solidity v0.8.37 release
  5. Solidity repository activity
  6. solc-js README
  7. Foundry README

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →