Solidity Compiler

Omosuyi Olawole
Coinmonks
3 min readMay 4, 2022

--

An Image of Solidity Compiler

The code written using Solidity is compiled using a solidity compiler which outputs byte code and other artifacts needed for the deployment of the contracts.

Because the Solidity language is still maturing, it is common for new compiler versions to include changes that would fail to compile older programs.

The pragma directive helps avoid compiler failures due to using a newer compiler and to reject compilation with future compiler versions that might introduce incompatible changes. It is used to enable certain compiler features or checks.

A pragma directive is always local to a source file , so you have to add the pragma to all your files if you want to enable it in your whole project.

If you import another file, the pragma from that file does not automatically apply to the importing file.

Here is the synthax for pragma directive.

pragma solidity <>;

The synthax for pragma directive

Here is a sample pragma directive

pragma solidity 0.8.7;

A sample pragma directive

The version number starts with 0, followed by a major build number and a minor build number.
For example, the version number 0.8.7 refers to major build 8 and minor build 7.

Solidity can use a compiler from any build in the version 8 build range. This is a way to tell readers that your program was written for 0.8.7 but will still compile for subsequent version 8 as shown in the image above.

The caret symbol ^ tells solidity that it can use the latest build in a major version range. So to specify a compiler version of greater than or equal to 0.8.7, see the image below.

A compiler version of greater than or equal to 0.8.7

This tells that the source code is written for solidity version 0.8.7 and above.

To specify a compiler version within a range of versions,see the image below.

A compiler version within a range of versions

This tells that the source code is written for Solidity versions of 0.4.0 to 0.8.7.

Although using the caret in the pragma directive provides flexibilty, it is a better practice to drop the caret and tell Solidity exactly what compiler version you expect especially when you are deploying the contract to the mainnet.

# Bonus
How to check the solidity compiler version in Remix.
Click the Solidity icon in the icon panel, as shown in the image below

solidity compiler in Remix.

--

--

Omosuyi Olawole
Coinmonks

My name is Omosuyi Olawole and i am a full-stack web developer with a strong background in front-end and back-end technologies.