chriseth
0e6388a907
Clarify FileReader interface.
2021-12-13 14:54:58 +01:00
Kamil Śliwak
f50aec9334
CommandLineInterface: Report an error immediately when writing to disk fails
2021-11-09 18:16:30 +01:00
Kamil Śliwak
c8380c25bb
CommandLineInterface: Update control flow to accommodate the new way of reporting errors
2021-11-09 18:16:30 +01:00
neel iyer
e829bcd933
CommandLineInterface: Replace code that prints to serr() and returns false with CommandLineValidationError exception
2021-11-09 18:16:30 +01:00
Kamil Śliwak
16f62ed43e
Move the Yul experimental warning from CommandLineParser to CommandLineInterface and remove stderr from the parser
2021-11-09 18:16:30 +01:00
Kamil Śliwak
3f5471165f
CommandLineParser: Report errors by raising exceptions
2021-11-09 18:16:30 +01:00
neel iyer
cda0d029bc
Define CommandLineError and a few exceptions derived from it
2021-11-09 18:16:30 +01:00
Kamil Śliwak
1a19d9a5cf
New CLI output in assembly mode: --ewasm-ir
2021-11-04 18:23:11 +01:00
Kamil Śliwak
affeff18f5
Don't ignore output selection in assembly mode
2021-11-04 18:23:11 +01:00
Kamil Śliwak
0417db0f6a
Don't return an error from --help
2021-11-02 16:31:45 +01:00
Kamil Śliwak
a1c9c1e2b5
CommandLineInterface: Merge processInput() and actOnInput()
...
- The distinction between them is not as clear-cut as it should be. For example processInput() prints output in assembly mode.
2021-11-02 16:31:45 +01:00
Kamil Śliwak
93c1fe6878
Treat --help, --license and --version as separate input modes
2021-11-02 16:31:43 +01:00
Leo Alt
3118fb3666
Add invariants option to CLI and JSON
2021-10-26 11:30:30 +02:00
Midhun07
b28e5c881e
Disallowed --error-recovery in Standard json, Assembly and Linker input modes
2021-10-15 18:57:16 +02:00
Kamil Śliwak
01327d6ef1
CommandLineInterface: Don't return zero exit code when writing linked files to disk fails
2021-10-12 18:23:16 +02:00
Kamil Śliwak
a5ed732fd3
CommandLineInterface: Rename m_error to m_outputFailed
2021-10-12 18:23:16 +02:00
Kamil Śliwak
a9e794c872
Expose --debug-info/settings.debug.debugInfo option
2021-10-11 20:34:48 +02:00
Kamil Śliwak
bcfefc79d9
Pass DebugInfoSelection down to the code handling assembly printing
2021-10-11 20:34:48 +02:00
Kamil Śliwak
b0a5b92fe9
Merge pull request #12071 from ethereum/cli-validate-output-selection
...
Validate selected compiler outputs on the CLI
2021-10-11 17:52:32 +02:00
Saurabh Sharma
e13dc5084d
Move exception handlers from CommandLineInterface to main()
2021-10-07 17:20:19 +02:00
Kamil Śliwak
b9b2c69d24
CommandLineParser: Validate compiler output selection
2021-10-06 20:09:33 +02:00
Kamil Śliwak
9d6eaa7a46
Merge pull request #12070 from ethereum/refactor-cli-output-flags
...
Refactor CLI output selection flags
2021-10-04 16:03:20 +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
8a7695784c
CommandLineParser: operator << for CompilerOutputs and CombinedJsonRequests
2021-10-01 14:41:55 +02:00
Kamil Śliwak
4b394f0b35
CommandLineParser: componentMap() for CombinedJsonRequests
2021-10-01 14:41:55 +02:00
Kamil Śliwak
809321e88d
CommandLineParser: componentMap() for CompilerOutputs
2021-10-01 14:41:55 +02:00
Kamil Śliwak
1247239fe8
CommandLineParser: Replace boost::join() with joinHumanReadable()
2021-10-01 14:41:55 +02:00
Kamil Śliwak
7915f32852
Remove leftovers of compact-format and interface from --combined-json
2021-10-01 13:05:30 +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
c0b8378782
Do not whitelist any paths if remapping target is empty
2021-09-27 13:14:10 +02:00
Kamil Śliwak
8a8471d9cc
Interpret remapping targets ending with /.. as directories
2021-09-27 13:14:10 +02:00
Kamil Śliwak
479ba7c523
Handle allowing empty paths correctly
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
f0dceffe1d
Refactor parsing of remappings to remove duplication and improve readability
2021-09-27 13:14:10 +02:00
Alex Beregszaszi
34b8477664
Improve --optimize-runs
text
2021-09-23 10:07:10 +02:00
Kamil Śliwak
4a8a003b3d
CommandLineParser: Initialize inputMode and perform generic validations earlier
2021-09-17 18:42:13 +02:00
Kamil Śliwak
30796b8957
Split CommandLineParser::parse() into smaller functions
2021-09-17 18:42:13 +02:00
Kamil Śliwak
13571f4a67
CommandLineInterface: Add asserts documenting which function is expected to work in which input modes
2021-09-17 18:42:13 +02:00
chriseth
535e1ecdb2
Merge pull request #11895 from ethereum/doNotRunEvmCodegenIfNotAsked
...
Do not run evm codegen if not asked.
2021-09-14 17:12:06 +02:00
Leo Alt
e72fa7fc10
Add new info severity
2021-09-13 22:48:22 +02:00
Kamil Śliwak
1e4cef8405
Switch from full() to standard() optimizer settings in assembly mode on the CLI
2021-09-13 15:35:11 +02:00
Kamil Śliwak
6b46d4fdbe
Extract duplicated code for initializing OptimiserSettings from CommandLineOptions into a common function
2021-09-13 15:35:11 +02:00
Kamil Śliwak
2f663c5f36
Common processing of optimization options in compiler and assembly modes
2021-09-13 15:35:11 +02:00
Kamil Śliwak
7a36a1d1db
Reject optimizer options as invalid in linker and Standard JSON modes
2021-09-13 15:35:11 +02:00
Kamil Śliwak
b7c124911a
CommandLineParser: Process linker mode before assembly mode
2021-09-13 15:25:59 +02:00
Daniel Kirchner
b934ef6c6e
Only run evm bytecode generation if required.
2021-09-10 12:32:48 +02:00
Midhun07
11065c6e79
Disallowed option --experimental-via-ir in Assembler, Linker and StandardJson input modes
2021-08-30 19:58:55 +05:30
Kamil Śliwak
13f46ebb1e
FileReader: Normalize base path and strip it from normalized source paths
2021-08-27 15:10:46 +02:00
soroosh-sdi
0417ee2a21
Replace boost::adaptors with range-v3
...
Signed-off-by: soroosh-sdi <soroosh.sardari@gmail.com>
2021-08-24 13:07:26 +04:30
Kamil Śliwak
cb1a0f08ca
readFileAsString(): Accept path as boost::filesystem::path instead of string
2021-08-17 12:58:33 +02:00
Leo Alt
8ce878621a
Make show unproved CLI a flag
2021-08-11 10:54:03 +02:00
hrkrshnn
79733fca48
Set default EVM version to London.
2021-08-11 09:54:14 +02:00
Leo Alt
ee6285d6d7
Do not create VCs for underoverflow by default for Sol >=0.8
2021-08-09 14:12:31 +02:00
Leo Alt
08c065ee04
Add option divModWithSlacks
2021-08-06 15:50:25 +02:00
Leo Alt
41087f3195
Add CLI and JSON option to show unproved targets
2021-08-04 13:54:50 +02:00
chriseth
01a1316b36
Only set "runs" if used.
2021-08-03 15:53:59 +02:00
jaa2
c627e6af10
CommandLineParser: Handle --optimize-runs option in assembly mode
...
Fixes #11708 .
2021-07-29 18:15:57 +02:00
chriseth
1794e1c837
Merge pull request #11713 from ethereum/better-error-for-non-existent-base-path
...
Better error message when base path does not exist
2021-07-28 08:44:53 +02:00
Kamil Śliwak
056d780b63
Better error message when base path does not exist
2021-07-28 01:03:29 +02:00
Leo Alt
6c8ecfa82c
Add option to choose solver
2021-07-27 17:14:21 +02:00
Kamil Śliwak
9a7c364c71
Process input files in Standard JSON mode just like in other modes
...
- This makes `-` for stdin work.
- `--ignore-missing` now works with `--standard-json`, though it's not very useful because there can be at most one input file.
- Separate errors for situations where there are no input files on the command line (this can be detected in the parser) and where they are not present on disk.
2021-07-27 15:54:32 +02:00
Kamil Śliwak
c938f35b99
CommandLineParser: Initialize inputMode earlier to make it usable in more functions
2021-07-27 15:54:32 +02:00
Kamil Śliwak
3b104a3f38
CommandLineParser: Refactor checkMutuallyExclusive() to handle multiple options and use it more
2021-07-27 15:54:32 +02:00
Ladislav Sladecek
9bbeea58c8
Make --pretty-json work with Standard JSON output
2021-07-26 16:00:46 +02:00
chriseth
f75b55071e
Remove CharStream from SourceLocation.
2021-07-14 15:12:07 +02:00
chriseth
46514ffad2
Merge pull request #11520 from ethereum/local-streams-in-command-line-parser
...
Local output streams in CommandLineParser
2021-07-07 15:07:23 +02:00
Kamil Śliwak
3bad7aff02
CommandLineParser: Remove g_arg aliases
2021-07-07 13:02:50 +02:00
Kamil Śliwak
4c479b5689
CommandLineInterface: Accept the standard input stream as a parameter
2021-07-07 12:53:15 +02:00
Kamil Śliwak
bb64d366ea
CommandLineInterface: Accept output streams as parameters
2021-07-07 12:53:15 +02:00
Kamil Śliwak
6c33fbcb6a
CommandLineParser: Replace global sout/serr streams with class members
...
- This removes the global variable and prevents stderr/stdout from being printed in tests
2021-07-07 12:53:15 +02:00
Kamil Śliwak
c17ee4fe65
CommandLineParser: Equality operators for settings
2021-07-06 17:17:18 +02:00
Kamil Śliwak
d781955b26
Extract CommandLineParser out of CommandLineInterface
2021-07-06 17:17:18 +02:00
Kamil Śliwak
b0c70883f7
Copy CommandLineInterface.cpp/.h to CommandLineParser.cpp/.h
2021-07-06 17:17:18 +02:00
chriseth
09578e7e22
Merge pull request #11550 from ethereum/runs-constant
...
Constant for default --runs
2021-07-06 10:44:07 +02:00
Kamil Śliwak
a72857df03
CommonIO: Replace readStandardInput() with readUntilEnd() with a configurable stream
2021-07-02 14:58:30 +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
65e23ff171
CommonIO: Make readFile() check if the file is not a directory and if not fail with a sensible exception rather than std::length_error
2021-06-25 16:04:58 +02:00
Kamil Śliwak
afb8fb4927
Create libraries for yul-phaser and solc to avoid compiling their sources again for soltest
2021-06-22 17:47:45 +02:00
hrkrshnn
d5564a0304
Set default EVM version to Berlin
2021-05-26 12:23:06 +02:00
chriseth
f9c94d7c42
Note function entry points.
2021-05-04 17:15:13 +02:00
Leonardo Alt
dd1865873e
Choose contracts to be analyzed by the SMTChecker
2021-04-21 10:34:14 +02:00
chriseth
6a0a51110d
Merge pull request #11256 from ethereum/smt_target_array
...
Change settings.modelChecker.targets to take an array instead of string
2021-04-19 18:47:06 +02:00
Leonardo Alt
e3abde43f5
Change settings.modelChecker.targets to take an array instead of string
2021-04-19 17:53:03 +02:00
Kamil Śliwak
0d4871ad10
Prevent adding '-' CLI flag to allowed paths as if it was an actual file
...
- This resulted in a bug where using stdin was effectively disabling allowed path checks.
2021-04-19 16:58:48 +02:00
Leonardo Alt
b753cb6120
Deprecate pragma experimental SMTChecker
2021-04-08 21:03:38 +02:00
chriseth
6d6112a81b
Merge pull request #11210 from anurag-git/issue_10738-2
...
Use range-v3 loops(transform)
2021-04-08 14:56:15 +02:00
anurag4u80
b2ca7916aa
Replaced boost::adaptors::transformed
2021-04-08 17:38:14 +05:30
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
Leonardo Alt
dbd067d6db
Report out of bounds index access
2021-03-30 10:28:48 +02:00
Daniel Kirchner
a75424eec4
Drop support for evm15 and eip-615.
2021-03-09 15:56:03 +01:00
Kamil Śliwak
01f8005d04
Remove the last remains of --ast-json option
2021-02-23 12:39:19 +01:00
Hui Yu
c669ee251a
[CLI] Allow "=" as separator between library name and address in --libraries commandline option.
2021-01-25 16:14:39 +08:00
Leonardo Alt
3b23cadbdc
Add CLI and JSON option to select SMTChecker targets
2021-01-20 17:35:37 +01:00
chriseth
561280a5cc
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-14 11:33:40 +01:00
Alex Beregszaszi
bd641a5206
Enable more C++ compiler warnings
2020-12-10 21:03:58 +00:00
chriseth
d0551b67d7
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-10 17:07:56 +01:00
Daniel Kirchner
7308abc084
Allow loading Z3 dynamically at runtime.
2020-12-10 16:47:47 +01:00
chriseth
c193ce6c07
Rename SourceReferenceFormatterHuman.
2020-12-01 16:09:46 +01:00