Rodrigo Q. Saramago
ef6ff2f055
Adds support for the EVM version "Paris".
...
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris.
The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399 ).
Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
2023-01-23 18:50:36 +00:00
Nikola Matic
1f6a299062
Add a check for unqualified move
2022-09-05 16:05:14 +02:00
Marenz
f7cc29bec1
Add std:: qualifier to move() calls
2022-08-30 11:12:15 +02:00
Marenz
f508494f52
Fix undefined order of evaluation
2022-08-29 15:33:25 +02:00
wechman
52dfccca98
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:23:08 +01:00
chriseth
9417d6775f
Control flow side-effects for user-defined functions.
2021-10-14 17:46:07 +02:00
Daniel Kirchner
a683ea7646
Remove the expression callback from the code generator functions of Yul builtins.
2021-09-06 17:07:53 +02:00
hrkrshnn
7f1a2be0fe
Allow basefee as Yul identifier for EVMVersion < london
...
This was done to prevent basefee from being a breaking change. This change will be removed in 0.9.0.
TODO revert this commit in breaking.
2021-08-11 10:46:08 +02:00
chriseth
8d5e82b406
Fix source location of builtin function calls.
2021-07-06 16:54:29 +02:00
Djordje Mijovic
e404b6e7a6
Refactoring yul source locations.
2021-05-04 16:05:23 +02:00
chriseth
cb1af8b88a
Make verbatim compatible with KnownState.
2021-04-26 19:56:44 +02:00
chriseth
e2d8005737
Add verbatim builtin.
2021-04-26 19:56:44 +02:00
anurag4u80
bbcdddeed9
Replaced keys, values and reverse with ranges
2021-03-31 23:33:04 +05:30
Alex Beregszaszi
3a687c34e4
Add reservedIdentifier to dialect
2020-12-10 17:10:38 +01:00
chriseth
9a5902f9d7
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-02 12:28:02 +01:00
Alex Beregszaszi
a22077f736
Rename AsmData -> AST
...
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
chriseth
bfd267459c
Panic codes.
2020-10-22 19:25:55 +02:00
Daniel Kirchner
0dca223b45
Add another argument to setimmutable and the AssignImmutable opcode, allowing to modify code at any memory offset.
2020-10-15 18:14:41 +02:00
Daniel Kirchner
f4b42d1c72
Add stack limit evader.
2020-09-17 22:13:27 +02:00
Harikrishnan Mulackal
3cbe65e4f3
Refactor SideEffects struct
2020-08-18 14:53:59 +02:00
Alex Beregszaszi
f6a57af809
Add LiteralKind to Dialect.literalArguments
...
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-08-05 11:37:00 +01:00
Alex Beregszaszi
24bb6252ac
Merge Parser::instructions() into EVMDialect
2020-07-29 13:15:54 +01:00
Djordje Mijovic
6f97e6153c
[yul] Adding support for accessing subobjects via .
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-21 17:56:11 +02:00
Sachin Grover
b7adb2aa42
Add SPDX license identifier if not present already in source file
...
Fixes : #9220
2020-07-17 20:24:12 +05:30
Alex Beregszaszi
55e41b602a
Explicitly check for jump instructions in EVMDialect
2020-07-06 14:46:24 +01:00
Daniel Kirchner
8c5fce5b31
Merge pull request #9304 from ethereum/yul-assert
...
Only use yulAssert and not solAssert in libyul
2020-07-03 19:00:14 +02:00
Alex Beregszaszi
4c7c7c0270
Only use yulAssert and not solAssert in libyul
2020-07-03 15:46:50 +01:00
Kamil Śliwak
356b9a7904
Restrict linkersymbol
builtin to object dialect of Yul
2020-07-02 14:41:40 +02:00
Kamil Śliwak
a331d4449d
Add linkersymbol() builtin to Yul EVM dialect
2020-06-24 15:06:52 +02:00
Djordje Mijovic
33e7b24df0
Adding fixes for signedness conversion warnings in libyul
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-12 10:39:30 +02:00
Mathias Baumann
debcc8c056
Add setimmutable and loadimmutable to dialect.
2020-05-04 15:00:50 +02:00
Mathias Baumann
5203503583
Allow for per-parameter literalValues builtin functions
2020-04-08 16:41:38 +02:00
Daniel Kirchner
809e3503ba
Control flow analysis for inline assembly.
2020-03-09 16:23:10 +01:00
chriseth
e728cd76b6
Introduce typed named functions to dialect.
2020-02-24 15:05:19 +01:00
chriseth
4644d4616f
Fix builtin function types for typed evm dialect.
2020-02-11 17:17:41 +01:00
chriseth
2bcdb24ebe
Cause failing assertion for invalid u256 to bool conversion.
2020-01-29 19:01:28 +01:00
chriseth
db33ff6408
Clean up built-in instructions.
2020-01-29 19:01:28 +01:00
chriseth
fbe5bb0cce
Parse default dialect and omit when printing.
2020-01-29 17:25:25 +01:00
chriseth
90c98a3289
Introduce typed EVM dialect.
2020-01-29 17:25:25 +01:00
chriseth
123ea0a250
Remove asm flavour.
2020-01-14 17:16:09 +01:00
Christian Parpart
6b23412fae
C++ namespace cleanup (except tests).
2020-01-07 15:51:50 +01:00
Leonardo Alt
389da5228e
Merge remote-tracking branch 'origin/develop' into merge_develop_060
2019-11-20 12:27:40 +01:00
Leonardo Alt
be849b3c47
Replace boost::variant by std::variant in libyul
2019-11-19 17:23:18 +01:00
Christian Parpart
dc2adb3d9d
Assembly: Removing EVMDialect::looseAssemblyForEVM().
2019-10-25 15:01:26 +02:00
chriseth
7d30fbdef0
Extract side effects into their own struct.
2019-08-14 15:06:10 +02:00
chriseth
2b979cba38
Also optimize memory.
2019-06-20 18:43:37 +02:00
chriseth
1f9d11c644
Knowledge about storage.
2019-06-20 18:43:37 +02:00
chriseth
a3f721bbcc
Merge pull request #6583 from ethereum/reset_yulstringrepo
...
Reset YulStringRepository regularly
2019-05-28 14:20:53 +02:00
Bhargava Shastry
dbae0fa939
Reset Yul string repository before each compilation.
2019-05-28 13:12:39 +02:00
chriseth
afe887adc1
Split MovableChecker and introduce SideEffectsUpToMSize.
2019-05-28 12:54:32 +02:00