-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Define a custom CI and add docs for the downstream toolchain
This change also updates the changelog, README (and related files) etc. The custom CI is authored by Anton Baliasnikov <aba@matterlabs.dev> and the rest is authored by Oleksandr Zarudnyi <hedgar2017@gmail.com>.
- Loading branch information
Showing
22 changed files
with
595 additions
and
997 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,39 @@ | ||
--- | ||
name: Bug Report | ||
about: Problems, deficiencies, inaccuracies or crashes discovered on Solidity. | ||
name: Bug report | ||
about: Use this template for reporting issues | ||
title: '' | ||
labels: 'bug :bug:' | ||
labels: bug | ||
assignees: '' | ||
|
||
--- | ||
|
||
<!--## Prerequisites | ||
### 🐛 Bug Report | ||
|
||
#### 📝 Description | ||
|
||
Provide a clear and concise description of the bug. | ||
|
||
#### 🔄 Reproduction Steps | ||
|
||
- First, many thanks for taking part in the community. We really appreciate that. | ||
- We realize there is a lot of information requested here. We ask only that you do your best to provide as much information as possible so we can better help you. | ||
- Support questions are better asked in one of the following locations: | ||
- [Solidity chat](https://gitter.im/ethereum/solidity) | ||
- [Stack Overflow](https://ethereum.stackexchange.com/) | ||
- Ensure the issue isn't already reported. | ||
- The issue should be reproducible with the latest solidity version; however, this isn't a hard requirement and being reproducible with an older version is sufficient. | ||
Steps to reproduce the behaviour | ||
|
||
*Delete the above section and the instructions in the sections below before submitting* | ||
--> | ||
#### 🤔 Expected Behavior | ||
|
||
## Description | ||
Describe what you expected to happen. | ||
|
||
<!--Please shortly describe the bug you have found, and what you expect instead.--> | ||
#### 😯 Current Behavior | ||
|
||
## Environment | ||
Describe what actually happened. | ||
|
||
- Compiler version: | ||
- Target EVM version (as per compiler settings): | ||
- Framework/IDE (e.g. Truffle or Remix): | ||
- EVM execution environment / backend / blockchain client: | ||
- Operating system: | ||
#### 🖥️ Environment | ||
|
||
## Steps to Reproduce | ||
Any relevant environment details. | ||
|
||
<!-- | ||
Please provide a *minimal* source code example to trigger the bug you have found. | ||
Please also mention any command-line flags that are necessary for triggering the bug. | ||
Provide as much information as necessary to reproduce the bug. | ||
#### 📋 Additional Context | ||
|
||
```solidity | ||
// Some *minimal* Solidity source code to reproduce the bug. | ||
// ... | ||
Add any other context about the problem here. If applicable, add screenshots to help explain. | ||
|
||
#### 📎 Log Output | ||
|
||
``` | ||
Paste any relevant log output here. | ||
``` | ||
--> |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,21 @@ | ||
--- | ||
name: Feature Request | ||
about: Ideas, comments or messages asking for a particular functionality to be added | ||
to Solidity. | ||
name: Feature request | ||
about: Use this template for requesting features | ||
title: '' | ||
labels: feature | ||
labels: feat | ||
assignees: '' | ||
|
||
--- | ||
|
||
<!--## Prerequisites | ||
- First, many thanks for taking part in the community. We really appreciate that. | ||
- We realize there is a lot of data requested here. We ask only that you do your best to provide as much information as possible so we can better help you. | ||
- Support questions are better asked in one of the following locations: | ||
- [Solidity chat](https://gitter.im/ethereum/solidity) | ||
- [Stack Overflow](https://ethereum.stackexchange.com/) | ||
- Ensure the issue isn't already reported (check `feature` and `language design` labels). | ||
- If you feel uncertain about your feature request, perhaps it's better to open a language design or feedback forum thread via the issue selector, or by going to the forum directly. | ||
- [Solidity forum](https://forum.soliditylang.org/) | ||
*Delete the above section and the instructions in the sections below before submitting* | ||
--> | ||
|
||
## Abstract | ||
|
||
<!--Please describe by example what problem you see in the current Solidity language and reason about it.--> | ||
|
||
## Motivation | ||
### 🌟 Feature Request | ||
|
||
<!--In this section you describe how you propose to address the problem you described earlier, including by giving one or more exemplary source code snippets for demonstration.--> | ||
#### 📝 Description | ||
|
||
## Specification | ||
Provide a clear and concise description of the feature you'd like to see. | ||
|
||
<!--The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow any developer to implement the functionality.--> | ||
#### 🤔 Rationale | ||
|
||
## Backwards Compatibility | ||
Explain why this feature is important and how it benefits the project. | ||
|
||
<!-- | ||
All language changes that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. | ||
#### 📋 Additional Context | ||
|
||
Please describe how you propose to deal with these incompatibilities. | ||
--> | ||
Add any other context or information about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
name: 'Build' | ||
description: 'Builds solc executable.' | ||
inputs: | ||
release-suffix: | ||
description: 'Release suffix.' | ||
required: false | ||
default: '' | ||
zksync-version: | ||
description: 'Release version.' | ||
required: true | ||
solc-version: | ||
description: 'Solidity version.' | ||
required: true | ||
build-type: | ||
description: 'Build type: candidate or reference' | ||
required: false | ||
default: 'candidate' | ||
extra-args: | ||
description: 'Extra arguments for cmake.' | ||
required: false | ||
default: '' | ||
runs: | ||
using: "composite" | ||
steps: | ||
|
||
- name: Install Boost (MacOS and Linux) | ||
if: runner.os != 'Windows' | ||
shell: bash | ||
env: | ||
BOOST_DOWNLOAD_URL: "https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source" | ||
BOOST_FILENAME: "boost_1_83_0" | ||
run: | | ||
[ ${RUNNER_OS} = macOS ] && PARALLEL=$(sysctl -n hw.ncpu) || PARALLEL=$(nproc) | ||
curl -L -o ${BOOST_FILENAME}.tar.gz "${BOOST_DOWNLOAD_URL}/${BOOST_FILENAME}.tar.gz" | ||
tar xzf "${BOOST_FILENAME}.tar.gz" && cd ${BOOST_FILENAME} | ||
if [ ${RUNNER_OS} = macOS ]; then | ||
if [ ${RUNNER_ARCH} = X64 ]; then | ||
./bootstrap.sh --prefix=${PWD}/boost --with-python-version=2.7 | ||
else | ||
./bootstrap.sh --prefix=${PWD}/boost | ||
fi | ||
else | ||
./bootstrap.sh --prefix=/boost | ||
fi | ||
./b2 link=static runtime-link=static -j${PARALLEL} | ||
./b2 install -j${PARALLEL} | ||
- name: Build solc | ||
shell: ${{ runner.os == 'Windows' && 'msys2 {0}' || 'bash' }} | ||
env: | ||
CXXFLAGS: "-Wno-narrowing" | ||
run: | | ||
set -x | ||
mkdir -p ./build | ||
cd ./build | ||
[ ${RUNNER_OS} = macOS ] && PARALLEL=$(sysctl -n hw.ncpu) || PARALLEL=$(nproc) | ||
if [ ${RUNNER_OS} != Windows ]; then | ||
export BOOST_ROOT=/boost | ||
fi | ||
if [ ${RUNNER_OS} = Linux ]; then | ||
COMPILER_FLAGS="-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++" | ||
fi | ||
if [ ${RUNNER_OS} = Windows ]; then | ||
COMPILER_FLAGS="-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS=-fuse-ld=lld -DUSE_LD_GOLD=OFF" | ||
export LDFLAGS='-lbcrypt -lwsock32 -static' | ||
fi | ||
cmake .. \ | ||
-DCMAKE_BUILD_TYPE="Release" ${COMPILER_FLAGS} \ | ||
-DSOL_VERSION_ZKSYNC="${{ inputs.solc-version }}-${{ inputs.zksync-version }}" \ | ||
-DSOLC_VERSION_ZKEVM="${{ inputs.solc-version }}-${{ inputs.zksync-version }}" \ | ||
-DSOL_VERSION_ZKEVM="${{ inputs.solc-version }}-${{ inputs.zksync-version }}" \ | ||
-DUSE_Z3=OFF \ | ||
-DUSE_CVC4=OFF \ | ||
-DTESTS=0 \ | ||
-DBoost_NO_BOOST_CMAKE=TRUE \ | ||
-DSOLC_LINK_STATIC=1 \ | ||
-DSTATIC_LINKING=1 \ | ||
-DPEDANTIC=OFF ${{ inputs.extra-args}} | ||
if [[ ${{ inputs.solc-version}} == "0.4"* ]]; then | ||
cmake --build . --config Release --parallel ${PARALLEL} --target jsoncpp-project | ||
cmake --build . --config Release --parallel ${PARALLEL} --target range-v3-project | ||
fi | ||
cmake --build . --config Release --parallel ${PARALLEL} --target solc | ||
[ "$RUNNER_OS" = "Windows" ] && WIN_SUFFIX=".exe" | ||
cp ./solc/solc${WIN_SUFFIX} ./solc/solc-${{ inputs.solc-version }}-${{ inputs.build-type }}${WIN_SUFFIX} | ||
- name: Upload binary for testing | ||
if: inputs.release-suffix == '' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: solc-${{ inputs.solc-version }}-${{ inputs.build-type }} | ||
path: ./build/solc/solc-${{ inputs.solc-version }}-${{ inputs.build-type }} | ||
|
||
- name: Prepare binary | ||
if: inputs.release-suffix != '' | ||
shell: ${{ runner.os == 'Windows' && 'msys2 {0}' || 'bash' }} | ||
run: | | ||
[ "$RUNNER_OS" = "Windows" ] && WIN_SUFFIX=".exe" | ||
SOLC_BIN="./build/solc/solc${WIN_SUFFIX}" | ||
mkdir -p ./releases/${{ inputs.release-suffix }} | ||
strip "${SOLC_BIN}" | ||
${SOLC_BIN} --version | ||
mv ${SOLC_BIN} ./releases/${{ inputs.release-suffix }}/solc-${{ inputs.release-suffix }}-${{ inputs.solc-version}}-${{ inputs.zksync-version }}${WIN_SUFFIX} | ||
- name: Upload binary for release | ||
if: inputs.release-suffix != '' | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: release-${{ inputs.release-suffix }} | ||
path: releases |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# What ❔ | ||
|
||
<!-- What are the changes this PR brings about? --> | ||
<!-- Example: This PR adds a PR template to the repo. --> | ||
<!-- (For bigger PRs adding more context is appreciated) --> | ||
|
||
## Why ❔ | ||
|
||
<!-- Why are these changes done? What goal do they contribute to? What are the principles behind them? --> | ||
<!-- Example: PR templates ensure PR reviewers, observers, and future iterators are in context about the evolution of repos. --> | ||
|
||
## Checklist | ||
|
||
<!-- Check your PR fulfills the following items. --> | ||
<!-- For draft PRs check the boxes as you complete them. --> | ||
|
||
- [ ] PR title corresponds to the body of PR (we generate changelog entries from PRs). | ||
- [ ] Tests for the changes have been added / updated. | ||
- [ ] Documentation comments have been added / updated. |
Oops, something went wrong.