Djordje Mijovic
e8f6f63e77
[Sol2Yul] Adding support for builtin revert(string)
2020-05-05 07:05:39 +02:00
Djordje Mijovic
8b7f87eed5
[isoltest] Enforcing compileViaYul to be set if test can pass via yul
2020-05-05 00:38:13 +02:00
chriseth
ecbf216354
Merge remote-tracking branch 'origin/develop' into breaking
2020-05-04 18:46:45 +02:00
chriseth
1aef9c7d20
Merge pull request #8777 from ethereum/sol_yul_simplefunctions
...
[Sol - Yul] Add some built-in functions.
2020-05-04 16:07:10 +02:00
chriseth
3738cff6e6
Test updates.
2020-05-04 15:00:50 +02:00
chriseth
51ccb1519f
Yul codegen for immutables.
2020-05-04 15:00:50 +02:00
Mathias Baumann
debcc8c056
Add setimmutable and loadimmutable to dialect.
2020-05-04 15:00:50 +02:00
hrkrshnn
aa65e9423c
Uniform output in functions and constructor NatSpec
2020-05-04 12:39:43 +05:30
Alexander Arlt
a9f4d14010
[Sol - Yul] Add support for send(..) & transfer(..)
2020-05-01 08:32:51 -05:00
Alexander Arlt
151e637336
[Sol - Yul] Add some built-in functions.
...
- simplifications for GasLeft, Selfdestruct and BlockHash.
- add support for addmod & mulmod.
2020-04-30 14:10:09 -05:00
chriseth
602b29cba7
Merge pull request #8796 from a3d4/fix-8760-typechecker-compiler-error
...
[Type Checker] Fix internal error when applying unary operators to tuples with empty components
2020-04-29 10:14:15 +02:00
a3d4
3bd15655cb
Type Checker: Fix internal error when applying unary operators to tuples with empty components
2020-04-29 02:18:48 +02:00
chriseth
cc3992452f
Merge pull request #8791 from random-internet-cat/fix-8406
...
Fix broken assertion in ContractCompiler
2020-04-28 19:46:30 +02:00
Jason Cobb
8973732b74
Compare categories instead of types in ContractCompiler(740)
2020-04-28 13:13:45 -04:00
yoni206
4327434d07
Adding bit-vector NOT operation to the opcodes.
2020-04-28 09:43:31 -07:00
chriseth
55e34407d3
Merge pull request #8726 from ethereum/fix-8724
...
Yul proto spec: Add multiple variable declaration statement
2020-04-28 13:13:07 +02:00
chriseth
1fe55370f4
Merge remote-tracking branch 'origin/develop' into HEAD
2020-04-28 13:02:06 +02:00
hrkrshnn
a58b5b2bbe
Changed repo to upstream; branches to latest
2020-04-28 16:03:52 +05:30
hrkrshnn
bd0b06e8db
Tests, Docs and Changelog
2020-04-28 16:03:52 +05:30
Djordje Mijovic
f3f729549d
[Sol->Yul] Enabling creation function call
2020-04-27 16:15:57 +02:00
Alex Beregszaszi
99aa821410
Merge pull request #8720 from ethereum/irSha256
...
IR generation for sha256.
2020-04-27 13:44:26 +01:00
chriseth
3828adbbbd
Merge pull request #8761 from ethereum/conditonalStrings
...
Conditional strings for Whiskers.
2020-04-27 14:07:30 +02:00
Bhargava Shastry
5113af1df0
Update test/tools/ossfuzz/protoToYul.h
...
Co-Authored-By: Leonardo <leo@ethereum.org>
2020-04-27 14:01:11 +02:00
Bhargava Shastry
62e5ccec90
Minor code factoring to clarify for init scope extension
2020-04-27 14:01:11 +02:00
Bhargava Shastry
7280ed716a
Yul proto spec: Add multiple variable declaration statement
2020-04-27 14:01:11 +02:00
chriseth
5b92dedeed
Merge pull request #8753 from a3d4/fix-sourcereferenceformathuman-leftpad
...
Fix leftpad in SourceReferenceFormatterHuman
2020-04-27 11:22:14 +02:00
chriseth
dda883b585
IR generation for sha256.
2020-04-27 11:10:20 +02:00
chriseth
aa8107f45a
Conditional strings for Whiskers.
2020-04-27 11:07:56 +02:00
chriseth
61b1369fc2
Merge pull request #8701 from ethereum/solc-yul-chromosome
...
solc option for selecting yul optimisations
2020-04-27 10:44:14 +02:00
Alexander Arlt
66edaf43f4
[Sol - Yul] Add support for built-in logN().
2020-04-25 11:10:28 -05:00
Alexander Arlt
2fa26f4e92
[Sol - Yul] Add support for built-in selfdestruct(..).
2020-04-24 17:03:41 -05:00
Kamil Śliwak
c8b612536f
Add yulDetails.optimizerSteps to the standard JSON interface
2020-04-24 17:30:56 +02:00
Kamil Śliwak
35cc64e33d
Add --yul-optimizations option to the command-line 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
chriseth
dd7aebe7f1
Merge pull request #8769 from ethereum/fix-cmdlinetests-not-removing-tmp-all-files
...
Fix cmdlineTests.sh not removing all tmp.XXXXXX files
2020-04-24 15:35:17 +02:00
Kamil Śliwak
172b6c245f
cmdlineTests.sh: Fix the script not removing all temporary files it creates in /tmp
...
- The script was leaving hundreds of loose `tmp.XXXXXX` and `tmp.XXXXXX.bak` files in `/tmp` after each run
- There's a trap handler that removes them but it's being registered multiple times in a loop and only the last one actually runs when the script exits. It's still useful because it removes the remaining files from the most recent iteration but on its own it's not enough to clean up everything.
2020-04-24 15:09:26 +02:00
Kamil Śliwak
d3da878200
Enable internal library calls
2020-04-24 15:00:51 +02:00
Kamil Śliwak
56a85d6cb3
IRGeneratorForStatements: Handle internal calls to functions from specific base contracts as static calls rather than calls via pointers
2020-04-24 15:00:16 +02:00
chriseth
2b39f3b988
Merge pull request #8766 from ethereum/sol_yul_gasleft
...
[Sol - Yul] Add support for built-in gasleft().
2020-04-24 14:24:01 +02:00
Leonardo Alt
059d0bdebb
Revert "Use Spacer option to improve performance of constant arrays"
...
This reverts commit 92059fa848
.
2020-04-24 11:55:58 +02:00
a3d4
8717c073a6
Fix leftpad in SourceReferenceFormatterHuman
2020-04-24 00:34:24 +02:00
Alexander Arlt
aafa4583df
[Sol - Yul] Add support for built-in gasleft().
2020-04-23 17:14:03 -05:00
Kamil Śliwak
e65a5a562e
IRGenerationContext::internalDispatch(): Fix code generated when the function called via pointer does not return anything
2020-04-23 21:16:41 +02:00
chriseth
d136e7dc95
Rules for optimizing idempotency for bitwise operations.
2020-04-23 14:21:00 +02:00
chriseth
ed2a42610b
Merge pull request #8730 from ethereum/reduceMultipleConsecutiveLines
...
Yul formatting: Reduce multiple consecutive empty lines to a single one.
2020-04-23 14:11:09 +02:00
chriseth
d25b16ed55
Merge pull request #8737 from ethereum/yulProtoDisallowEmpty
...
Disallow statements containing empty blocks e.g., empty if, for etc.
2020-04-23 14:10:36 +02:00
hrkrshnn
48ff9fd4d6
Tests, Changelog and updated grammar
2020-04-23 17:27:37 +05:30
hrkrshnn
e2e32d372f
virtual modifiers (in Abstract contracts) allow empty bodies
2020-04-23 17:26:59 +05:30
chriseth
0c5aa36e46
Merge pull request #8516 from imapp-pl/yul-phaser-crossover-operators
...
[yul-phaser] Crossover operators
2020-04-23 13:50:39 +02:00
chriseth
f82f167290
Yul formatting: Reduce multiple consecutive empty lines to a single one.
2020-04-23 13:49:12 +02:00
chriseth
35eae96a7f
Move helper up and avoid trailing spaces.
2020-04-23 13:16:26 +02:00
chriseth
16ed53ddd0
Merge pull request #8591 from mijovic/sol2YulConstructorParams
...
[Sol2Yul] Adding support for constructors with parameters (inheritance)
2020-04-23 12:56:54 +02:00
chriseth
a371910674
Merge pull request #8642 from ethereum/interfaceid
...
Add support for interfaceId.
2020-04-23 12:24:49 +02:00
chriseth
5a160be128
Merge pull request #8754 from ethereum/smt_improve_array_performance
...
Use Spacer option to improve performance of constant arrays
2020-04-23 12:19:04 +02:00
chriseth
18ee96ac91
Merge pull request #8752 from a3d4/fix-8711-typechecker-compiler-error
...
Type Checker: Fix internal error when assigning to empty tuples
2020-04-23 12:01:00 +02:00
Leonardo Alt
92059fa848
Use Spacer option to improve performance of constant arrays
2020-04-23 10:45:02 +02:00
Bhargava Shastry
f78414b333
Disallow statements containing empty blocks e.g., empty if, for, function definition
2020-04-23 10:07:36 +02:00
a3d4
c4bc77874b
Disallow empty tuples on the left hand side
2020-04-23 07:02:04 +02:00
a3d4
9538024c81
Fix #8711 , #8277
2020-04-23 05:57:35 +02:00
Leonardo Alt
cfe3686116
Fix internal error when using array slices
2020-04-22 23:20:10 +02:00
chriseth
6728e3ef94
Merge remote-tracking branch 'origin/develop' into breaking
2020-04-22 17:21:32 +02:00
Djordje Mijovic
5329da93fb
[Sol2Yul] Adding support for constructors with parameters in case of inheritance
2020-04-22 14:47:08 +02:00
chriseth
4908101ad7
Yul IR generation for member access to type types.
2020-04-22 11:25:27 +02:00
Leonardo Alt
606153ba71
Add optimizer rules for repeated and
2020-04-22 10:20:59 +02:00
chriseth
6900544f0d
Merge pull request #8651 from a3d4/modify-evmone-version
...
Update evmone version to v0.4 in docs and scripts
2020-04-20 16:49:10 +02:00
chriseth
1d8e742296
Merge pull request #8684 from ethereum/yulForSelector
...
Yul codegen for `.selector`.
2020-04-20 16:32:11 +02:00
chriseth
41ef13129b
Merge pull request #8678 from ethereum/smt_remove_redundant_constraints
...
[SMTChecker] Remove redundant CHC constraints
2020-04-20 15:44:59 +02:00
Kamil Śliwak
d9e2735361
[yul-phaser] Add options for selecting crossover operator used by the algorithms
2020-04-20 15:30:10 +02:00
Kamil Śliwak
1ada2a52fb
[yul-phaser] Mutations: Add two-point and uniform crossover operators
2020-04-20 15:30:10 +02:00
chriseth
55483445e9
Merge pull request #8663 from ethereum/ir-function-generation-queue
...
[Sol->Yul] IR function generation queue (refactor)
2020-04-20 15:17:53 +02:00
chriseth
00a53c95e3
Merge pull request #8694 from ethereum/out-of-tree-build-dir
...
Out-of-tree SOLIDITY_BUILD_DIR
2020-04-20 15:15:52 +02:00
Bhargava Shastry
ea5b64ca9e
Fuzzer: Permit linking of libraries in compilation framework
2020-04-20 14:28:38 +02:00
chriseth
c24c4f85e4
Merge pull request #8665 from ethereum/recursiveStructRefactoring
...
Recursive struct refactoring and a bunch of ICE fixes.
2020-04-20 13:24:19 +02:00
Kamil Śliwak
3e65bcfd7f
Allow SOLIDITY_BUILD_DIR outside of REPO_ROOT in scripts that respect this variable
2020-04-17 19:09:22 +02:00
Kamil Śliwak
3180e6c5a2
cmdlineTests.sh: Fix missing details in some error messages
...
- As far as I know $STDERR is not a standard shell variable and it's not defined in the file either.
2020-04-17 15:45:17 +02:00
Kamil Śliwak
c7947c1af6
Implement lazy function generation using function generation queue
2020-04-17 13:28:07 +02:00
Alexander Arlt
3754a86ab2
Add support for interfaceID.
2020-04-16 12:17:40 -05:00
Daniel Kirchner
150497c12a
Stricter bounds for memory arrays.
2020-04-16 17:51:18 +02:00
Daniel Kirchner
f6d1cee06b
Ensure that public callable parameters are valid for calldata.
2020-04-16 17:23:20 +02:00
Daniel Kirchner
6093982606
Review suggestions.
2020-04-16 16:42:12 +02:00
Daniel Kirchner
3a5a4c6505
Another ICE test.
2020-04-16 16:42:12 +02:00
Daniel Kirchner
6f06154eb5
Move direct struct recursion check to detect recursion in global structs.
2020-04-16 16:42:12 +02:00
Daniel Kirchner
b744a56801
Refactoring of errors and fixes for various ICEs.
2020-04-16 16:42:12 +02:00
Daniel Kirchner
df1809f8da
Annotate struct definitions with a recursive flag.
2020-04-16 16:42:12 +02:00
chriseth
f271dfa2e2
Yul codegen for .selector
.
2020-04-16 13:42:58 +02:00
chriseth
06adbc2c59
Implement bit operations.
2020-04-16 00:33:45 +02:00
Leonardo Alt
bca43586c6
[SMTChecker] Remove redundant CHC constraints
2020-04-15 18:11:39 +02:00
Daniel Kirchner
b86c927505
Disallow virtual and override for constructors.
2020-04-15 13:58:37 +02:00
Daniel Kirchner
95349b3634
Merge pull request #8672 from ethereum/fixYulEmptyTupleAssign
...
Fix tuple assignments for empty tuples in Yul IR.
2020-04-15 12:36:46 +02:00
chriseth
aff1e93caa
Merge pull request #8571 from aarlt/clang-tidy-apply-modernize-pass-by-value
...
clang-tidy: Apply modernize-pass-by-value.
2020-04-15 12:06:25 +02:00
chriseth
703b6efb55
Merge pull request #8515 from imapp-pl/yul-phaser-classic-genetic-algorithm
...
[yul-phaser] Classic genetic algorithm
2020-04-15 12:01:51 +02:00
Daniel Kirchner
0c5c93f3c2
Fix tuple assignments for empty tuples in Yul IR.
2020-04-15 11:10:52 +02:00
Christian Parpart
d00d3c45b1
[Sol2Yul] Implements codegen part for try/catch statements.
2020-04-14 18:42:37 +02:00
Alexander Arlt
aac7a1e434
Apply modernize-pass-by-value.
2020-04-14 10:32:13 -05:00
a3d4
760ae7f584
Update evmone version to v0.4 in docs and scripts
2020-04-14 14:34:47 +02:00
Daniel Kirchner
c47714f0ba
Update ASTJSON tests that fail to compile.
2020-04-14 10:59:28 +02:00
Daniel Kirchner
3af43fd350
Extract typing.
2020-04-14 10:59:28 +02:00
chriseth
a7a1feb1b8
Merge pull request #8626 from ethereum/immutable-functioncallgraph
...
Prepare literalArguments for immutable builtin functions
2020-04-09 15:46:02 +02:00
Mathias Baumann
5203503583
Allow for per-parameter literalValues builtin functions
2020-04-08 16:41:38 +02:00
chriseth
748afe0edd
Merge pull request #8630 from ethereum/encoding-bug-functionCallOption
...
TypeChecker error when encoding functions with call options; tests
2020-04-08 16:33:24 +02:00
chriseth
9fab9df18c
Merge pull request #8607 from a3d4/fix-nested-tuples
...
Fixed nested tuples on the right-hand side.
2020-04-08 12:29:52 +02:00
a3d4
aba0b2957c
Fix tuple assignments with multi-slot components.
2020-04-07 18:39:25 +02:00
chriseth
baefab78d8
Merge pull request #8628 from ethereum/fiximmutableastexport
...
Export immutability.
2020-04-07 18:37:09 +02:00
hrkrshnn
229587672f
TypeChecker error when encoding functions with call options; tests
2020-04-07 21:11:46 +05:30
chriseth
236eff8416
Export immutability.
2020-04-07 17:30:54 +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
chriseth
51883958ab
Merge remote-tracking branch 'origin/develop' into breaking
2020-04-07 11:14:28 +02:00
Leonardo Alt
e3ec22124e
[SMTChecker] Fix ICE in CHC internal calls
2020-04-07 01:09:03 +02:00
Kamil Śliwak
0efea99fa5
[yul-phaser] Phaser: Allow selecting the classic algorithm on the command line
2020-04-06 19:06:08 +02:00
Kamil Śliwak
f6783c60b2
[yul-phaser] GeneticAlgorithms: Add ClassicGeneticAlgorithm
2020-04-06 19:06:08 +02:00
Kamil Śliwak
8c86a4983d
[yul-phaser] Population: Add combine()
2020-04-06 19:06:08 +02:00
Kamil Śliwak
ef8d0888af
[yul-phaser] Population: Add symmetricCrossoverWithRemainder()
2020-04-06 19:06:08 +02:00
Kamil Śliwak
59011fcde6
[yul-phaser] Mutations: Add mutationSequence()
2020-04-06 19:06:08 +02:00
Kamil Śliwak
0837a62d5c
[yul-phaser] Mutations: Add symmetricRandomPointCrossover()
2020-04-06 19:06:08 +02:00
Kamil Śliwak
b6f8ecf755
[yul-phaser] Selections+PairSelections: Add RandomSubset and PairsFromRandomSubset
2020-04-06 19:06:08 +02:00
Kamil Śliwak
7381068dcc
[yul-phaser] Make the Population constructor that takes individuals public and use it to speed up some operations
2020-04-06 19:06:08 +02:00
Kamil Śliwak
2750bb9b90
[yul-phaser] TestHelpers: Generic operator << for printing tuples in boost tests
2020-04-06 19:06:08 +02:00
chriseth
806c835647
Merge pull request #8568 from aarlt/clang-tidy-apply-modernize-use-override
...
clang-tidy: Apply modernize-use-override.
2020-04-06 16:09:02 +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
hrkrshnn
7e2cb9b57c
Removed virtual from a library function in gnosis test
2020-04-03 15:49:50 +05:30
Daniel Kirchner
d68c526eaa
Disallow external function pointers as immutables.
2020-04-03 11:56:51 +02:00
hrkrshnn
042ccd24ab
Added error message for virtual (library) functions; test case
2020-04-03 15:09:57 +05:30
Alexander Arlt
cae6e7769f
Apply modernize-use-override.
2020-04-02 18:00:44 -05:00
Alexander Arlt
90bb1d8a7c
Apply modernize-use-emplace.
2020-04-02 17:35:48 -05:00
chriseth
d7a39c86ce
Accessors for immutable variables.
2020-04-02 19:09:54 +02:00
chriseth
216fca5b70
Merge pull request #8578 from ethereum/interface-function-modifier-error
...
Added error for interface functions that have modifiers; test case
2020-04-02 18:05:32 +02:00
hrkrshnn
ef2bef9ddc
Added error for interface function with modifiers; test case
2020-04-02 20:30:43 +05:30
Leonardo Alt
39ff0deb05
Zero initialize memory arrays
2020-04-02 15:55:18 +02:00
Mathias Baumann
ac7b31e559
Validate immutable variables
2020-04-02 13:52:27 +02:00
chriseth
a2b427dc0b
Merge pull request #8567 from ethereum/storage-pointer-checker
...
Removed redundant storage declaration check; test coverages
2020-04-02 13:46:51 +02:00
hrkrshnn
8e6567e399
New folder localStorageVariable for new testcases; added two new tests
2020-04-02 16:34:45 +05:30
hrkrshnn
aec0ae8ec1
Extended test-coverage for storage declaration
2020-04-02 15:45:04 +05:30
chriseth
3224785381
Merge pull request #8569 from aarlt/clang-tidy-apply-modernize-use-nullptr
...
clang-tidy: Apply modernize-use-nullptr.
2020-04-02 10:38:54 +02:00
hrkrshnn
79387b2ada
Removed redundant declaration check; changed relevant test cases
2020-04-02 12:27:38 +05:30
Daniel Kirchner
77ea896b68
Properly handle assignments of immutables at declaration.
2020-04-02 08:35:22 +02:00
Alexander Arlt
616fd8df1e
Apply modernize-use-nullptr.
2020-04-01 12:46:19 -05:00
Daniel Kirchner
fe9f8d520c
Restrict size for dynamic memory array creation.
2020-04-01 17:25:09 +02:00
Alexander Arlt
3e649eb8e1
Disallow access to functions from inline assembly.
2020-04-01 10:34:55 +02:00
chriseth
b83d82ab75
Merge pull request #8550 from a3d4/fix-8450-typechecker-compiler-error
...
Fix a couple of internal compiler errors when assigning nested tuples
2020-03-31 22:21:58 +02:00
a3d4
c002cae691
Fix #8450 . Prevented internal compiler errors when assigning nested tuples.
2020-03-31 03:25:26 +02:00
Djordje Mijovic
89d5ecdd24
[Sol2Yul] Adding support for constructor with parameters
2020-03-27 01:19:11 +01:00
chriseth
173f234860
Refactor: Replace inheritance hierarchy by most derived contract.
2020-03-26 18:27:39 +01:00
chriseth
165f7bf60f
Move files.
2020-03-26 17:47:36 +01:00
Alexander Arlt
67e9776418
Extract 45 tests from SolidityEndToEndTest.cpp
2020-03-26 17:39:12 +01:00
chriseth
ff23f165f0
Merge pull request #8452 from imapp-pl/yul-phaser-more-output
...
[yul-phaser] More output
2020-03-25 16:43:05 +01:00
chriseth
1897138916
Merge pull request #8522 from a3d4/fix-8427-ast-types-compiler-error
...
Promoted typeError to fatalTypeError in ReferencesResolver
2020-03-25 11:23:00 +01:00
Kamil Śliwak
3f524ccfe5
[yul-phaser] Population: Print individuals in a more compact way
2020-03-25 10:21:18 +01:00
Kamil Śliwak
10e8d3616c
[yul-phaser] AlgorithmRunner: Print total time when showing only the top chromosome
2020-03-25 10:21:18 +01:00
Kamil Śliwak
cd16a6e178
[yul-phaser] Add --show-cache-stats option
2020-03-25 10:21:18 +01:00
Kamil Śliwak
3e35decf2b
[yul-phaser] ProgramCache: Add ability to gather cache stats
2020-03-25 10:21:18 +01:00
Kamil Śliwak
47c3b558f2
[yul-phaser] AlgorithmRunner: Print elapsed time after each round
2020-03-25 10:21:18 +01:00
Kamil Śliwak
c875b3d944
[yul-phaser] Add --show-only-top-chromosome and --hide-round options
2020-03-25 10:21:18 +01:00
Kamil Śliwak
ec10a3d378
[yul-phaser] Add --show-initial-population option
2020-03-25 10:21:18 +01:00
Kamil Śliwak
d6b96063f8
[yul-phaser] AlgorithmRunner: Make all tests use population from AlgorithmRunnerFixture
2020-03-25 10:21:18 +01:00
Kamil Śliwak
a97aeb0e6e
[yul-phaser] AlgorithmRunner: A stronger test for run() output
2020-03-25 10:21:18 +01:00
a3d4
339f3ca32c
Fix #8427 : Promoted typeError to fatalTypeError in ReferencesResolver::endVisit(UserDefinedTypeName).
2020-03-25 02:51:34 +01:00
chriseth
28c0bc5929
Merge pull request #8451 from imapp-pl/yul-phaser-program-cache
...
[yul-phaser] Program cache
2020-03-24 23:02:53 +01:00
chriseth
0029b8bbbf
Merge pull request #8472 from ethereum/immutableCodegen
...
Immutable codegen
2020-03-24 22:34:13 +01:00
Kamil Śliwak
98db50ccac
[yul-phaser] Add --program-cache option
2020-03-24 17:39:24 +01:00
Kamil Śliwak
3b49fbb8a5
[yul-phaser] Add ProgramCacheFactory class
2020-03-24 17:39:24 +01:00
Kamil Śliwak
e2ff9698d3
[yul-phaser] AlgorithmRunner: Add support for ProgramCache
2020-03-24 17:39:24 +01:00
Kamil Śliwak
259f738f17
[yul-phaser] ProgramBasedMetric: Add the ability to use ProgramCache
2020-03-24 17:39:24 +01:00
Kamil Śliwak
8b443627e2
[yul-phaser] Add ProgramCache class
2020-03-24 17:39:24 +01:00
chriseth
f89e154693
Merge pull request #8514 from imapp-pl/yul-phaser-prefix-option
...
[yul-phaser] --prefix option
2020-03-24 17:35:45 +01:00
chriseth
6b97f9a4b5
Merge pull request #8513 from imapp-pl/yul-phaser-parsing-yul-objects
...
[yul-phaser] Parsing Yul objects
2020-03-24 17:33:13 +01:00
Daniel Kirchner
e255c15227
Tests.
2020-03-24 16:45:31 +01:00
Daniel Kirchner
04d8ad2ae1
Legacy codegeneration for immutable state variables.
2020-03-24 16:45:25 +01:00
chriseth
83cbfbb7bf
Merge pull request #8400 from ethereum/fix-8395
...
[solc] Standard compiler interface to permit exception leaks and use it in fuzzer
2020-03-24 16:20:41 +01:00
chriseth
7d68f9f6c3
Merge remote-tracking branch 'origin/develop' into breaking
2020-03-24 13:35:41 +01:00
Leonardo Alt
42b143098e
Add natspec test with too many return tags
2020-03-24 13:04:07 +01:00
Kamil Śliwak
a66ceb11c6
[yul-phaser] Add --prefix option
2020-03-23 16:31:35 +01:00
Kamil Śliwak
29186f9951
[yul-phaser] Program: Switch from using parseCode() to parseObject()
2020-03-23 16:31:19 +01:00
Daniel Kirchner
fe659ceb41
Anything outside storage is always a pointer.
2020-03-23 15:34:10 +01:00
Leonardo Alt
0fcb1427c9
Fix Yul codegen when dynamic array is used as rhs of assignment
2020-03-20 17:52:51 +01:00
Bhargava Shastry
9544df34d7
solc fuzzers: Use compiler stack for fuzzing
2020-03-20 10:50:26 +01:00
chriseth
d55bbd4aa5
Merge pull request #8508 from a3d4/again-refactor-testcase-classes
...
More refactoring of TestCase classes
2020-03-19 23:05:32 +01:00
chriseth
b5e11e7203
Merge pull request #8449 from imapp-pl/yul-phaser-multi-program-support
...
[yul-phaser] Multi-program support
2020-03-19 17:07:34 +01:00
chriseth
f25157a5f8
Sort tests.
2020-03-19 14:42:25 +01:00
chriseth
8834b1acaf
Merge pull request #8464 from aarlt/end-to-end-verified
...
[test] Extraction of 292 tests from SolidityEndToEndTest.cpp
2020-03-19 14:42:04 +01:00
a3d4
f4d9f6772f
Unified use of settings. Removed a couple of unused functions.
2020-03-19 14:02:39 +01:00
a3d4
3b9e926559
Moved "step" from settings to expectations.
2020-03-19 13:59:05 +01:00
chriseth
b02a42400b
Merge pull request #8502 from mijovic/testDocsPragma
...
[docs] Compile examples with minimal compiler version
2020-03-18 19:45:53 +01:00
Erik Kundt
50c22f0800
Adds script which compiles docs example with minimum compiler version.
2020-03-18 19:27:38 +01:00
Alexander Arlt
23d00b5ca3
Extracted 292 tests from SolidityEndToEndTest.cpp
2020-03-18 11:56:43 -05:00
Kamil Śliwak
d86652cb96
[yul-phaser] Add --metric-aggregator option
2020-03-18 16:28:16 +01:00
Kamil Śliwak
bc46323bed
[yul-phaser] Phaser: Accepting multiple input programs
...
- Use average of metric values for individual programs as the overall metric.
2020-03-18 16:28:16 +01:00
Kamil Śliwak
01050940fd
[yul-phaser] Add --relative-metric-scale option
2020-03-18 16:28:16 +01:00
Kamil Śliwak
8e64c5c6f0
[yul-phaser] Add --metric option
2020-03-18 16:28:16 +01:00
Kamil Śliwak
e4a360947b
[yul-phaser] Add FitnessMetricCombination and derived classes for average, sum, min and max
2020-03-18 16:28:16 +01:00
Kamil Śliwak
0e03839e62
[yul-phaser] Add RelativeProgramSize metric
2020-03-18 16:28:15 +01:00
Kamil Śliwak
7edbbe4edd
[yul-phaser] Make FitnessMetric::evaluate() non-const
2020-03-18 16:28:15 +01:00
Kamil Śliwak
0913fd1aac
[yul-phaser] Extract ProgramBasedMetric base class from ProgramSize
2020-03-18 16:28:15 +01:00
Kamil Śliwak
bdc4d1ccd1
[yul-phaser] ProgramSize metric: Refactor repeating parts of test code
...
- Also replace test fixture constructor with direct member initialisation
2020-03-18 16:28:15 +01:00
chriseth
1c25104741
Merge pull request #8423 from imapp-pl/yul-phaser-population-and-algorithm-options
...
[yul-phaser] Population and algorithm options
2020-03-18 16:05:38 +01:00
chriseth
906a3bb28d
Merge pull request #8442 from a3d4/fix-8244-refactor-testcase-classes
...
Refactor TestCase classes
2020-03-18 15:39:09 +01:00
Kamil Śliwak
a2821db1dd
[yul-phaser] Phaser: Tests for factories
2020-03-18 13:30:58 +01:00
Kamil Śliwak
18f0d6eb94
[yul-phaser] AlgorithmRunner: Duplicate chromosome randomisation
2020-03-18 13:30:58 +01:00
Kamil Śliwak
1b5960111d
[yul-phaser] AlgorithmRunner: Population autosave
2020-03-18 13:30:58 +01:00
Kamil Śliwak
ff99d25bc3
[yul-phaser] Common: Add readLinesFromFile()
2020-03-18 13:30:58 +01:00
Kamil Śliwak
5e814acc3c
[yul-phaser] TestHelpers: Add TemporaryDirectory class
2020-03-18 13:30:58 +01:00
a3d4
a5ae51fa6e
Unified dialect selection in libyul/SyntaxTest and YulOptimizerTest.
2020-03-16 23:22:57 +01:00
a3d4
bb38ce1759
Decoupled error checking and report printing in CommonSyntaxTest.
2020-03-16 23:22:56 +01:00
a3d4
66783c30ce
Introduced TestCaseReader.
2020-03-16 23:14:33 +01:00
Kamil Śliwak
8ca0d90aae
[yul-phaser] Returning an ErrorList from Program::load() if program has errors and printing them in Phaser
2020-03-16 20:32:59 +01:00
chriseth
d45e6aa24c
Merge pull request #8421 from imapp-pl/yul-phaser-refactor-main
...
[yul-phaser] Refactoring in main
2020-03-16 16:31:26 +01:00
chriseth
4e4a3da920
Merge pull request #8481 from aarlt/add-show-metadata
...
Add --show-metadata to enable metadata output.
2020-03-16 14:25:42 +01:00
Djordje Mijovic
96d278b101
[Sol->Yul] Adding slicing for call data arrays
2020-03-13 13:40:38 +01:00
Kamil Śliwak
deaf1d0c6f
[yul-phaser] Add serializeChoice() and deserializeChoice()
2020-03-13 11:21:23 +01:00
Kamil Śliwak
0c3de9ef99
[yul-phaser] Add Common module
2020-03-13 11:21:23 +01:00
Kamil Śliwak
099299c5e7
[yul-phaser] Rename Common to Helpers in tests (update references)
2020-03-13 11:21:23 +01:00
Kamil Śliwak
d01dab7b7c
[yul-phaser] Rename Common to Helpers in tests (file move)
...
- I want to add Common.h in the non-test code and it's getting confusing. I think it's better to have them named differently.
2020-03-13 11:21:23 +01:00
Kamil Śliwak
2110bf10cf
[yul-phaser] AlgorithmRunner: Create a structure to store runner's options
2020-03-13 11:21:23 +01:00
Kamil Śliwak
b8244f6a43
[yul-phaser] Extract the code that controls execution of algorithm rounds from GeneticAlgorithm into AlgorithmRunner
2020-03-13 11:21:23 +01:00
Alexander Arlt
9d67edb163
Add --show-metadata to enable metadata output.
2020-03-12 13:39:29 -05:00
chriseth
fa148f2483
Parsing of immutable state variable.
2020-03-12 17:11:24 +01:00
chriseth
f8f18f2e55
Merge pull request #8480 from a3d4/fix-8418-astutils-compiler-error
...
Replaced "assert" with "if"
2020-03-12 15:19:54 +01:00
chriseth
47b72032c6
Merge pull request #8328 from imapp-pl/yul-phaser-gewep-algorithm
...
[yul-phaser] GEWEP algorithm
2020-03-12 14:54:33 +01:00
a3d4
a86c511713
Replaced "assert" with "if" (incorrect contract code is not supposed to trigger asserts).
2020-03-12 14:03:27 +01:00
Daniel Kirchner
bdd8045db5
Merge pull request #8183 from ethereum/functionOptionsYulIR
...
[YulIR] Function call options for Yul IR
2020-03-12 10:49:51 +01:00
Leonardo Alt
89ce2dbfe9
The identifier var
should be fine in Yul
2020-03-11 18:45:08 +01:00
chriseth
9d92c9fbf1
Merge remote-tracking branch 'origin/develop' into HEAD
2020-03-11 18:44:06 +01:00
Leonardo
07ab4c80c4
Merge pull request #8323 from ethereum/smt_split_3
...
[SMTChecker] CHC support to internal function calls
2020-03-11 18:37:45 +01:00
Leonardo Alt
07368c2e1e
Add support to internal function calls
2020-03-11 16:29:07 +01:00
Djordje Mijovic
37878cf8d2
Adding support for ipfs large files.
2020-03-11 13:55:46 +01:00
chriseth
5dd30777d2
Test.
2020-03-10 22:44:06 +01:00
Leonardo Alt
bcefda747c
Do not run smtCheckerTestsJSON if no solver available
2020-03-10 15:41:49 +01:00
Leonardo Alt
1b17815808
SMTChecker docs test may issue a warning
2020-03-10 15:41:49 +01:00
Christian Parpart
bb29a7e497
Merge pull request #8460 from ethereum/yulutil-convert-array
...
YulUtilFunctions: convertionFunction() to also handle array string/memory casts
2020-03-10 14:00:34 +01:00
Christian Parpart
5d7a370248
YulUtilFunctions: convertionFunction() to also handle array string/memory casts.
2020-03-10 11:21:12 +01:00
chriseth
8d2a9bf773
Merge pull request #8458 from a3d4/partfix-8244-introduced-testcase-shouldrun
...
Partial Fix #8244 : Introduced TestCase::shouldRun().
2020-03-09 18:35:12 +01:00
chriseth
f6c0a8978d
Merge pull request #8428 from ethereum/assemblyControlFlow
...
Control flow analysis for inline assembly.
2020-03-09 18:27:00 +01:00
Leonardo
3896aa75cc
Merge pull request #8426 from ethereum/fix-7948
...
ossfuzz: Update README.md with steps to build fuzzers via docker
2020-03-09 16:41:10 +01:00
Daniel Kirchner
809e3503ba
Control flow analysis for inline assembly.
2020-03-09 16:23:10 +01:00
a3d4
29b770c434
Introduced TestCase::shouldRun().
2020-03-09 15:52:20 +01:00
chriseth
b7c001eb7f
Merge pull request #8416 from ethereum/reuseYulCalldataTailAccess
...
Fix yul calldata tail access functions and reuse them for old codegen.
2020-03-09 15:10:48 +01:00
Kamil Śliwak
763bdb1d51
[yul-phaser] Change the design of crossover operators so that they produce a single chromosome rather than a pair
2020-03-09 13:21:48 +01:00
Kamil Śliwak
fc4fedb214
[yul-phaser] Add GenerationalElitistWithExclusivePools algorithm
2020-03-09 13:21:48 +01:00
cameel
7e80ac861f
[yul-phaser] Population: Add mutate() and crossover() methods
2020-03-09 13:21:48 +01:00
Kamil Śliwak
92b54d83a3
[yul-phaser] Common: Add geneSubstitution() mutation
2020-03-09 13:21:48 +01:00
Kamil Śliwak
c941eaf5d6
[yul-phaser] Add randomPointCrossover() and fixedPointCrossover() operators
2020-03-09 13:21:48 +01:00
cameel
3fdb4ca607
[yul-phaser] Add geneRandomisation(), geneDeletion(), geneAddition and alternativeMutations()
2020-03-09 13:21:48 +01:00
Kamil Śliwak
643a5f2035
[yul-phaser] Common: Add wholeChromosomeReplacement() mutation and countDifferences()
2020-03-09 13:21:48 +01:00
Kamil Śliwak
f9f2bdb5f7
[yul-phaser] Add RandomPairSelection and PairMosaicSelection classes
2020-03-09 13:21:48 +01:00
chriseth
37e01a19c0
Fix scoping following try/catch.
2020-03-09 13:14:13 +01:00
chriseth
4a4c1a7ba7
Merge pull request #8402 from ethereum/fix-8401
...
Update solidity fuzzing dictionary with >0.6.0 keywords
2020-03-09 11:38:18 +01:00
Christian Parpart
988bd6780b
Merge pull request #8414 from ethereum/sol2yul-func-type-conversion
...
[Sol2Yul] Implements function-to-function cast.
2020-03-09 11:31:44 +01:00
Christian Parpart
e210026e74
[Sol2Yul] Implements function-to-function cast.
2020-03-09 10:40:57 +01:00
Bhargava Shastry
2153a1ef1d
Update test/tools/ossfuzz/README.md
...
Address review comments
2020-03-09 10:38:19 +01:00
chriseth
a328e940b5
Merge pull request #8429 from ethereum/astJsonImportYulBlock
...
Fix yul ast import for blocks, switches and string literals.
2020-03-08 17:06:05 +01:00
Daniel Kirchner
e58a1de57f
Merge pull request #8431 from mijovic/sol2YulSelectorAddress
...
Adding sol->yul for f.selector and f.address
2020-03-06 22:48:38 +01:00
Djordje Mijovic
092827b7ad
Adding sol->yul for f.selector and f.address
2020-03-06 21:43:14 +01:00
Daniel Kirchner
2df5ca0774
Merge pull request #8385 from ethereum/immutable
...
Immutable state variables (1)
2020-03-06 14:20:13 +01:00
Daniel Kirchner
7f38cbb91d
Fix calling unimplemented base function.
2020-03-06 10:51:16 +01:00
Daniel Kirchner
420f57aec3
Fix yul ast import for blocks, switches and string literals.
2020-03-05 14:09:13 +01:00
Bhargava Shastry
7483c6f13e
ossfuzz: Update README.md with steps to build fuzzers via docker
2020-03-05 10:43:31 +01:00
Daniel Kirchner
b10f12a395
Merge pull request #8413 from mijovic/depratateValueCalls
...
Deprecated warning for .value() and .gas() on function and constructr…
2020-03-04 14:43:06 +01:00
Daniel Kirchner
919888ddbc
Use yul function for calldata tail access, fix checks and add additional revert reason.
2020-03-04 14:39:36 +01:00
Christian Parpart
a3bc752e53
Merge pull request #8415 from ethereum/tests-ExecutionFramework-reset
...
[test] Fixes ExecutionFramework providing different contract addresse…
2020-03-04 14:17:11 +01:00
Djordje Mijovic
58c6b90705
Deprecated warning for .value() and .gas() on function and constructror calls
2020-03-04 12:51:49 +01:00
Christian Parpart
495abee769
[test] Fixes ExecutionFramework providing different contract addresses when running test cases for both, old and new yul codegen.
2020-03-03 16:36:12 +01:00
Leonardo
32ca1a5e26
Merge pull request #8311 from ethereum/smt_split_2
...
[SMTChecker] Change CHC encoding from explicit CFG to function forests
2020-03-03 13:16:14 +01:00
Leonardo Alt
3bee348525
Change CHC encoding to functions forest instead of explicit CFG
2020-03-03 12:12:26 +01:00
Leonardo Alt
96a230af50
[SMTChecker] Fix ICEs with tuples
2020-03-03 11:35:58 +01:00
chriseth
f10c6500b2
Immutable is not reserved anymore.
2020-03-02 14:20:17 +01:00
Bhargava Shastry
ed02aae1d9
Update solidity fuzzing dictionary with >0.6.0 keywords
2020-02-28 15:46:21 +01:00
chriseth
06ad5b3200
Merge remote-tracking branch 'origin/develop' into HEAD
2020-02-27 15:06:36 +01:00
Erik Kundt
d1b6a4a649
Fixes raw bytes warning in semantic test framework.
2020-02-26 21:37:52 +01:00
chriseth
426c4a2e38
Merge pull request #8327 from imapp-pl/yul-phaser-random-algorithm
...
[yul-phaser] Random algorithm
2020-02-26 14:44:24 +01:00
Leonardo
6930e0c2e0
Merge pull request #8384 from ethereum/fixRePrintingValue
...
Fix re-printing value expectations.
2020-02-26 09:57:30 +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
chriseth
c5a0a434e2
Merge pull request #8374 from ethereum/writeAccessToSlot
...
Allow access to ``_slot`` for local storage pointer variables.
2020-02-25 22:11:13 +01:00
chriseth
40cae442d5
Fix re-printing value expectations.
2020-02-25 22:10:35 +01:00
Kamil Śliwak
e1b8b64f05
[yul-phaser] Population: Remove no longer used methods for running algorithm steps
...
- They have been superseded by objects from GeneticAlgorithms.h
2020-02-25 16:06:16 +01:00
cameel
67fbafab8f
[yul-phaser] Add RandomAlgorithm
2020-02-25 16:06:16 +01:00
cameel
4665b7a7e4
[yul-phaser] Population: Add select() method
2020-02-25 15:25:16 +01:00
cameel
83b8ab8012
[yul-phaser] Add RangeSelection, MosaicSelection and RandomSelection classes
2020-02-25 15:25:16 +01:00
cameel
11bdf358df
[yul-phaser] Base class for genetic algorithms
2020-02-25 15:25:16 +01:00
Kamil Śliwak
26bae6b459
[yul-phaser] Common: Add countSubstringOccurrences()
2020-02-25 15:25:16 +01:00
chriseth
45041e5d3a
Allow access to `_slot
` for local storage pointer variables.
2020-02-25 14:28:04 +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
Leonardo
44bcff42f5
Merge pull request #8161 from ethereum/yulTypeChecking
...
Yul type checking
2020-02-24 16:05:04 -03:00
Djordje Mijovic
c891597204
Adding ssa type check and test for that one
2020-02-24 15:05:19 +01:00
Djordje Mijovic
2efda4129b
Adding test for multi return values including bool in evmTyped dialect. Calling zeroLiteralForType from inliner
2020-02-24 15:05:19 +01:00
chriseth
bddbcbe6a4
Use bool type in word size transform.
2020-02-24 15:05:19 +01:00
chriseth
a52305d3bd
Use bool type in conditional simplifier and for loop condition into body.
2020-02-24 15:05:19 +01:00
Djordje Mijovic
a52c9af5b9
Adding vardecl optimization for boolean types
2020-02-24 15:05:19 +01:00
chriseth
b9b36cd89e
Properly assign types in ExpressionSplitter.
2020-02-24 15:05:19 +01:00
chriseth
2ee748b7f5
Add tests
2020-02-24 15:05:19 +01:00
chriseth
9140bc52c4
Tests for invalid types.
2020-02-24 15:05:18 +01:00
chriseth
6eec968365
Test updates.
2020-02-24 15:05:18 +01:00
chriseth
449a8533ce
Merge pull request #8340 from mijovic/value-keyword-wei
...
TestFileParser: Adding keyword wei for expressing function call value
2020-02-24 15:01:15 +01:00
Djordje Mijovic
dd9009eba6
TestFileParser: Adding new keyword wei for expressing function value
2020-02-21 11:39:37 +01:00
cameel
2291cf78ac
[yul-phaser] Population: Add constructors to Individual to simplify initialization
2020-02-19 17:26:34 +01:00
cameel
cef01c961a
[yul-phaser] Population: Keep the individuals always sorted
2020-02-19 17:26:34 +01:00
cameel
76842ac3fd
[yul-phaser] Population: Evaluate fitness immediately when an individual is added or modified
...
- This removes the explicit evaluation phase.
- Fitness is no longer optional in Individual
2020-02-19 17:26:34 +01:00
cameel
66fdc1c374
[yul-phaser] Population: Store fitness metric rather than program directly
...
- In the console app use ProgramSize metric when creating the population.
2020-02-19 17:03:35 +01:00
Kamil Śliwak
930a9918a6
[yul-phaser] ProgramSize: Add an option to repeat the optimisation sequence several times
2020-02-19 16:36:14 +01:00
Kamil Śliwak
751caf0ed3
[yul-phaser] Common: Add ChromosomeLengthMetric
2020-02-19 16:36:14 +01:00