4ee2114127
This commit is the culmination of several months of work to decouple Solidity from the webthree-umbrella so that it can be developed in parallel with cpp-ethereum (the Ethereum C++ runtime) and so that even for the Solidity unit-tests there is no hard-dependency onto the C++ runtime. The Tests-over-IPC refactoring was a major step in the same process which was already committed. This commit contains the following changes: - A subset of the CMake functionality in webthree-helpers was extracted and tailored for Solidity into ./cmake. Further cleanup is certainly possible. - A subset of the libdevcore functionality in libweb3core was extracted and tailored for Solidity into ./libdevcore. Further cleanup is certainly possible - The gas price constants in EVMSchedule were orphaned into libevmasm. - Some other refactorings and cleanups were made to sever unnecessary EVM dependencies in the Solidity unit-tests. - TravisCI and Appveyor support was added, covering builds and running of the unit-tests (Linux and macOS only for now) - A bug-fix was made to get the Tests-over-IPC running on macOS. - There are still reliability issues in the unit-tests, which need immediate attention. The Travis build has been flipped to run the unit-tests 5 times, to try to flush these out. - The Emscripten automation which was previously in webthree-umbrella was merged into the TravisCI automation here. - The development ZIP deployment step has been commented out, but we will want to read that ONLY for release branch. Further iteration on these changes will definitely be needed, but I feel these have got to sufficient maturity than holding them back further isn't winning us anything. It is go time :-) |
||
---|---|---|
cmake | ||
deps@f2ede70f33 | ||
docs | ||
libdevcore | ||
libevmasm | ||
liblll | ||
libsolidity | ||
lllc | ||
scripts | ||
solc | ||
test | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
CMakeLists.txt | ||
LICENSE.txt | ||
README.md |
The Solidity Contract-Oriented Programming Language
Useful links
To get started you can find a basic introduction to the language in the Solidity Documentation.
You can start using Solidity in your browser with no need to download or compile anything.
The Solidity Features page contains a list of already completed Solidity feature stories with explanations and demonstrations, it is being updated continuously. More technical information you can find in the Pivotal Tracker.
Solidity is still under development. So please do not hesitate and open an issue in github if you encounter anything strange.
Building
See the Wiki for build instructions, compatibility information and build tips.
How to Contribute
This repository uses the same coding style as all of the cpp-ethereum projects. Please try to align with us in the gitter channel before making larger changes. Any contributions are welcome!