Commit Graph

706 Commits

Author SHA1 Message Date
Daniel Kirchner
af9fc8b634 Mapping getters for Yul IR. 2020-02-04 17:22:03 +01:00
chriseth
ada0cef150
Merge pull request #8068 from ethereum/evmTypedDialect
[Yul] EVM typed dialect
2020-01-30 14:53:25 +01:00
cameel
642653ea04 Make yul::Parser::parse() return unique_ptr rather than shared_ptr
- unique_ptr is more flexible and generally recommended for factory methods. It gets automatically converted to shared_ptr if necessary. Returning shared_ptr, on the other hand, forces the caller to use shared_ptr because a conversion to unique_ptr is not possible.
2020-01-29 20:07:08 +01:00
chriseth
fbe5bb0cce Parse default dialect and omit when printing. 2020-01-29 17:25:25 +01:00
chriseth
35820398c2
Merge pull request #8179 from pinkiebell/codegen
libsolidity/codegen: Use calldatacopy to cheaply zero memory..
2020-01-28 18:07:30 +01:00
chriseth
6ded158739 Change expression parts to use strings instead of numbers. 2020-01-27 08:55:11 +01:00
Mathias Baumann
a3f23d3158 Implement new with CREATE2 and function call options. 2020-01-23 21:20:01 +01:00
pinkiebell
bb6fb675e0 libsolidity/codegen: Use calldatacopy to cheaply zero memory instead of
codecopy.

Motiviation:
  Zero'ing memory is commonplace in contracts, but with the upcoming
  Layer-2 EVM translation layers and other on-chain verification
  mechanisms, using `codecopy` becomes a `costly` operation in those
  sandboxes. Using `calldatacopy` achieves the same thing, gas costs
  are also the same as codecopy, and is significantly cheaper in the `sandbox` situation.
2020-01-22 17:56:56 +01:00
Daniel Kirchner
ee5ff4df4e Clean up visibility via contract name and fix ICE on calling unimplemented base function. 2020-01-16 19:13:04 +01:00
Alex Beregszaszi
1d7f25e809 Remove unnecessary statement 2020-01-15 14:33:27 +00:00
chriseth
123ea0a250 Remove asm flavour. 2020-01-14 17:16:09 +01:00
Daniel Kirchner
9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00
chriseth
e061f1e743 Merge remote-tracking branch 'origin/develop' into HEAD 2019-12-05 16:44:26 +01:00
Gaith Hallak
4d90180e24 Support referencing other constants in inline assembly 2019-12-05 13:27:17 +03:00
Daniel Kirchner
025a696bb0 Fix unrelated test failure. 2019-11-28 20:01:36 +01:00
Daniel Kirchner
7d1b0c6023 Fix Yul IR push 2019-11-28 18:11:38 +01:00
chriseth
1ebcc757e1 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-27 19:14:08 +01:00
chriseth
0bb88dabb7 Restrict usage of plain "new". 2019-11-27 17:55:11 +01:00
chriseth
b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
Leonardo Alt
ce83bfb088 [Yul] Format string literals back to quoted string literals 2019-11-26 15:28:39 +01:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
chriseth
a26dd5a428 Remove trailing spaces in output. 2019-11-21 20:09:03 +01:00
chriseth
d5e9271592
Merge pull request #7350 from ethereum/array-length-rvalue
Make `length` member read-only
2019-11-21 19:22:42 +01:00
Leonardo Alt
389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
Daniel Kirchner
372df6b9e1 Implement array push and pop for yul and replace assignments in via yul tests. 2019-11-20 12:04:42 +01:00
chriseth
32f321e416
Merge pull request #7751 from ethereum/replace_boost_variant_std
Replace boost::variant by std::variant in libyul
2019-11-19 19:40:39 +01:00
Leonardo Alt
be849b3c47 Replace boost::variant by std::variant in libyul 2019-11-19 17:23:18 +01:00
Mathias Baumann
23cad71c88 Disallow conversion from `super` 2019-11-19 17:14:11 +01:00
Erik Kundt
ecaed1030f Makes array length access read-only. 2019-11-19 16:09:21 +01:00
chriseth
216e1749f4 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-14 13:42:46 +01:00
Daniel Kirchner
ce7268272d Allow obtaining the address of a library by conversion to `address`. 2019-11-12 17:09:13 +01:00
chriseth
138ee647f1 Provide different options for reason strings. 2019-11-07 14:13:53 +01:00
chriseth
cb2096c82a Add modifier depth to source mappings. 2019-11-05 16:50:38 +01:00
Daniel Kirchner
3321fc56ea Split fallback function and introduce "fallback()" and "receive()" syntax. 2019-11-04 17:17:58 +01:00
chriseth
c30839888f Use `leave` in code generator. 2019-10-29 14:32:16 +01:00
chriseth
edf1e83fda Merge remote-tracking branch 'origin/develop' into develop_060 2019-10-28 15:21:49 +01:00
Christian Parpart
df729b3084 Make use of C++17 std::optional<> instead of boost::optional<>. 2019-10-28 11:39:30 +01:00
Christian Parpart
3c1d12b16c Assembly: Remove errorTypeForLoose property from AsmAnalyzer. 2019-10-25 15:01:26 +02:00
Christian Parpart
76c72ba89f Fixes signedness (causes compilation failure on MSVC). 2019-10-23 16:32:41 +02:00
Christian Parpart
c6152b8059 Compile fix. 2019-10-23 13:08:17 +02:00
Mathias L. Baumann
7e01696030
Merge pull request #7554 from ethereum/develop
Merge develop into develop_060
2019-10-21 17:05:12 +02:00
chriseth
ebfe7391ff Use selfbalance for `address(this).balance`. 2019-10-16 14:25:56 +02:00
chriseth
b5d6d5fcf9 Create. 2019-09-23 17:22:56 +02:00
chriseth
70b796bd1a Code generator for try/catch. 2019-09-23 17:22:56 +02:00
chriseth
9ecd51c54d Refactor. 2019-09-18 14:06:03 +02:00
Leonardo Alt
43d6e00b14 Add push() for dynamic storage arrays 2019-09-17 13:47:33 +02:00
chriseth
5b3efee93b
Merge pull request #7442 from ethereum/develop
Merge develop into develop_060
2019-09-17 12:16:27 +02:00
Leonardo Alt
eab9f65610 Fix ICE when pop dyn storage array of mapping 2019-09-16 16:33:17 +02:00