Commit Graph

774 Commits

Author SHA1 Message Date
Kamil Śliwak
f7c4ed849d Handle DebugInfoSelection in the code printing Yul and EVM assembly 2021-10-11 20:34:48 +02:00
Kamil Śliwak
a30348715b Use boost::current_exception_diagnostic_information() to print extra info about exceptions caught by (...) 2021-10-07 17:41:25 +02:00
Kamil Śliwak
7f7107405f Try out the new assertion macro variants with less arguments 2021-10-04 12:05:00 +02:00
Kamil Śliwak
f909555022 Treat ambiguous imports as errors 2021-09-27 13:14:23 +02:00
Kamil Śliwak
9975b5e26b Detect source unit name collisions between paths specified on the command line 2021-09-27 13:14:23 +02:00
Kamil Śliwak
c8a7a1da7c Add --include-path option 2021-09-27 13:14:23 +02:00
Kamil Śliwak
479ba7c523 Handle allowing empty paths correctly 2021-09-27 13:14:10 +02:00
Kamil Śliwak
3ac3612767 Whitelist base path 2021-09-27 13:14:10 +02:00
Kamil Śliwak
52dd39212d Normalize allowed paths before comparing them with imports 2021-09-27 13:14:10 +02:00
Kamil Śliwak
a436abfb25 normalizeCLIPathForVFS(): Add an option for resolving symlinks 2021-09-27 13:14:10 +02:00
Kamil Śliwak
f0dceffe1d Refactor parsing of remappings to remove duplication and improve readability 2021-09-27 13:14:10 +02:00
Kamil Śliwak
d06dc7613e Print diagnostic info for more exception types in the default import callback 2021-09-27 13:14:10 +02:00
Alex Beregszaszi
3c8846e669
Merge pull request #11976 from ethereum/json-cleanup
Some cleanup and testing for JSON
2021-09-24 19:03:45 +01:00
chriseth
1531863835 Split Common.h into Numeric.h. 2021-09-23 15:27:29 +02:00
chriseth
9f8406ad37 Add protection against mixing "viaIR" and "non-viaIR". 2021-09-22 15:34:39 +02:00
chriseth
2741175507 Use function debug data. 2021-09-22 11:11:51 +02:00
Alex Beregszaszi
55c64e3ca1 Always explicitly initialise Json objects 2021-09-21 10:49:13 +01:00
Kamil Śliwak
fc8c4b046c StandardCompiler: Do not discard non-fatal errors that happened before a fatal error 2021-09-16 20:29:03 +02:00
chriseth
c892d1904b Simplify version.cpp 2021-09-16 16:03:27 +02:00
chriseth
8188ea7d66
Merge pull request #11931 from ethereum/different-metadata-via-ir
Different metadata for IR
2021-09-14 15:48:08 +02:00
Leonardo
e45083f319
Merge pull request #11606 from ethereum/info_message
Add new info severity
2021-09-14 14:30:07 +02:00
Kamil Śliwak
405a9e9971 Generate separate metadata for the old and the new codegen 2021-09-14 13:44:04 +02:00
Kamil Śliwak
14639efc5d Print code snippets next to source locations in IR output 2021-09-14 12:09:59 +02:00
Leo Alt
e72fa7fc10 Add new info severity 2021-09-13 22:48:22 +02:00
Kamil Śliwak
13f46ebb1e FileReader: Normalize base path and strip it from normalized source paths 2021-08-27 15:10:46 +02:00
Kamil Śliwak
cb1a0f08ca readFileAsString(): Accept path as boost::filesystem::path instead of string 2021-08-17 12:58:33 +02:00
Leo Alt
08c065ee04 Add option divModWithSlacks 2021-08-06 15:50:25 +02:00
Leo Alt
3c1f555f71 Tests 2021-08-04 13:54:50 +02:00
Leo Alt
41087f3195 Add CLI and JSON option to show unproved targets 2021-08-04 13:54:50 +02:00
Christian Parpart
6294aa871a Simplify AsmParser::parse(.) usage 2021-08-03 15:43:17 +02:00
chriseth
ffc5cfd9a5 Remove scanner from compiler stack. 2021-08-03 15:43:17 +02:00
Leo Alt
6c8ecfa82c Add option to choose solver 2021-07-27 17:14:21 +02:00
Ladislav Sladecek
9bbeea58c8 Make --pretty-json work with Standard JSON output 2021-07-26 16:00:46 +02:00
chriseth
e3525b81d0 Supply scanner to model checker. 2021-07-14 15:12:10 +02:00
chriseth
f75b55071e Remove CharStream from SourceLocation. 2021-07-14 15:12:07 +02:00
Christian Parpart
132fa46faa Yul: Adds parsing @src comment in AsmParser to customize the AST's sourcer locations. 2021-07-09 11:48:00 +02:00
chriseth
566537835b
Merge pull request #11627 from ethereum/allowEmptyFileName
Include locations with empty source name.
2021-07-07 12:52:49 +02:00
chriseth
6ba298c82b Include locations with empty source name. 2021-07-07 12:13:52 +02:00
Kamil Śliwak
7d16c7b127 Equality operators for ModelCheckerSettings and ImportRemapper 2021-07-06 17:17:18 +02:00
Kamil Śliwak
6ad6fa2382 Do not hard-code the default 'runs' value as 200 in code that fills out optimizer settings 2021-06-28 14:12:28 +02:00
Kamil Śliwak
6d8ef71277 Consistently use size_t everywhere for runs/expectedExecutionsPerDeployment 2021-06-28 14:09:28 +02:00
Djordje Mijovic
838f59fa5b Adding origin location notation to yul ir. 2021-06-21 18:48:20 +02:00
chriseth
0df8a38e55 Support metadata via IR. 2021-06-21 18:20:31 +02:00
Alex Beregszaszi
0e8e4eacd5 Pass on assembly instance from AssemblyStack to CompilerStack
This allows for generation of various output artifacts supported by the old codegen
2021-06-17 15:35:59 +02:00
Alex Beregszaszi
79794081eb Extract assemble() from compileContract() in CompilerStack 2021-06-17 15:28:22 +02:00
Kamil Śliwak
59957b18dc Make missing settings.optimizer.enabled key in Standard JSON equivalent to setting it to false 2021-06-15 16:06:22 +02:00
chriseth
3eaa37030a Fix infinite recursion in function call graph generator due to recursive constant references. 2021-06-08 16:39:30 +02:00
chriseth
7d8a4e63d8
Merge pull request #11491 from TerranCivilian/fix-10269
Remove unneeded include files
2021-06-07 20:15:20 +02:00
TerranCivilian
c15501eea9 Remove unneeded include files 2021-06-07 12:53:18 -04:00
Mathias Baumann
aae9d347aa Split DocStringParsing in two stages
one requiring type info in the next step
2021-06-07 14:49:46 +02:00
Mathias Baumann
56ebea8b2f ControlFlowAnalyser: Also consider called functions in a flow 2021-06-01 15:54:37 +02:00
Alex Beregszaszi
75c72cd54d Properly support inliner in settings.optimizer.details 2021-05-20 20:22:34 +01:00
chriseth
f9c94d7c42 Note function entry points. 2021-05-04 17:15:13 +02:00
Djordje Mijovic
e404b6e7a6 Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
Kamil Śliwak
5023cef382 OptimiserSettings: Add preset() and OptimisationPreset enum 2021-04-27 14:06:44 +02:00
Alexander Arlt
481971cbcf [isoltest] Add support for external sources. 2021-04-26 08:27:30 -05:00
Alex Beregszaszi
e39433198d Remove the usage of boost::noncopyable
Prior to this half of the codebase used explicit deleted copy constructors, the others used boost::noncopyable.
2021-04-23 14:57:01 +01:00
Leonardo Alt
dd1865873e Choose contracts to be analyzed by the SMTChecker 2021-04-21 10:34:14 +02:00
chriseth
cf7f814a4e
Merge pull request #10921 from ethereum/issue-10881
Natspec: Don't copy from base function if return parameters differ
2021-04-20 15:33:48 +02:00
Leonardo Alt
e3abde43f5 Change settings.modelChecker.targets to take an array instead of string 2021-04-19 17:53:03 +02:00
Mathias Baumann
1737bd7ded Natspec: Don't copy from base function if return parameters differ 2021-04-19 15:20:30 +02:00
Kamil Śliwak
0922d60ba6 FileReader: More accurate description of FileReader::readFile() and its arguments 2021-04-13 13:26:01 +02:00
Kamil Śliwak
6a41b417a3 FileReader: Store files loaded by the callback under their source unit name 2021-04-13 13:25:59 +02:00
Leonardo Alt
b753cb6120 Deprecate pragma experimental SMTChecker 2021-04-08 21:03:38 +02:00
Christian Parpart
257672e56f Extract file reading logic from CommandLineInterface into FileReader class. 2021-04-06 17:10:43 +02:00
Christian Parpart
3490577140 Extract import-file remapping logic out of CompilerStack into ImportRemapper. 2021-04-06 14:28:53 +02:00
Christian Parpart
30588a90eb CompilerStack: assemblyString doesn't need to receive sourceCodes map as copy. 2021-04-06 14:28:01 +02:00
Mathias Baumann
e590a99f39 Detect circular references for library and free functions 2021-03-30 23:06:30 +02:00
chriseth
79d7466e19 NatSpec for errors. 2021-03-30 21:16:58 +02:00
chriseth
517cd17a6f Add errors to the ABI. 2021-03-30 21:16:58 +02:00
chriseth
e877e2bba7 Use all referenced errors. 2021-03-30 21:15:46 +02:00
hrkrshnn
45a3747701 Added FunctionSpecializer to the optimization suite 2021-03-29 11:02:18 +02:00
Mathias Baumann
e197ebbdd1 Replace TypePointer with Type const* 2021-03-23 11:47:19 +01:00
chriseth
5690020d88 Allow custom natspec tags. 2021-03-02 16:13:28 +01:00
Kamil Śliwak
781f00771c Remove IRGenerator::verifyCallGraphs and make generate() verify the graphs automatically 2021-02-23 10:47:02 +01:00
Kamil Śliwak
54eb34d6fd Move call graphs from CompilerStack to ContractDefinitionAnnotation 2021-02-23 10:47:02 +01:00
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