Commit Graph

15783 Commits

Author SHA1 Message Date
cameel
21a2b69f74 [yul-phaser] Create OptimiserStepContext on demand instead of storing it in Program class
- This also lets us get rid of the static s_externallyUsedIdentifiers.
2020-02-05 18:13:30 +01:00
cameel
3baa191b94 [yul-phaser] Printing and JSON conversion for the Program class 2020-02-05 18:13:30 +01:00
cameel
2aa42b32e5 [yul-phaser] Make Program noncopyable
- Copying worked but resulted in OptimiserStepContext having a reference to NameDispenser instance of the other object.
2020-02-05 18:13:30 +01:00
cameel
14d726ff01 [yul-phaser] Program: Use unique_ptr rather than shared_ptr to hold a pointer to the AST root
- The class never shares the instance so unique_ptr makes more sense.
2020-02-05 18:13:30 +01:00
cameel
513d41c315 [yul-phaser] Add Program class 2020-02-05 18:13:30 +01:00
cameel
b75370d93e [yul-phaser] Printing help and accepting input file on the command line 2020-02-05 18:13:30 +01:00
cameel
e7d204383d [yul-phaser] An empty command-line application for the new tool 2020-02-05 18:13:29 +01:00
Mathias L. Baumann
bd54176c1a
Merge pull request #8248 from ethereum/functionCallOptionFollowUp
Fix function call option parsing and add to grammar.
2020-02-05 18:01:54 +01:00
chriseth
f44188abf5
Merge pull request #7914 from ethereum/solidity-upgrade-basic
[tools] Create solidity-upgrade
2020-02-05 17:05:26 +01:00
chriseth
5247a6600e Fix function call option parsing and add to grammar. 2020-02-05 16:59:02 +01:00
Erik Kundt
f2701db0aa Adds documentation for Solidity source upgrader. 2020-02-05 16:52:54 +01:00
chriseth
5de3379d82
Merge pull request #8238 from ethereum/yul-syntax-tests
Implement yul syntax tests
2020-02-05 15:15:41 +01:00
Mathias Baumann
fc10e701fc Implement yul syntax tests 2020-02-05 14:58:34 +01:00
chriseth
56a3e434d9
Merge pull request #8239 from ethereum/unrevertpylintstuff
Re-add reverted pylint changes
2020-02-05 14:24:27 +01:00
Mathias Baumann
ef07fc3066 Fix formatting 2020-02-05 13:22:15 +01:00
chriseth
913d5f3221
Merge pull request #8242 from ethereum/abstractWithoutContract
Fix abstract without contract.
2020-02-05 12:49:51 +01:00
chriseth
0b9c842656 Fix abstract without contract. 2020-02-05 12:14:14 +01:00
chriseth
686b62b585
Merge pull request #8237 from ethereum/i32TypesForWasm
I32 types for wasm
2020-02-04 23:28:34 +01:00
chriseth
527c011c2e Update tests. 2020-02-04 22:51:33 +01:00
chriseth
48933df18d Add some missing wasm functions. 2020-02-04 22:44:08 +01:00
chriseth
a7624ffc45 Implement i32 builtins for the interpreter. 2020-02-04 22:44:08 +01:00
chriseth
c41ef15a86 Fix types for polyfill. 2020-02-04 22:44:08 +01:00
chriseth
8f546849f2 Add i32 functions to wasm dialect. 2020-02-04 22:44:08 +01:00
Christian Parpart
07a04bed44 python: Fixing some python2-to-python3 migrations that I missed in the last PR. 2020-02-04 22:26:11 +01:00
Christian Parpart
6ab385d34a CircleCI: Adds pylint test for all python files in test/ directory. 2020-02-04 22:26:10 +01:00
chriseth
7cca036f4c
Merge pull request #8224 from a3d4/refactor-sourcelocation
Replaced SourceLocation::isEmpty() with isValid() and hasText().
2020-02-04 22:23:51 +01:00
alex
3416c029cf Relaxed assert in AsmJsonImporter::createAsmNode. 2020-02-04 20:37:51 +01:00
chriseth
d7bf6f7137
Merge pull request #8236 from ethereum/wordSizeTransformTypes
Properly assign types during word size transform.
2020-02-04 18:56:38 +01:00
chriseth
cafad3770d Update tests. 2020-02-04 18:27:01 +01:00
chriseth
d3739fe620 Fix WordSizeTransform to properly assign default types. 2020-02-04 18:13:37 +01:00
chriseth
9f0cef97c2 Specify default type for word size transform externally. 2020-02-04 18:13:37 +01:00
chriseth
8a7e1d651a
Merge pull request #8234 from ethereum/contractsAsMappingKeys
Contract types as mapping keys.
2020-02-04 17:58:48 +01:00
Daniel Kirchner
d882b6fa83 Allow tests to be marked ABIEncoderV1Only. 2020-02-04 17:22:03 +01:00
Daniel Kirchner
af9fc8b634 Mapping getters for Yul IR. 2020-02-04 17:22:03 +01:00
Daniel Kirchner
d3cbfb0c5c Allow user-defined types as mapping keys in parser and restrict to contracts during type checking. 2020-02-04 17:22:03 +01:00
chriseth
836938c105
Merge pull request #8144 from ethereum/pylint
CircleCI: Adds pylint test for all python files in scripts/ directory.
2020-02-04 17:03:28 +01:00
chriseth
33f990a96a Fix style of documentation config. 2020-02-04 17:01:13 +01:00
Christian Parpart
4b38f499ae pylint: reduces max-line-length to something more reasonable 2020-02-04 17:00:05 +01:00
Christian Parpart
a3421709fe python: Fixing some python2-to-python3 migrations that I missed in the last PR. 2020-02-04 17:00:05 +01:00
Christian Parpart
05b4ac0d29 CircleCI: Adds pylint test for all python files in test/ directory. 2020-02-04 17:00:05 +01:00
alex
211227f50b Modified SourceLocation::hasText() to allow empty source. 2020-02-04 04:19:28 +01:00
alex
351c39efb5 Merge branch 'refactor-sourcelocation' of https://github.com/a3d4/solidity into refactor-sourcelocation 2020-02-03 21:40:41 +01:00
chriseth
7a194ffdab
Merge pull request #8225 from ethereum/travis-bytecodecomp
Travis: run bytecode comparison only on PRs
2020-02-03 17:29:55 +01:00
chriseth
5bd37dab05
Merge pull request #8227 from ethereum/wasmReleaseSymlink
Add symlinks to solc-bin/wasm for releases.
2020-02-03 15:19:21 +01:00
chriseth
9912f73435
Merge pull request #8228 from ethereum/clarifyDocsTryCatch
Some clarification about try-catch.
2020-02-03 14:45:05 +01:00
chriseth
a3b7c73e3f Some clarification about try-catch. 2020-02-03 14:21:37 +01:00
chriseth
967ce8dd51
Merge pull request #8215 from imapp-pl/yul-optimiser-step-abbreviations
Yul optimiser step abbreviations
2020-02-03 14:03:32 +01:00
Daniel Kirchner
a44ba4e994 Do not remove leading zeros from commit hashes while publishing. 2020-02-03 12:50:19 +01:00
Daniel Kirchner
0508e24385 Add symlinks to solc-bin/wasm for releases. 2020-02-03 12:49:39 +01:00
alex
76cfe4e2ce Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 12:44:26 +01:00