Commit Graph

236 Commits

Author SHA1 Message Date
chriseth
420a7dc3d6 Initial IR generator. 2019-04-04 15:02:42 +02:00
chriseth
3264e9abf0 Make optimiser settings available to assembly stack. 2019-03-28 18:24:13 +01:00
chriseth
2308904f68 Remove "using namespace" from header and move Instruction to dev::eth. 2019-03-28 13:48:11 +01:00
chriseth
72c0e44907
Merge pull request #6338 from ethereum/compilerstack-setsource
Introduce setSources in CompilerStack
2019-03-26 15:31:57 +01:00
Alex Beregszaszi
e211b5b1e1 Add warning that Yul is still experimental 2019-03-25 20:17:11 +00:00
Alex Beregszaszi
0d6d0f476c Use setSources 2019-03-25 15:11:00 +00:00
chriseth
d381e26fc8 Rename "enabled" optimizer setting stage to "standard". 2019-03-21 11:04:40 +01:00
chriseth
49d914a391 Fix and test yul stack optimization flag for commandline interface. 2019-03-14 15:34:23 +01:00
chriseth
6d1ed93247 Use stack optimizations. 2019-03-14 15:34:23 +01:00
chriseth
9a949c1bda Set default EVM version to Petersburg. 2019-03-04 14:53:00 +01:00
Alex Beregszaszi
cc4598a5ed
Merge pull request #6144 from ethereum/petersburg
Support petersburg in evmVersion
2019-03-04 13:50:50 +00:00
chriseth
0045950924 State that yul optimizer is experimental. 2019-03-04 14:27:52 +01:00
Alex Beregszaszi
ecd246aeb6 Support petersburg in evmVersion 2019-03-04 14:10:41 +01:00
chriseth
5ddbc434d6 Provide commandline option to activate yul optimizer. 2019-03-04 11:40:28 +01:00
Leonardo Alt
2405b2151a EVMVersion in langutil namespace instead of solidity 2019-02-25 15:29:57 +01:00
chriseth
1a823f0bf8 Fix tabs/spaces. 2019-02-13 17:05:48 +01:00
chriseth
0bd049c849 Adapet uses of AssemblyStack. 2019-02-13 12:23:07 +01:00
Bhargava Shastry
7751fa740f Ensure we fail gracefully when user tries to optimize Yul code 2019-02-12 11:21:02 +01:00
Christian Parpart
cebeb4076c Fixes compilation on Windows where STDERR_FILENO seems not to be present. 2019-02-11 15:27:08 +01:00
Christian Parpart
3d4b0f45da liblangutil: refactors SourceReferenceFormatter error formatting for pretty and colored output.
* Refactors output format in a way it is (or should at least be) more readable.
  (NB.: As source of inspiration, I chose the rustc compiler output.)
* Adds color support to the stream output.
* Also improves multiline source formatting
  (i.e. truncating too long lines, like done with single lines already)
* solc: adds flags --color (force terminal colors) and --no-color (disable autodetection)
* solc: adds --new-reporter to give output in *new* formatting (colored or not)
* Changelog adapted accordingly.
2019-02-07 12:55:14 +01:00
Alex Beregszaszi
8c97fb1688 Remove boost::filesystem::weakly_canonical workaround 2019-01-18 17:59:32 +00:00
Christian Parpart
073b03d90c liblangutil: refactor SourceReferenceFormatter, splitting out retrieval and making use of new SourceLocation's CharStream knowledge 2018-12-06 14:01:01 +01:00
chriseth
6c44c5f0c9 Apply the optimize commandline parameter to assembly mode. 2018-11-30 23:39:05 +01:00
Erik Kundt
50351fb8e2 Fixes crash on empty runtime code. 2018-11-28 14:41:16 +01:00
Christian Parpart
aeb66905de
Moving SourceReferenceFormatter into langutil namespace. 2018-11-24 12:33:36 +01:00
liangdzou
87d1276dc8 Notify user on successful run without output. 2018-11-22 18:06:29 +01:00
Christian Parpart
d67322a186 Introduce namespace langutil in liblangutil directory.
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3 Isolating files shared between Yul- and Solidity language frontend. 2018-11-21 18:58:12 +00:00
chriseth
0690aae09d Remove mostly unused writeFile implementation. 2018-10-18 12:50:06 +02:00
mestorlx
9f9d6fdcc4 fix issue##5007 2018-10-15 14:26:15 -03:00
chriseth
95d3e7feb3 More helpful error messages for linker. 2018-10-12 15:15:02 +02:00
chriseth
6daeb39ecc Use hash for library placeholders. 2018-10-12 15:15:01 +02:00
liangdzou
6f7ff2dcd4 fix format issue for source files 2018-09-20 17:41:59 +08:00
liangdzou
24e5dcc352 fix code format problems 2018-09-19 00:18:49 +08:00
Daniel Kirchner
954d7433bd Disallow remappings with empty prefix. 2018-08-10 19:26:48 +02:00
chriseth
8e93b729a4
Merge pull request #4703 from ethereum/solc-fix-double-quoting-path-names
solc: Fixes double-quoting path names on stderr.
2018-08-07 21:46:00 +02:00
Christian Parpart
39ffd7500e
solc: Fixes double-quoting path names on stderr and adds tests for it.
Before it was possible to get a failure message, such as:

    ""notfound.sol"" is not found

