mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Create and update bugs by version list.
This commit is contained in:
parent
291ece2bdb
commit
a7e605a7a1
297
docs/bugs_by_version.json
Normal file
297
docs/bugs_by_version.json
Normal file
@ -0,0 +1,297 @@
|
||||
{
|
||||
"0.1.0": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-07-10"
|
||||
},
|
||||
"0.1.1": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-08-04"
|
||||
},
|
||||
"0.1.2": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-08-20"
|
||||
},
|
||||
"0.1.3": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-09-25"
|
||||
},
|
||||
"0.1.4": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-09-30"
|
||||
},
|
||||
"0.1.5": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-10-07"
|
||||
},
|
||||
"0.1.6": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-10-16"
|
||||
},
|
||||
"0.1.7": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-11-17"
|
||||
},
|
||||
"0.2.0": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2015-12-02"
|
||||
},
|
||||
"0.2.1": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2016-01-30"
|
||||
},
|
||||
"0.2.2": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits",
|
||||
"AncientCompiler"
|
||||
],
|
||||
"released": "2016-02-17"
|
||||
},
|
||||
"0.3.0": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits",
|
||||
"ArrayAccessCleanHigherOrderBits"
|
||||
],
|
||||
"released": "2016-03-11"
|
||||
},
|
||||
"0.3.1": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits"
|
||||
],
|
||||
"released": "2016-03-31"
|
||||
},
|
||||
"0.3.2": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
"CleanBytesHigherOrderBits"
|
||||
],
|
||||
"released": "2016-04-18"
|
||||
},
|
||||
"0.3.3": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin"
|
||||
],
|
||||
"released": "2016-05-27"
|
||||
},
|
||||
"0.3.4": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin"
|
||||
],
|
||||
"released": "2016-05-31"
|
||||
},
|
||||
"0.3.5": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin"
|
||||
],
|
||||
"released": "2016-06-10"
|
||||
},
|
||||
"0.3.6": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"SendFailsForZeroEther"
|
||||
],
|
||||
"released": "2016-08-10"
|
||||
},
|
||||
"0.4.0": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"LibrariesNotCallableFromPayableFunctions"
|
||||
],
|
||||
"released": "2016-09-08"
|
||||
},
|
||||
"0.4.1": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"LibrariesNotCallableFromPayableFunctions"
|
||||
],
|
||||
"released": "2016-09-09"
|
||||
},
|
||||
"0.4.10": {
|
||||
"bugs": [],
|
||||
"released": "2017-03-15"
|
||||
},
|
||||
"0.4.2": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3"
|
||||
],
|
||||
"released": "2016-09-17"
|
||||
},
|
||||
"0.4.3": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage"
|
||||
],
|
||||
"released": "2016-10-25"
|
||||
},
|
||||
"0.4.4": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored"
|
||||
],
|
||||
"released": "2016-10-31"
|
||||
},
|
||||
"0.4.5": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StateKnowledgeNotResetForJumpdest"
|
||||
],
|
||||
"released": "2016-11-21"
|
||||
},
|
||||
"0.4.6": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored"
|
||||
],
|
||||
"released": "2016-11-22"
|
||||
},
|
||||
"0.4.7": {
|
||||
"bugs": [],
|
||||
"released": "2016-12-15"
|
||||
},
|
||||
"0.4.8": {
|
||||
"bugs": [],
|
||||
"released": "2017-01-13"
|
||||
},
|
||||
"0.4.9": {
|
||||
"bugs": [],
|
||||
"released": "2017-01-31"
|
||||
}
|
||||
}
|
43
scripts/update_bugs_by_version.py
Executable file
43
scripts/update_bugs_by_version.py
Executable file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# This script is used to generate the list of bugs per compiler version
|
||||
# from the list of bugs.
|
||||
# It updates the list in place and signals failure if there were changes.
|
||||
# This makes it possible to use this script as part of CI to check
|
||||
# that the list is up to date.
|
||||
|
||||
import os
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
def comp(version_string):
|
||||
return [int(c) for c in version_string.split('.')]
|
||||
|
||||
path = os.path.dirname(os.path.realpath(__file__))
|
||||
with open(path + '/../docs/bugs.json') as bugsFile:
|
||||
bugs = json.load(bugsFile)
|
||||
|
||||
versions = {}
|
||||
with open(path + '/../Changelog.md') as changelog:
|
||||
for line in changelog:
|
||||
m = re.search(r'^### (\S+) \((\d+-\d+-\d+)\)$', line)
|
||||
if m:
|
||||
versions[m.group(1)] = {}
|
||||
versions[m.group(1)]['released'] = m.group(2)
|
||||
|
||||
for v in versions:
|
||||
versions[v]['bugs'] = []
|
||||
for bug in bugs:
|
||||
if 'introduced' in bug and comp(bug['introduced']) > comp(v):
|
||||
continue
|
||||
if comp(bug['fixed']) <= comp(v):
|
||||
continue
|
||||
versions[v]['bugs'] += [bug['name']]
|
||||
|
||||
with open(path + '/../docs/bugs_by_version.json', 'r+') as bugs_by_version:
|
||||
old_contents = bugs_by_version.read()
|
||||
new_contents = json.dumps(versions, sort_keys=True, indent=4)
|
||||
bugs_by_version.seek(0)
|
||||
bugs_by_version.write(new_contents)
|
||||
sys.exit(old_contents != new_contents)
|
@ -31,7 +31,10 @@ set -e
|
||||
REPO_ROOT="$(dirname "$0")"/..
|
||||
SOLC="$REPO_ROOT/build/solc/solc"
|
||||
|
||||
# Compile all files in std and examples.
|
||||
echo "Checking that the bug list is up to date..."
|
||||
"$REPO_ROOT"/scripts/update_bugs_by_version.py
|
||||
|
||||
echo "Compiling all files in std and examples..."
|
||||
|
||||
for f in "$REPO_ROOT"/std/*.sol
|
||||
do
|
||||
|
Loading…
Reference in New Issue
Block a user