Commit Graph
100 Commits
Author SHA1 Message Date
hrkrshnn 0b2a670a94 Improved stack too deep message when compiled without --optimize 2022-07-03 14:03:00 +02:00
Hari 046423f272 Merge pull request #13191 from aiman/doc-decimal-literal-trailing-dots
docs: Disallow decimal literals with trailing dots
2022-06-27 11:08:02 +02:00
hrkrshnn 5ae17c8e65 Recommend via-ir whenever a stack too deep error is encountered. 2022-05-05 19:22:03 +02:00
hrkrshnn 672951ccc7 Extend using-for. 2022-03-14 12:33:44 +01:00
hrkrshnn 0fe5811459 Fixed a ICE on calldata to struct member copy 2022-01-31 17:26:11 +01:00
Harikrishnan Mulackal 29dde71509 Merge pull request #12574 from ethereum/elementfi-ext-test
External test for ElementFi
2022-01-24 12:49:09 +01:00
Harikrishnan Mulackal 271b4e23a8 Merge pull request #12578 from gorgos/patch-1
Add msg.sig to cheatsheet
2022-01-24 10:52:16 +01:00
Harikrishnan Mulackal 8f1abe4085 Merge pull request #12542 from ethereum/prb-math-ext-test
External test for PRBMath
2022-01-24 10:18:20 +01:00
Harikrishnan Mulackal 7b58afa94c Merge pull request #12531 from ethereum/bleeps-ext-test
External test for Bleeps
2022-01-17 11:05:37 +01:00
Harikrishnan Mulackal a711969983 Merge pull request #12511 from ethereum/deterministic-test-order-in-trident-ext-test
Deterministic test order in Trident external test
2022-01-11 12:28:10 +05:30
Harikrishnan Mulackal c7f6fe2eda Merge pull request #12197 from ethereum/trident-ext-test
External tests for sushiswap/trident
2022-01-10 19:47:36 +05:30
Harikrishnan Mulackal eee30b6ead Merge pull request #12504 from brien-tech/patch-1
Fixing typo in "smart contracts"
2022-01-10 13:43:23 +05:30
Harikrishnan Mulackal 3731c0f4ac Merge pull request #12500 from safwen1/patch-1
Explaining payable(msg.sender)
2022-01-10 13:28:56 +05:30
Harikrishnan Mulackal c3b4292d1d Merge pull request #12498 from ethereum/add-function-hoister-to-ese
Add FunctionHoister as a pre-requisite for equal store eliminator.
2022-01-06 20:10:37 +05:30
Harikrishnan Mulackal 75df03c8a8 Merge pull request #12490 from fulldecent/develop
Typo: SemVer
2022-01-05 13:32:29 +05:30
hrkrshnn 85d1a57e65 Added more tests. Updated chromosome. Remove unused headers. 2022-01-04 13:27:39 +05:30
Harikrishnan Mulackal 96f06d29c2 Merge pull request #12485 from bradenwatling/patch-1
Fix typo in control-structures.rst
2022-01-04 11:50:37 +05:30
Harikrishnan Mulackal 223395bcad Merge pull request #12477 from 0xpranay/patch-1
Added specificity to data location.
2022-01-03 13:34:49 +05:30
hrkrshnn 7683442ce2 Semantic test for high level call to precompiles.
Because of the extcodesize check, the high level call will fail. Even though the low level call can
succeed and return data.
2021-11-01 14:22:48 +01:00
hrkrshnn 8815d6f5f0 Moved a check related to constants to TypeChecker
And added a proper error message when constant types containing (nested) mapping types are used.
2021-10-26 18:43:04 +02:00
hrkrshnn 51009c005d Moved a canBeStored assert for struct members to TypeChecker
This is to avoid a assert from failing for forward declared user defined value types.
2021-10-26 18:43:04 +02:00
hrkrshnn 9428dbc94f Moved storage size assert to TypeChecker from DeclarationTypeChecker 2021-10-26 18:43:04 +02:00
Harikrishnan Mulackal 401dd4337a Merge pull request #11451 from ethereum/smt_report_invariants
[SMTChecker] Report contract invariants
2021-10-26 12:41:36 +02:00
Harikrishnan Mulackal 1da57d562d Merge pull request #11970 from shikharvashistha/colors
Added different colors for warning & error
2021-10-25 16:04:04 +01:00
Harikrishnan Mulackal 8460a65aba Merge pull request #12182 from ethereum/circleci-gitter-notification-command
[CI] Reusable command for gitter notifications
2021-10-25 12:20:07 +01:00
Harikrishnan Mulackal ae0db91833 Merge pull request #12165 from ethereum/hardhat-tests-in-ci
[CI] Run hardhat tests as a PR check
2021-10-25 12:15:42 +01:00
Harikrishnan Mulackal ec52908f07 Merge pull request #12184 from abliss/patch-1
Fix typo compiler->constructor.
2021-10-25 10:43:28 +01:00
Harikrishnan Mulackal e5eed63a3e Merge pull request #12056 from ethereum/setReleaseDatefro089
Set release date.
2021-09-29 15:19:38 +02:00
hrkrshnn 14a678eb67 Fix gas stats 2021-09-29 13:50:51 +02:00
hrkrshnn 9d8a0a6f82 Buglist entry for UserDefinedValueTypesBug 2021-09-29 11:54:00 +02:00
hrkrshnn 7b7e38768c Update tests. 2021-09-29 11:44:13 +02:00
hrkrshnn 6109b5c3a1 UserDefinedValueType.storageBytes() is correctly set
Previously it returned 32 bytes for all types, which was wasteful. This commit changes it to return
the storage bytes of the underlying type.
2021-09-29 11:41:47 +02:00
hrkrshnn 41f9aab219 Tests for assembly access of user defined value types. 2021-09-28 14:50:08 +02:00
hrkrshnn e24083a298 UserDefinedValueType: test for reading from dirty storage slots 2021-09-28 11:27:43 +02:00
Harikrishnan Mulackal 4a6b22885e Clarification in changelog 2021-09-27 12:27:12 +02:00
Harikrishnan Mulackal 55d609d354 Merge pull request #11990 from ethereum/smt_user_types
[SMTChecker] Support user types
2021-09-22 15:40:49 +02:00
Harikrishnan Mulackal 46f7078d67 Merge pull request #11995 from andrewl64/patch-1
Update README.md
2021-09-20 09:40:42 +02:00
Harikrishnan Mulackal 0d7f6598e8 Merge pull request #11980 from ethereum/useIterateReplacingInStatementRemover
Use iterateReplacing in StatementRemover.
2021-09-16 16:15:07 +02:00
hrkrshnn 15fb427a99 Added a multisource test for UserDefinedValueTypes and imports
Testing if `import {MyType} from "source";` works
2021-09-15 17:48:53 +02:00
hrkrshnn 48e16ceb88 Changing the UserDefinedValueType::toString to userdefined <name> 2021-09-15 17:25:23 +02:00
Harikrishnan Mulackal ea2386adb1 Merge pull request #11957 from ethereum/canonicalname-userdefinedvaluetype
Canonicalname for user defined value types
2021-09-15 13:38:33 +02:00
hrkrshnn 42c8310a63 Updated tests. 2021-09-15 12:56:29 +02:00
hrkrshnn de01822999 UserDefinedValueType: from simple name to canonical name. 2021-09-15 12:56:29 +02:00
Harikrishnan Mulackal c8c6d30808 Merge pull request #11946 from ethereum/tests-userdefinedvaluetypes
UserDefinedValueType: test to validate zero-cost-abstraction claim.
2021-09-13 18:54:36 +02:00
hrkrshnn 4871017aae Added an abi function test for UserDefinedValueType
A test to see if `abi.encode*(..., (CustomType))` and `abi.decode(..., (CustomType))` works as
intended.
2021-09-13 18:12:42 +02:00
hrkrshnn 00bfed4d8b UserDefinedValueType: test to validate zero-cost-abstraction claim.
Seems that the optimizer can indeed make it a zero-cost-abstraction!
2021-09-13 16:49:52 +02:00
Harikrishnan Mulackal 8fafdeacac Merge pull request #11939 from ethereum/userdefined-types-mapping-key
Allow Mapping keys to have type UserDefinedValueType.
2021-09-13 15:06:14 +02:00
hrkrshnn 2ead3f469e Added a user defined type mapping into the ASTJSON test. 2021-09-13 14:06:31 +02:00
Harikrishnan Mulackal 623b4ba366 Merge pull request #11942 from ethereum/constant-userdefinedvaluetype
Allow UserDefinedValueType.uwrap (and wrap) as RHS of constant decl
2021-09-13 12:32:58 +02:00
hrkrshnn a1d4d0125d Allow UserDefinedValueType.uwrap (and wrap) as RHS of constant decl
Needed to make `MyType.unwrap` and `MyType.unwrap` as pure in the process. This change affected some
existing tests ("statement has no effect").
2021-09-13 11:53:05 +02:00
hrkrshnn 1fa6c71bd0 Allow Mapping keys to have type UserDefinedValueType.
Also added syntax and semantic test.
2021-09-13 10:03:49 +02:00
hrkrshnn 952540c3b5 User defined value type: changes in documentation and test case
Changed the name of a function from `truncate` to `floor`, since that is more appropriate; updated
the inaccurate description on the rounding behaviour. Also modified the respective semantic test.
2021-09-09 16:57:03 +02:00
hrkrshnn a03fbf7061 User defined value types: moved a syntax test to semantic test. 2021-09-09 12:07:51 +02:00
Harikrishnan Mulackal 8a37f56e98 Merge pull request #11806 from ethereum/user-defined-types
User defined value types
2021-09-09 10:28:35 +02:00
hrkrshnn 7e95555325 Updated ANTLR grammar to include user defined value types. 2021-09-08 21:19:30 +02:00
hrkrshnn fbb1b884b2 Documentation and Changelog 2021-09-08 21:19:30 +02:00
hrkrshnn d67391531e Implemented ASTJson import export for UserDefinedValueType
Also added a test.
2021-09-08 21:19:30 +02:00
hrkrshnn 5f393d1694 Semantic tests for User Defined Value types 2021-09-08 21:19:30 +02:00
hrkrshnn 229f50eef1 Syntax checks for user defined value types 2021-09-08 19:56:48 +02:00
hrkrshnn 54484e9795 Implemented codegen for UserDefinedValueType 2021-09-08 19:56:48 +02:00
hrkrshnn ce75790e8d TypeChecker: added checks for wrap and unwrap
For user defined value types and also added a test case.
2021-09-07 19:42:51 +02:00
hrkrshnn 0647039864 DeclarationTypeChecker for UserDefinedValueTypes
- Checks for repetitions.
- Assigns types.
- Checks if the 'actual type' is an elementary type name.
- Checks if the 'actual type' is a value type.