whereas it should be:

    "notfound.sol" is not found.
2018-08-07 14:55:22 +02:00
Alex Beregszaszi
21ceac090a
Merge pull request #4592 from asifmallik/fixBackslashBugFinal
Fix backslash bug
2018-08-07 12:47:37 +01:00
chriseth
71e26f6adb Remove clone feature. 2018-08-07 11:10:50 +01:00
Asif Mallik
fba7b7c204 Fix backslash bug 2018-08-06 18:17:56 +02:00
chriseth
236284a264
Merge pull request #4166 from alibabe/fix-3718-ret
Fix the Heisenbug
2018-07-16 13:38:42 +02:00
Cryptomental
140dbfdbd8 Code, Changelog, ReleaseChecklist: Fix typos.
Refs: #4442
2018-07-11 00:26:23 +02:00
Alex Beregszaszi
782bc41dbd Rename JULIA/IULIA to Yul in assembly interface 2018-06-14 09:31:28 +01:00
Alex Beregszaszi
ba2a7294d8 Renamed the --julia CLI option to --yul 2018-06-14 00:09:00 +01:00
Alex Beregszaszi
2625f282b9 Remove obsolete --formal option from CLI 2018-06-13 01:00:51 +01:00
alibabe
53eafff4bb Fixes #3718 by creating a local variable for the result of
`GasEstimator::breakToStatementLevel` and then assign it back to
gasCoast.
2018-05-29 04:58:03 +00:00
Leonardo Alt
db5ea8ec03 Read from stdin only if - is explicitly given 2018-05-07 09:32:46 +02:00
Jonny Burger
1367fedfd0 Improve documentation and CLI help for --run parameter 2018-05-02 17:10:30 +02:00
Alex Beregszaszi
7626c8ab72
Merge pull request #3855 from ldct/patch-3
mark --formal as deprecated in cli options
2018-04-11 20:57:01 +01:00
Li Xuanji
576964bd01 Mark --formal as deprecated in CLI options 2018-04-11 20:08:41 +01:00
Daniel Kirchner
c15cb6cc7a Prevent information about file existence outside the allowed paths to leak by mimicing boost::filesystem::weakly_canonical. 2018-04-11 18:52:22 +02:00
Sergiusz Bazanski
f39f36f2c7 Fix file missing error message on imports.
Trying to convert an import path into a Boost canonical path causes
boost to throw an exception if the given file does not exist. Thus,
instead of geting to the 'File not found' error, we instead got into the
cath-all handler for 'Unknown exception in read callback'.

