Commit Graph

23853 Commits

Author SHA1 Message Date
Kamil Śliwak
03d09efb68 DataFlowAnalyzer: Fix variable clearing nondeterminism (affecting CSE and bytecode reproducibility) due to set insertions during iteration 2023-09-30 00:06:41 +02:00
Kamil Śliwak
059adba0a1 Repro for variable names affecting CSE 2023-09-30 00:06:41 +02:00
Kamil Śliwak
fe1f9c640e
Merge pull request #14565 from ethereum/viaIR-codegen-import-bug-test
Add test for via-ir codegen import bug
2023-09-30 00:04:55 +02:00
r0qs
ab2d3957cb Add bytecode test for multiple sources compiler at same time
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2023-09-29 23:17:15 +02:00
Kamil Śliwak
2b7ec23edc
Merge pull request #14562 from ethereum/fix-viaIR-codegen-import-bug
Fix Via-IR bytecode divergence when compiling multiple files that are already included via imports
2023-09-29 23:01:37 +02:00
r0qs
e3b36f736d
Avoid sorting FunctionDefinitions by AST ID during codegen
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2023-09-26 14:02:00 +02:00
Daniel
cc7a14a61d
Merge pull request #14518 from ethereum/analysis-framework-refactor
`AnalysisFramework` refactor
2023-09-19 18:52:57 +02:00
Kamil Śliwak
3fb2f1db88 AnalysisFramework: Move common setup to the framework 2023-09-19 15:56:49 +02:00
Kamil Śliwak
d2bfb2f737 AnalysisFramework: Reimplement parseAnalyseAndReturnError() with runFramework() 2023-09-19 15:56:49 +02:00
Kamil Śliwak
b766268ff3 AnalysisFramework: Get rid of parseAndAnalyse() and success()
- There are too many badly named functions doing different things. E.g. SyntaxTest has both this and parseAndAnalyze().
2023-09-19 15:56:49 +02:00
Kamil Śliwak
309a8de530 Refactor AnalysisFramework to share more features between test cases that depend on it 2023-09-19 15:56:49 +02:00
Daniel
dc44f8ad91
Merge pull request #14550 from ethereum/events-at-file-level
File-level events
2023-09-18 14:36:14 +02:00
Daniel
586a7c54eb
Merge pull request #14503 from Saw-mon-and-Natalie/fix-test-typo
fixed `MSTORE` typo in `libevmasm` tests
2023-09-18 14:30:55 +02:00
Kamil Śliwak
b0a986ffff Allow event definitions at file level 2023-09-15 14:47:40 +02:00
Nikola Matić
020b59680e
Merge pull request #14552 from ethereum/bump-cmake-and-boost-to-work-with-vs-2022
Work around differences in `lexically_normal()` on Boost 1.78+ and bump cmake and boost versions
2023-09-14 20:38:53 +02:00
Kamil Śliwak
5a5e0b5bb3
Merge pull request #14551 from zobront/develop
docs: add clarification about post-execution modifier behavior
2023-09-14 20:28:20 +02:00
Zach Obront
6e8b9dff51 docs: add clarification about post execution modifier behavior 2023-09-14 17:58:18 +02:00
Kamil Śliwak
70cf104f19 fixup! Bump cmake to 3.27.4 and boost to 1.83 on Windows to work with Visual Studio 2022 2023-09-14 17:44:08 +02:00
Saw-mon & Natalie
85b1cb9013 fixed MSTORE typo 2023-09-14 16:15:28 +02:00
Kamil Śliwak
0a69758468 FileReader::isPathPrefix(): Work around lexically_normal() no longer preserving UNC slashes on Boost 1.78+ on Windows 2023-09-14 16:12:43 +02:00
Nikola Matic
5d88b74746 install_deps.ps1: Remove downloaded packages and sources after installation 2023-09-14 16:12:43 +02:00
Nikola Matic
73d582d4b3 Bump cmake to 3.27.4 and boost to 1.83 on Windows to work with Visual Studio 2022 2023-09-14 16:12:43 +02:00
Daniel
9bce5f91dc
Merge pull request #14538 from ethereum/experimentalAnalysisBasicInfrastructure
New Analysis basic infrastructure
2023-09-13 13:00:56 +02:00
Kamil Śliwak
64a0f62700
Merge pull request #14506 from ethereum/extracted-natspec-json-tests
Replace Boost-based Natspec test case with one derived from `SyntaxTest`
2023-09-11 19:28:31 +02:00
Kamil Śliwak
b63a94031f Generate expectations for moved Natspec syntax tests 2023-09-11 18:06:42 +02:00
Kamil Śliwak
dc68480f72 Move Natspec syntax tests to natspecJSON 2023-09-11 18:06:42 +02:00
Kamil Śliwak
d083925bed natspecJSON: Generate missing expectations (including errors) 2023-09-11 18:06:42 +02:00
Kamil Śliwak
481c7256cb natspecJSON: Include version and kind fields in expectations where missing 2023-09-11 18:06:42 +02:00
Kamil Śliwak
99bfdf930a SolidityNatspecJSON: Convert Boost-based test cases into natspectJSON/*.sol tests 2023-09-11 18:06:42 +02:00
Kamil Śliwak
ba019e5a01 SolidityNatspecJSON: Manual conversion of two test cases that would not be handled correctly by the script
- dev_multiple_params_mixed_whitespace has whitespace that is not completely preserved
- dev_explicit_inherit_complex is a multi-file test
2023-09-11 18:06:42 +02:00
Kamil Śliwak
1041f071f0 SolidityNatspecJSON: A few tweaks and small fixes before automatic conversion
- Expectation order matching the order of contracts in the source
- Typos in test names
- Redundant prefixes in test names
- Wrong 'king' in some expectations (it's not checked by the test suite)
2023-09-11 18:06:42 +02:00
Kamil Śliwak
91cc72bcd4 NatspecJSONTest based on SyntaxTest 2023-09-11 18:06:42 +02:00
Matheus Aguiar
14aed39261 Introduce experimental analysis basic infrastructure 2023-09-11 12:29:44 -03:00
r0qs
34c86d90be
Merge pull request #14556 from ethereum/homebrew-update
Upgrade homebrew packages
2023-09-11 13:34:56 +02:00
r0qs
1cb04e84d9
Upgrade homebrew packages
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2023-09-11 12:49:32 +02:00
Daniel
16ae76cad7
Merge pull request #14533 from ethereum/fix-std-namespace-asan
Fix missing std qualifier for ASAN
2023-09-05 11:04:13 +02:00
Nikola Matic
ae36323edb Fix missing std qualifier for ASAN 2023-09-05 08:49:23 +02:00
Daniel
e43968599e
Merge pull request #14468 from ethereum/push0-rematerializer-default-sequence
Push0 rematerializer default sequence
2023-09-04 19:27:33 +02:00
Nikola Matic
fdc6699159 Rematerialize zero literals with default cleanup sequence
Add unused pruner step to the end of the default cleanup sequence
2023-09-04 15:40:33 +02:00
Daniel
1b8e792eb6
Merge pull request #14530 from ethereum/fix-oz-failing-test
Fix failing OZ test
2023-09-04 13:08:47 +02:00
Nikola Matic
76e0d81354 Fix failing OZ test 2023-09-04 12:23:12 +02:00
Nikola Matić
737c1abbdf
Merge pull request #14525 from molecula451/purge-std
deprecate using namespace std
2023-09-04 11:02:15 +02:00
Paul
b3230b0bdc deprecate using namespace std
test: updat filereader test

deprecate namespace std

deprecate namespace std

deprecate namespace std

deprecate namespace std

deprecate namespace std

deprecate namespace std

deprecate namespace std

deprecate namespace std

deprecated std namespace

deprecated std namespace

deprecated std namespace

deprecated std namespace

deprecated std namespace

deprecated std namespace

deprecated std namespace

deprecated std namespace

deprecated std namespace

depecrate namespace std

deprecated namespace std

check ci

clean line

Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>

purge line

pure line

deprecate std

deprecate std

deprecate std

deprecate std

deprecate std

deprecate

deprecate std

bye namespace
2023-09-04 10:12:07 +02:00
Nikola Matić
df03f1412d
Merge pull request #14522 from junaire/purge-using-namespace-std-in-libyul
Purge using namespace std in libyul
2023-08-29 12:38:50 +02:00
Jun Zhang
eff410eb74 Purge using namespace std in libyul
Signed-off-by: Jun Zhang <jun@junz.org>
2023-08-29 11:51:59 +02:00
Daniel
26912e0ee2
Merge pull request #14515 from junaire/bump-fmtlib-version
Bump fmtlib to 9.1.0
2023-08-28 17:24:20 +02:00
Nikola Matić
88b8368932
Merge pull request #14512 from junaire/yul-opt-kill-namespace-std
Purge using namespace std from libyul/optimiser
2023-08-28 16:01:03 +02:00
Jun Zhang
c2362c3362
Purge using namespace std from libyul/optimiser
Signed-off-by: Jun Zhang <jun@junz.org>
2023-08-28 21:14:56 +08:00
Jun Zhang
2cf23e15d8 Bump fmtlib to 9.1.0
In our downstream project, we have two dependencies: solidity and spdlog.
Both of them depend on fmtlib. Unfortunately, the versions of fmtlib they
use do not match, which leads to compilation failure.

The issue arises because spdlog attempts to use solidity's fmtlib, but the
specific version (v8.0.1) has a bug. Ref: https://github.com/gabime/spdlog/issues/2142

While we could keep this change in our own fork, we believe it would
be worthwhile to contribute it back to the upstream since spdlog is a
very popular logging library.

Signed-off-by: Jun Zhang <jun@junz.org>
2023-08-28 13:58:56 +08:00
Nikola Matić
925bfeb24b
Merge pull request #14513 from junaire/yul-backend-namespace-std
Purge using namespace std from libyul/backends
2023-08-28 07:56:38 +02:00