Commit Graph

748 Commits

Author SHA1 Message Date
Kamil Śliwak
6c28120f19 Move CallGraph structure to a separate module 2021-02-23 10:47:02 +01:00
Kamil Śliwak
769a7687c6 Make CompilerStack::contractDefinition() public 2021-02-23 10:47:02 +01:00
Mathias Baumann
53d70dec57 CompilerStack: Build call graphs in the analysis phase 2021-02-23 10:46:28 +01:00
Kamil Śliwak
529495c530 CompilerStack: Typo in a comment 2021-02-23 10:29:12 +01:00
Kamil Śliwak
e27afe93a9 CompilerStack: Fix style on local variable name 2021-02-23 10:29:12 +01:00
Djordje Mijovic
68a4efb2e7 Refactor overwriteRelease flag.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2021-02-12 10:37:59 +01:00
chriseth
a72ab1c9c1 Replace "runtime" by "deployed" naming. 2021-02-10 00:56:16 +01:00
chriseth
9b20c9840a
Merge pull request #10885 from ethereum/heuristic-revamp
Yul Backend: Get rid of heuristics for finding the matching runtime
2021-02-10 00:49:56 +01:00
Daniel Kirchner
cb74a45fd6 Add inlining for old optimizer. 2021-02-09 19:08:58 +01:00
Mathias Baumann
e4f1257c83 Yul Backend: Get rid of heuristics for finding the matching runtime 2021-02-09 14:50:25 +01:00
Leonardo Alt
3b23cadbdc Add CLI and JSON option to select SMTChecker targets 2021-01-20 17:35:37 +01:00
Suriyaa Sundararuban
8649df169d
Update Natspec documentation URL 2020-12-27 14:55:40 +01:00
Alex Beregszaszi
953d18c6cb Output runtime object in IR 2020-12-16 19:23:10 +00:00
chriseth
561280a5cc Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 11:33:40 +01:00
Alex Beregszaszi
bcaefb57b8 Add evmAssembly and evmRuntimeAssembly pointer in CompilerStack
This is a preparation for allowing those outputs to be served from the IR too
2020-12-11 14:53:29 +00:00
Alex Beregszaszi
98d8174d31 Simplify Compiler/CompilerContext by removing extra layers of indirection 2020-12-11 14:43:51 +00:00
chriseth
482bda6887 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-10 12:15:52 +01:00
Daniel Kirchner
e691b7402a Move standard-json "modelCheckerSettings" key to "settings.modelChecker". 2020-12-09 15:53:32 +01:00
chriseth
b18c76e34b Merge remote-tracking branch 'origin/develop' into breaking 2020-12-09 15:24:49 +01:00
Alex Beregszaszi
47b10fd751 Report warning if contract uses abicoder v1, but IR is requested 2020-12-09 01:20:58 +00:00
chriseth
806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
Alex Beregszaszi
7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth
b045195c1e Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 17:42:31 +01:00
chriseth
759db0e646 Properly filter requested artefacts inside the EVM objects. 2020-12-07 22:03:06 +01:00
chriseth
d56a7bb89e
Merge pull request #10489 from ethereum/develop
Merge develop into breaking.
2020-12-03 18:11:12 +01:00
chriseth
27e44b85e3
Merge pull request #10419 from ethereum/bug-namesimplifier
Fix a bug in NameSimplifier.
2020-12-03 17:52:40 +01:00
hrkrshnn
3efac3eef0 NameSimplifier is removed from steps available to users. 2020-12-02 13:48:01 +01:00
chriseth
9a5902f9d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-02 12:28:02 +01:00
chriseth
c193ce6c07 Rename SourceReferenceFormatterHuman. 2020-12-01 16:09:46 +01:00
Alex Beregszaszi
1dedba8538 Only use SourceReferenceFormatterHuman 2020-12-01 16:09:46 +01:00
Alex Beregszaszi
a22077f736 Rename AsmData -> AST
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
Alex Beregszaszi
3bce2a2294 Remove the legacy AST JSON output 2020-11-25 11:40:33 +00:00
Kamil Śliwak
5560239cf5 Replace links to readthedocs.io with ones using the new domain 2020-11-18 15:20:34 +01:00
Kamil Śliwak
4174f38b02 StandardCompiler: Include file names in link references 2020-11-17 17:51:04 +01:00
Kamil Śliwak
b97c6c55ad StandardCompiler: Don't assume that link reference always contains a colon 2020-11-16 17:41:54 +01:00
Alex Beregszaszi
a3381d7260 Add settings.viaIR to standard json 2020-11-12 22:38:44 +00:00
Alex Beregszaszi
301d7ea39e Add viaIR option to CompilerStack
It also sets the experimental flag in the metadata to true.
2020-11-12 22:34:31 +00:00
Alex Beregszaszi
fcedaba7f7 [ewasm] Allow compiling abstract/interface contracts 2020-11-12 15:26:11 +00:00
Kamil Śliwak
df8e182b46 Link binaries produced in assembly mode 2020-11-09 17:17:43 +01:00
Leonardo Alt
d03ddeb0fa [SMTChecker] User timeout option 2020-11-03 10:46:11 +00:00
Mathias Baumann
a4dc110b38 Fix dependency tracking for abstract contracts for Yul codegen 2020-10-20 16:58:24 +02:00
Mathias Baumann
e991465336 Fix dependency tracking for abstract contracts 2020-10-20 16:58:24 +02:00
Leonardo Alt
b67ade5163 Move modelCheckerSettings out of settings in StandardCompiler 2020-10-19 10:39:06 +01:00
Leonardo Alt
4e49135318 Add CLI option to choose model checker engine 2020-10-16 15:01:47 +01:00
a3d4
f29ebc0847 Fix shadowing/same-name warnings for later declarations 2020-10-08 20:22:04 +02:00
chriseth
21dee1c8ba Check for circular constants across contracts. 2020-10-08 18:56:17 +02:00
Christian Parpart
04079bff6f Eliminates dead code around GasEstimator
- structuralEstimation()
- breakToStatementLevel()
2020-10-07 13:31:40 +02:00
Mathias Baumann
6af16469e7 Remove unneeded assert
An error will trigger later in the name resolve phase
2020-10-05 13:01:11 +02:00
chriseth
fda8bde2d7 Stop after parsing. 2020-09-30 16:57:49 +02:00
Bhargava Shastry
e2a2276272 Contract level checker: Disallow free function redefinition and alias
shadowing another free function