This change rearranges the file checks to happen before we create a
canonical Boost path. It also drive-by removes the unnecessary 'else'
block, as the body of the if is a guard-like return block.
2018-04-06 11:03:52 +02:00
Anthony Broad-Crawford
8a18f22b87 Support for error on non-existant or irregular files with command line option to ignore 2018-03-28 10:25:43 +01:00
chriseth
6ec4517929 Use EVM version in gas meter and optimizer. 2018-03-05 11:36:33 +01:00
chriseth
4ce0e7775d Add constantinople. 2018-03-01 17:19:35 +01:00
chriseth
982476f99d Add TangerineWhistle. 2018-03-01 17:19:35 +01:00
chriseth
dc317a44e0 Provide EVM version to assembly analysis. 2018-03-01 17:19:35 +01:00
chriseth
5ab4a1ae78 Add ability to set the target EVM version. 2018-03-01 17:19:34 +01:00
Zhen Zhang
5fd9ea4b2a Stop allow_guessing for command line option parser 2018-02-28 09:31:24 +08:00
Federico Bond
d7532f7b9c Convert static SourceReferenceFormatter functions to member ones 2018-02-19 15:04:22 +01:00
Alex Beregszaszi
bc1fffb42f Support --strict-assembly in CLI 2018-01-06 03:28:12 +00:00
chriseth
4e7d1440ab Merge pull request #3101 from ethereum/compilerstack-header
Remove the reliance on empty contract name equals "last contract" in CompilerStack
2017-10-19 13:43:17 +02:00
Alex Beregszaszi
2ce35b77be Implement CompilerStack.lastContractName() 2017-10-18 23:54:32 +01:00
Alex Beregszaszi
039cc25b1f Always require a contract/sourceName in CompilerStack 2017-10-18 23:32:33 +01:00
Alex Beregszaszi
6f2865228c Add readStandardInput helper 2017-10-18 12:56:11 +01:00
Alex Beregszaszi
7186e142b8 Rename contentsString to readFileAsString 2017-10-18 12:55:12 +01:00
Sergiusz Bazanski
a458100175 Do not use remove_trailing_separator from Boost 1.58 as 1.56 is required 2017-10-06 13:55:18 +01:00
Sergiusz Bazanski
71a819654e Allow trailing slash in solc -allow-paths. 2017-10-06 13:55:18 +01:00
Ali92hm
61dabb2f29 Added --pretty-json commandline option 2017-09-12 21:51:28 +01:00
Ali92hm
487ade1635 Enabling --combined-json to output to file 2017-09-12 21:50:22 +01:00
Ali92hm
1a9c503e93 Added createJson method to make writing json easier 2017-09-12 21:50:22 +01:00
Alex Beregszaszi
bd6510d99a Simplify assembly printing in CLI 2017-09-11 15:53:20 +01:00
Alex Beregszaszi
bbfb16cf5c Introduce assemblyString 2017-09-11 15:53:20 +01:00
Alex Beregszaszi
a535a8b06e Split out the JSON functionality from assembly.stream() 2017-09-11 15:48:52 +01:00
chriseth
9ac2ac14c1 Rename read file callback. 2017-08-23 17:37:35 +02:00
chriseth
e3f90565d8 Avoid some Json copy operations. 2017-08-21 16:28:30 +01:00
Alex Beregszaszi
7222fac456 Remove DocumentationType from natspec 2017-08-15 19:56:38 +01:00
Alex Beregszaszi
30012db396 Add CompilerStack::setOptimiserSettings 2017-07-26 15:17:07 +01:00
Alex Beregszaszi
6848199b66 Add CompilerStack::setLibraries 2017-07-26 15:05:16 +01:00
Alex Beregszaszi
6d8929a71a Rename onChainMetadata to metadata 2017-07-18 20:54:28 +01:00
chriseth
c78a3a0b01 Add other licenses. 2017-07-01 22:59:08 +01:00
Alex Beregszaszi
555dc4f46f Remove Why3 generator 2017-06-25 12:26:16 +01:00
Alex Beregszaszi
ba7d698ee6 Make compiler.contractDefinition private 2017-06-22 11:13:06 +01:00
Alex Beregszaszi
b99e4bc68b Rework functionHashes into methodIdentifiers 2017-06-22 11:13:06 +01:00
chriseth
9084d48750 Merge pull request #2382 from ruchevits/combined-json-hashes
Allow including hashes of method signatures in --combined-json output
2017-06-15 10:10:18 +02:00
chriseth
e232a105f0 Merge pull request #2327 from ethereum/assembler-object
Return assembler object in AssemblyStack
2017-06-14 14:28:06 +02:00
Edward Ruchevits
2e816967d3 Allow including hashes of method signatures in --combined-json output 2017-06-13 17:03:17 +01:00
chriseth
f583008c73 Remove copyright notice. 2017-06-12 12:28:17 +02:00
Alex Beregszaszi
762bec9116 Nicer machine output in CLI 2017-06-09 16:40:14 +02:00
Alex Beregszaszi
ca92bda886 Supply text representation of assembly 2017-06-09 16:40:14 +02:00
Alex Beregszaszi
f0d213e6b5 Introduce MachineAssemblyObject 2017-06-09 16:40:14 +02:00
chriseth
9d0691b47a Include license and warranty statement with solc. 2017-06-09 13:11:15 +02:00
chriseth
002df12d13 Merge pull request #2287 from ethereum/legacyAstCLI
add legacy/compact AST-format options to CLI
2017-05-29 14:24:55 +02:00
chriseth
261731f7ee Adapt EVM codegen to new namespace. 2017-05-26 15:08:27 +02:00
chriseth
eaa13d42a0 Support multiple assembly front and backends. 2017-05-26 15:03:29 +02:00
chriseth
f2804c49ed Handle assembly in one go to allow for different stacks. 2017-05-26 11:50:26 +02:00
chriseth
9a23603af2 Commandline options. 2017-05-26 11:50:26 +02:00
djudjuu
1131c5035f make src-indices equal (#2286) 2017-05-24 14:48:32 +02:00
djudjuu
0f7a9e8149 add legacy/compact AST-format options to CL 2017-05-24 14:48:32 +02:00
chriseth
8eead553af Merge pull request #1810 from ethereum/compactJson
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00