Feb 20, 2017 - The solc command line compiler is a C implementation of the Solidity compiler that can output opcodes for interpretation by the Ethereum Virtual Machine (EVM). Now we want to try compiling a smart contract written in Solidity. Go back to the command prompt and use solc to compile. Remix - Ethereum IDE.
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 36 million developers.
Sign upchriseth released this
As in previous releases, we spent most of the time making Solidity future-proof by further working on the Yul optimizer, the Solidity to Yul (and eWasm) translator and the SMT Checker.
Code generated from Solidity now always includes the version number in the CBOR metadata so that it becomes possible to quickly assess whether a contract might be affected by a compiler bug or not.
Language Features:
callvalue()
instruction does not require payable
anymore.Compiler Features:
msize()
and the Yul optimizer.delete
.this
.for
loops to if
statements.msize()
if msize()
is used.Bugfixes:
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Andrey Bronin, asymmetric, Bhargava Shastry, Christian Parpart, Chris Ward, Daniel Kirchner, Erik Kundt, Guy Lando, Isaac Ibiapina, Jorropo, Leonardo Alt, Mathias Baumann, mingchuan, Rocky, Vedant Agarwala.
If you want to perform a source build, please only use solidity_0.5.9.tar.gz and not the zip provided by github directly.
chriseth released this
This release fixes important but very unlikely bugs and further completes ABIEncoderV2, SMTChecker and Yul and improves the optimizer.
Notably, if ABIEncoderV2 is activated, the ABI decoder will now revert on input with dirty higher order bits instead of ignoring those bits.
Important Bugfixes:
Language Features:
Compiler Features:
contract
type.this
as address.'useLiteralContent'
setting from the compilation input..
as part of identifiers.Bugfixes:
Build System:
--test
/ -t
to isoltest which takes a string that allows filtering unit tests.SOLIDITY_BUILD_DIR
to specify build folder and add --help
usage.We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Bhargava Shastry, Christian Parpart, Chris Ward, Constantin Kloecker, Daniel Kirchner, dm4, Erik Kundt, fnatic, Grant Wuerker, hydai, Ilya Ostrovskiy, Leonardo Alt, Mathias Baumann, mingchuan, rocky, William Entriken
If you want to perform a source build, please only use solidity_0.5.8.tar.gz and not the zip provided by github directly.
chriseth released this
This is a bugfix release for the 0.4.x series that contains backported fixes for important bugs that affected code generation. It also contains a fix that makes the emscripten target compatible with newer browser versions.
Important Bugfixes:
Bugfixes:
If you want to perform a source build, please only use solidity_0.4.26.tar.gz and not the zip provided by github directly.
chriseth released this
This release mainly fixes bugs in the optimizer and in the experimental ABI encoder. For details about the bug, please see the official announcement.
Furthermore, this release also allows you to use Yul as a language option (instead of 'Solidity') in the standard-json-interface.
Important Bugfixes:
Language Features:
Compiler Features:
callvalue()
inside nonpayable function (in the same way that msg.value
already does).yulDetails
).Bugfixes:
type(Contract).name
to multiples of 32.Build System:
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Bhargava Shastry, Christian Parpart, Chris Ward, Constantin Kloecker, Daniel Kirchner, Erik Kundt, Leonardo Alt, Mathias Baumann, SystemGlitch, Taariq Levack
If you want to perform a source build, please only use solidity_0.5.7.tar.gz and not the zip provided by github directly.
chriseth released this
This release mainly fixes an optimizer bug related to multiple shift opcodes that was introduced in the previous release. It is unlikely that any existing contracts are affected, but you should still not use Solidity 0.5.5.
Apart from that, the support for calldata structs and arrays by ABIEncoderV2 is almost finished now, we added some more optimizer rules and added enums and one-dimensional arrays to the SMT checker.
Important Bugfixes:
Language Features:
Compiler Features:
lt
-comparisons with constants.iszero
before jumpi
.pop(expression)
.Bugfixes:
Build System:
If you want to perform a source build, please only use solidity_0.5.6.tar.gz and not the zip provided by github directly.
chriseth released this
This release focuses on the stabilization of the ABIEncoderV2 and the optimizer. We also prepared for the Petersburg release which is the default EVM now and improved the SMT checker, such that it now reports less false positives when using SafeMath
.
You can now activate the experimental Yul optimizer using settings: {optimizer: {enabled: true, details: {yul: true}}}
or in the commandline via solc --optimize-yul
.
Language Features:
string
or bytes
key types.type(C).name
.Compiler Features:
petersburg
as evmVersion
and set as default.-optimize-yul
.extcodehash
as part of Constantinople.SafeMath
.LT
, GT
, AND
and BYTE
.CREATE
and CREATE2
as they are guaranteed to return an address or 0.Bugfixes:
Build System:
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Bhargava Shastry, Christian Parpart, Chris Ward, Daniel Kirchner, David Terry, Erik Kundt, Leo Arias, Leonardo Alt, Mathias Baumann
If you want to perform a source build, please only use solidity_0.5.5.tar.gz and not the zip provided by github directly.
erak released this
This release adds support for calldata structs and packed encoding with ABIEncoderV2. We also introduced some changes to the C API and added support for continuous fuzzing via Google oss-fuzz. In addition to that, we added a new commandline option for improved (colorized) diagnostics formatting.
Language Features:
Compiler Features:
libsolc
/ raw soljson.js
): Introduce solidity_free
method which releases all internal buffers to save memory.--new-reporter
for improved diagnostics formatting--color
and --no-color
for colorized output to be forced (or explicitly disabled).Bugfixes:
storage
.Build System:
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Bhargava Shastry, Christian Reitwiessner, Christian Parpart, Chris Ward, Daniel Kirchner, Erik Kundt, Leo Arias, Leonardo Alt, Mathias Baumann, Mudit Gupta, Shelly Grossman
chriseth released this
This release adds support for accessing the code of a contract type, which will hopefully make the new CREATE2
opcode easier to use. We also added some static analysis features to the compiler, but most changes were done 'under the hood' to pave the way for using the new Yul-based optimizer with ABIEncoderV2.
Language Features:
type(C).creationCode
/ type(C).runtimeCode
.Compiler Features:
Bugfixes:
UnimplementedFeatureError
.dataoffset
and datasize
are literals at parse time and properly take this into account in the optimizer.Build System:
If you want to perform a source build, please only use solidity_0.5.3.tar.gz and not the zip provided by github directly.
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, androlo, Asher, chandan kumar mandal, Christian Parpart, Chris Ward, Daniel Kirchner, Erik Kundt, Evan Saulpaugh, Leonardo Alt, Nick Barry, Paweł Bylica, poiresel, spmvg, Tomek Kopczynski, William Entriken
chriseth released this
This release of the Solidity compiler includes several performance optimizations. These include faster compilation time but also cheaper contracts in some situations. This version also checks for all instances of uninitialized storage references, has some improved error messages and other checks.
You can now create complete contracts in Yul through the support of the Yul object format and the special functions datasize
, dataoffset
and datacopy
.
If you want to perform a source build, please only use solidity_0.5.2.tar.gz and not the zip provided by github directly.
Language Features:
Compiler Features:
--optimize-runs
.datasize
, dataoffset
and datacopy
in standalone assembly mode.Bugfixes:
Build System:
We especially thank all the contributors that made this release possible:
Albert, Alex Beregszaszi, Christian Parpart, Chris Ward, Daniel Kirchner, Erik Kundt, Kevin Kelley, Leonardo Alt, liangdzou, Lionello Lunesu, Mathias Baumann, Ricardo Guilherme Schmidt, Yi Huang, Zacharius
chriseth released this
This release improves the usability of interfaces, fixes some bugs, extends the SMT checker and provides an early preview of the Yul optimizer.
If you want to perform a source build, please only use solidity_0.5.1.tar.gz and not the zip provided by github directly.
Language Features:
Compiler Features:
--optimize
option for assembly mode (--strict-assembly
and --yul
).msg
, tx
and block
member variables.gasleft()
and blockhash()
functions.--assemble
, --strict-assembly
and --yul
commandline options.Bugfixes:
--ast
on empty runtime code.sha3
and suicide
also without a function call.super
when base contract function is not implemented.Build System:
-DLLL=ON
.Solc-Js:
We especially thank all the contributors that made this release possible:
Albert, Alex Beregszaszi, Anurag Dashputre, Chris Purta, Christian Parpart, Chris Ward, Daniel Kirchner, David Lozano Jarque, Erik Kundt, hydai, Javier Tarazaga, Justin Wilson, Lazaridis, Leonardo Alt, liangdzou, mordax, Robert Chung, William Entriken, Yet another codejunkie
Sadly the solC-stable chocolatey package looks to be missing. It's referenced by a lot of existing instructions for getting things setup on Windows.
Edit: Found a solution. Got a copy by installing the latest Windows version of C++ implementation of Ethereum, then set the path in geth according to https://github.com/ethereum/go-ethereum/wiki/Contract-Tutorial#linking-your-compiler-in-geth
Can anyone point me towards where to go for getting the documentation updated or the chocolatey package restored?
Edit 2: Looking for a version of SolC that works with the current master branch build of Geth for Windows.