Co-authored-by: chriseth <chris@ethereum.org>
2020-09-25 17:09:58 +02:00
Mathias Baumann
dd81d05559 Make annotations `SetOnce or optional` where feasible 2020-09-22 17:38:21 +02:00
chriseth
930646ba2b Report locations of unimplemented features. 2020-09-15 14:41:46 +02:00
chriseth
00c8fc73ad Re-organize EVM object names. 2020-09-15 11:29:10 +02:00
chriseth
e7e9b03bd8 Store generated sources in standard-json output. 2020-09-15 11:22:16 +02:00
Leonardo
72f8a753a9
Merge pull request #9586 from ethereum/scoper
Assign scopes as a separate step.
2020-09-11 10:45:54 +02:00
chriseth
6101bdf7e2 Name simplifier. 2020-09-10 16:23:29 +02:00
Harikrishnan Mulackal
e2fd41f097 Implemented UnusedFunctionArgumentPruner 2020-09-03 13:15:38 +02:00
chriseth
2934a1f037 Assign scopes as a separate step. 2020-09-02 20:45:33 +02:00
Daniel Kirchner
143b37af56 Only conditionally run old code generation in CompilerStack, StandardCompiler and semantic tests. 2020-08-06 15:05:17 +02:00
chriseth
b8b78a6982 Use cbor metadata in gas cost tests. 2020-07-28 23:42:22 +02:00
a3d4
5b54cfbed3 Report an error if immutables not assigned 2020-07-23 16:38:54 +02:00
chriseth
9be5ed1220 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-21 11:35:28 +02:00
Mathias Baumann
ba0a4de50d NatSpec: Implement `@inheritdoc` 2020-07-20 18:32:18 +02:00
Sachin Grover
b7adb2aa42 Add SPDX license identifier if not present already in source file
Fixes: #9220
2020-07-17 20:24:12 +05:30
chriseth
64b6524bdb Merge remote-tracking branch 'origin/develop' into breaking 2020-07-08 09:37:14 +02:00
Harikrishnan Mulackal
849bae2aa7 Natspec: change events() to interfaceEvents() 2020-07-07 17:22:09 +05:30
chriseth
da36400576 Disallow visibility for constructors. 2020-07-07 11:49:44 +02:00
chriseth
3e3f9a472f Merge remote-tracking branch 'origin/develop' into breaking 2020-06-30 18:56:51 +02:00
Mathias Baumann
c50f0ae00e NatSpec: Implement default inheritance. 2020-06-30 14:45:13 +02:00
Harikrishnan Mulackal
4146ff9fcf NatSpec for events 2020-06-26 15:06:43 +05:30
chriseth
71cb7551f4
Merge pull request #9208 from ethereum/develop
Merge develop into breaking.
2020-06-16 16:11:41 +02:00
chriseth
8e23899886
Merge pull request #9188 from ethereum/refactorNameAndType
Refactor name and type resolution in preparation for free functions.
2020-06-16 14:26:52 +02:00
chriseth
8155ad2187 Merge remote-tracking branch 'origin/develop' into breaking 2020-06-15 17:11:41 +02:00
Mathias Baumann
d54e7f50ed Natspec: Output "type" and "version" in documenation 2020-06-15 14:53:34 +02:00
chriseth
07c1167136 Refactor name and type resolution. 2020-06-12 12:18:02 +02:00
Leonardo
d7f29a33b9
Merge pull request #9096 from ethereum/conversionWarningsLibSol
Adding fixes for signedness warnings in libsolidity
2020-06-11 01:06:32 +02:00
a3d4
b17915a6ba Add error IDs to JSON 2020-06-10 13:26:51 +02:00
Djordje Mijovic
c6e4943089 Adding fixes for signedness warnings in libsolidity
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-10 10:41:55 +02:00
chriseth
69a028b49c Merge remote-tracking branch 'origin/develop' into breaking 2020-05-26 10:11:23 +02:00
a3d4
a499ef16fa Fix spelling errors 2020-05-25 02:54:37 +02:00
chriseth
74b9b094c0 Merge remote-tracking branch 'origin/develop' into HEAD 2020-05-20 17:22:47 +02:00
Leonardo
56b5f1bb12
Merge pull request #8976 from ethereum/libsmtutil
libsmtutil
2020-05-20 16:14:37 +02:00
chriseth
84092edc5d
Merge pull request #8914 from random-internet-cat/down-with-unique-ptr
Down with unique_ptr!
2020-05-20 13:22:06 +02:00
Leonardo Alt
0eb067ae4f Add SMTLogicError exception catches 2020-05-20 13:18:33 +02:00
Leonardo Alt
45eba27424 Rename namespace 2020-05-20 12:55:18 +02:00
Leonardo Alt
087605ea02 Create libsmtutil 2020-05-20 12:55:18 +02:00
chriseth
d422a406ba
Merge pull request #8983 from ethereum/develop
Merge develop into breaking.
2020-05-19 18:05:28 +02:00
Alexander Arlt
af8bb5fb60 Allow natspec comments on state variables. 2020-05-19 11:01:52 -05:00
Erik Kundt
7d37ed4531 Adds structured docs for variable declarations.
- adds natspec generation for state variables.
- exports structured docs for state variables to JSON.
2020-05-19 11:01:52 -05:00
Jason Cobb
20c8851f43
Use optional for CompilerStack::Contract source mappings 2020-05-18 10:24:38 -04:00
chriseth
f92a4f1965 Provide runtime object in Yul mode. 2020-05-18 13:48:23 +02:00
chriseth
2d1e7d9504
Merge pull request #8931 from random-internet-cat/lazy-init
Add LazyInit
2020-05-14 18:54:19 +02:00
chriseth
993a7941b1 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 17:24:40 +02:00
Jason Cobb
eae31559be
Use LazyInit for CompilerStack::Contract members 2020-05-14 10:39:53 -04:00
chriseth
e751a1c23d Move scopes into resolver. 2020-05-14 13:16:47 +02:00
chriseth
257bc6a416 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 13:04:46 +02:00
chriseth
3872a1f000 Add support for SPDX license identifiers. 2020-05-13 18:16:59 +02:00
chriseth
0be56a0abf Merge remote-tracking branch 'origin/develop' into breaking 2020-05-12 17:48:53 +02:00
Harikrishnan Mulackal
095e17f7f9 Bug that ignored return tag when no other devdoc tags were present 2020-05-12 20:05:22 +05:30
Alex Beregszaszi
875415a132 Replace boost/algorithm/cxx11 with C++11 features 2020-05-11 14:27:54 +01:00
Alex Beregszaszi
76dfda7c1c Replace boost:variant with std::variant in StandardCompiler 2020-05-11 12:39:53 +01:00
a3d4
5e9502bfae Fix ABI internal compiler error caused by an internal constructor 2020-05-07 05:49:49 +02:00
a3d4
8f68c04358 Add unique IDs to error reporting calls 2020-05-06 13:53:46 +02:00
hrkrshnn
aa65e9423c Uniform output in functions and constructor NatSpec 2020-05-04 12:39:43 +05:30
Djordje Mijovic
f3f729549d [Sol->Yul] Enabling creation function call 2020-04-27 16:15:57 +02:00
Kamil Śliwak
c8b612536f Add yulDetails.optimizerSteps to the standard JSON interface 2020-04-24 17:30:56 +02:00
Kamil Śliwak
c41a832f65 Move the default optimisation steps from OptimiserSuite to OptimiserSettings
- Now it's a mandatory parameter in OptimiserSuite::run()
2020-04-24 17:30:56 +02:00
Alexander Arlt
aac7a1e434 Apply modernize-pass-by-value. 2020-04-14 10:32:13 -05:00
Daniel Kirchner
3af43fd350 Extract typing. 2020-04-14 10:59:28 +02:00
chriseth
823a119117
Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
Daniel Kirchner
84d7bac4f6 Format immutable references similarly to link references. 2020-04-06 11:21:53 +02:00
Daniel Kirchner
81652686be Debug information for immutable references. 2020-04-06 10:56:42 +02:00
Alexander Arlt
90bb1d8a7c Apply modernize-use-emplace. 2020-04-02 17:35:48 -05:00
Mathias Baumann
ac7b31e559 Validate immutable variables 2020-04-02 13:52:27 +02:00
a3d4
66783c30ce Introduced TestCaseReader. 2020-03-16 23:14:33 +01:00
Djordje Mijovic
37878cf8d2 Adding support for ipfs large files. 2020-03-11 13:55:46 +01:00
chriseth
bb09787bd0
Merge pull request #8378 from mijovic/yulSourceLocations
Adding source location support to AssemblyStack
2020-02-25 22:34:57 +01:00
Djordje Mijovic
ec083c4878 Adding source location support to AssemblyStack and thus debugging Yul sources 2020-02-25 22:19:03 +01:00
Djordje Mijovic
8524e3f48d Standard-JSON-Interface: Fix a bug (#8371) related to empty filenames and imports. 2020-02-25 01:07:36 +01:00
Djordje Mijovic
18dea6b69c Assembly: Added missing source field to legacy assembly json output to complete the source reference 2020-02-18 10:22:34 +01:00
Alexander Arlt
d0eeca8014 Fix CompilerStack::loadMissingSources()
- FatalError Exception was not caught
- fixes #8102
2020-02-12 11:22:11 -05:00
Leonardo Alt
36928c7a35 Add reason string for internal reverts 2020-02-10 11:57:20 -03:00
chriseth
185a736e13
Merge pull request #7918 from ethereum/compilerstack-fqdn
Add assertion for contract name clash in the resolver in CompilerStack
2020-01-15 18:00:58 +01:00
djudjuu
e8556fa1b2 Ast-Import from standard-json 2020-01-14 17:15:53 +01:00
Alex Beregszaszi
b85d478931 Add assertion for contract name clash in the resolver in CompilerStack 2020-01-10 11:49:44 +01:00
Daniel Kirchner
9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
chriseth
d1a7ff0fbc
Merge pull request #8008 from ethereum/large-code
Issue warning if codesize exceeds EIP-170 limits
2020-01-08 09:48:59 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
Alex Beregszaszi
4d791b2679 Issue warning if codesize exceeds EIP-170 limits 2019-12-25 19:51:35 +01:00
Alex Beregszaszi
65e59ecd06 Rename EWasm/ewasm/eWasm to Ewasm 2019-12-19 11:36:08 +00:00
Alex Beregszaszi
018960ebb1 Rename EWasmObjectCompiler to WasmObjectCompiler 2019-12-18 15:59:31 +00:00
Erik Kundt
cc1b28b12e Fixes segfault on empty contract w/ error recovery. 2019-12-13 15:39:19 +01:00
chriseth
f6916a637e Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-09 17:16:58 +01:00
Leonardo Alt
225041738e Add SMTCheckerTest for isoltest 2019-12-09 15:32:08 +01:00
chriseth
e3ee67da6c
Merge pull request #7792 from ethereum/enableYulOptimizer
Enable yul optimizer by default.
2019-12-03 21:24:22 +01:00
chriseth
2f11ac3590 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-03 21:17:15 +01:00
chriseth
19a6f09cc8 Merge commit '4d2f20570' into develop_060 2019-12-03 21:01:31 +01:00
Alex Beregszaszi
9140a7d64e Support catching YulException nicely in StandardCompiler 2019-12-03 19:06:21 +01:00
Daniel Kirchner
77a9e91443 Enable yul optimizer by default. 2019-12-02 19:30:14 +01:00
chriseth
ccfc1840a9 Allow assembly stack to translate its source. 2019-11-28 16:15:15 +01:00
chriseth
1ebcc757e1 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-27 19:14:08 +01:00
chriseth
0bb88dabb7 Restrict usage of plain "new". 2019-11-27 17:55:11 +01:00
chriseth
0973ae751a Do not warn about enabled ABIEncoderV2 anymore. 2019-11-26 15:49:42 +01:00
Leonardo Alt
ddc478e3e4 Add CallbackKind and use it for the SMT solver 2019-11-21 22:10:21 +00:00
Leonardo Alt
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
Alex Beregszaszi
840aba8929 Add new gas price for deployed bytecode (EIP2028) 2019-11-19 17:09:18 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
chriseth
a667384517
Merge pull request #7712 from ethereum/fixIstanbulAsmParsing
Fix assembly parsing by passing evm version.
2019-11-14 13:20:15 +01:00
chriseth
b099374d8c Fix assembly parsing by passing evm version. 2019-11-14 13:06:36 +01:00