Also added tests.
2021-09-07 19:42:51 +02:00
hrkrshnn 15452371d4 Types for UserDefinedValueType 2021-09-07 19:42:51 +02:00
hrkrshnn 9f7426b4a9 Implemented parsing for UserDefinedValueType
Also added parsing tests.
2021-09-07 19:42:51 +02:00
hrkrshnn d3ae9cf71b Added AST node UserDefinedValueType 2021-09-07 19:42:51 +02:00
hrkrshnn 4d52e873e7 Move changelog item to bugfix. 2021-09-06 17:44:45 +02:00
Harikrishnan Mulackal e9b70b168a Merge pull request #11899 from ethereum/move-check-keccak-gas
Resolving Keccak-256: check if arguments are identifiers early.
2021-09-06 14:28:42 +02:00
hrkrshnn 2cdd3b2081 Resolving Keccak-256: check if arguments are identifiers early.
Previously, the check on whether the optimization was useful gas wise was done before checking if
the keccak256 opcode had identifier as arguments. Since the gas meter crashes when encountering
certain Yul opcodes (create, dataoffset, etc.), this optimizer step crashed.
2021-09-06 13:48:07 +02:00
Harikrishnan Mulackal 3da3ffee5f Merge pull request #11897 from paulrberg/develop
docs: delete stale note about reading code
2021-09-06 10:01:57 +02:00
Harikrishnan Mulackal 1e334a8993 Merge pull request #11799 from benldrmn/increase_use_of_constexpr
Increase use of C++ constexpr
2021-08-31 17:23:36 +02:00
Harikrishnan Mulackal 7df33f0d61 Merge pull request #11777 from Ahmed-Ali/improving_naming_consistency
[DOCS] Improving the naming consistency in Solidity by Example documentation
2021-08-26 12:38:35 +02:00
Harikrishnan Mulackal c69f91917d Merge pull request #11841 from ethereum/smt_fix_delegatecall
[SMTChecker] Erase balances when delegatecall is seen
2021-08-25 15:26:57 +02:00
Harikrishnan Mulackal 7a0295ec6c Merge pull request #11831 from soroosh-sdi/use-range-v3
Replace boost::adaptors with range-v3
2021-08-24 11:17:43 +02:00
hrkrshnn 59db0f1537 An equivalence check for SIGNEXTEND opcode
Checking the implementation of SIGNEXTEND using Z3's native SignExt and Extract
2021-08-16 18:54:33 +02:00
Harikrishnan Mulackal 98a259a92d Merge pull request #11784 from ethereum/set-release-date
Set the release date and updated bugs_by_version.json
2021-08-11 12:52:37 +02:00
hrkrshnn 2c0c27c6d4 Set the release date and updated bugs_by_version.json 2021-08-11 12:13:07 +02:00
Harikrishnan Mulackal 3d33f212c8 Merge pull request #11780 from ethereum/sort-changelog-0.8.7
Sort changelog for 0.8.7 release
2021-08-11 11:43:57 +02:00
hrkrshnn 2577670e38 Sort changelog for 0.8.7 release 2021-08-11 10:52:13 +02:00
hrkrshnn 892700d769 Tests for basefee as identifier in inline assembly
Also added basefee to `EVMVersion::hasOpcode(...)`
2021-08-11 10:46:40 +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
Harikrishnan Mulackal 74ec3c1983 Merge pull request #11760 from ethereum/default-evmversion-london
Set default EVM version to London.
2021-08-11 10:42:41 +02:00
Harikrishnan Mulackal 0fc3e2dfb3 Merge pull request #11647 from ethereum/basefee
Implement London EVMVersion and the BASEFEE opcode
2021-08-11 10:31:22 +02:00
hrkrshnn 11b80dc8ce Updated changes in refunds: EIP-3529
Refunds are not accounted in Solidity's gas meter.
2021-08-11 09:55:21 +02:00
hrkrshnn 79733fca48 Set default EVM version to London. 2021-08-11 09:54:14 +02:00
hrkrshnn 43605d9299 Tests and Changelog for basefee. 2021-08-11 09:51:12 +02:00
hrkrshnn cb9b52c242 Docs for block.basefee and basefee() in Yul. 2021-08-11 09:27:36 +02:00
hrkrshnn a54addc2cb An equivalence check for the Byte opcode
Checks that the byte opcode (implemented using shift) is equivalent to a
canonical definition of byte using extract.
2021-08-10 11:00:29 +02:00
hrkrshnn af1dabb555 Added EVMVersion london.
Also set the value of `block_base_fee` for testing to 7 wei.
2021-08-09 16:18:08 +02:00
hrkrshnn 543ccf5287 Added the basefee instruction in YulInterpreter 2021-08-09 16:18:08 +02:00
hrkrshnn 95091f6b58 Implemented block.basefee in Solidilty and basefee() in Yul.
Also added basefee to Yul grammar.
2021-08-09 16:18:08 +02:00
hrkrshnn d92b211a2f Added the instruction basefee. 2021-08-09 16:18:08 +02:00
Harikrishnan Mulackal c89b46c55e Merge pull request #11726 from ethereum/yulScoping
Clarify Yul scoping rules.
2021-08-03 12:41:24 +02:00
Harikrishnan Mulackal 5ff0811b99 Merge pull request #11717 from jaa2/develop
Handle --optimize-runs option in assembly mode
2021-07-29 18:56:22 +02:00
Harikrishnan Mulackal fa49170bac Merge pull request #11714 from ethereum/fix-11709
Document free memory pointer overflow check in Sol->Yul.
2021-07-29 10:07:05 +02:00
hrkrshnn 8bec0c8a6b Updated docs and evmc.h header file for evmone 0.8.0 release 2021-07-27 16:39:41 +02:00
hrkrshnn 6b8c32b859 Updated circleci scripts with evmone 0.8.0 docker images 2021-07-27 16:38:55 +02:00
Harikrishnan Mulackal e3184c737a Merge pull request #11649 from ethereum/evmone-upgrade
Updated evmone version to 0.8.0 and evmc version to 9.0.0
2021-07-27 16:34:17 +02:00
hrkrshnn 1b56fdea9d Updated dockerfiles for evmone 0.8.0 2021-07-27 15:20:49 +02:00
Harikrishnan Mulackal 7041b87c3b Merge pull request #11694 from ethereum/chriseth-patch-1
Use caret for version pragma
2021-07-26 14:54:36 +02:00
Harikrishnan Mulackal 8f6c6eec27 Merge pull request #11683 from GuLiPing-Hz/patch-1
[Docs] Add `unchecked` to fix reverting `BigInt` example in `libraries.rst`
2021-07-26 14:02:40 +02:00