forked from runtimeverification/iele-semantics
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DO NOT REVIEW - Account creation and destruction #8
Open
virgil-serbanuta
wants to merge
34
commits into
gas.extcodesize
Choose a base branch
from
gas.account-creation-deletion
base: gas.extcodesize
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* analysis.md, ethereum.md: disable gas analysis mode for now * ethereum.md, iele.md: disable callLog for now * ethereum.md, iele.md: decompose contract code into separate functions * ethereum.md: clean up ethereum test driver * ethereum.md, iele.md: decompose IELE semantics to work at instruction-level instead of byte-level * iele.md: refactor CREATE into CREATE and COPYCREATE which takes a whole contract * iele.md: remove CODECOPY and EXTCODECOPY instructions * iele.md: refactor program header * iele.md: remove PC instruction * iele.md: fix CODESIZE and EXTCODESIZE instructions * iele.md: load code into program cell better * iele.ml, conversion.ml: conversion from EVM to distinct functions * analysis.md, ethereum.md, iele.md: refactor structure of <function> cell * ethereum.md: recreeate clear instruction * ethereum.md: handle binary encoding of wallet acocunts * iele.md: fix function call of initialization routine during CREATE * conversion.ml, iele.ml: update conversion from EVM to IELE with new opcode syntax * conversion.ml: fix bug in calldest creation * conversion.ml: fix bug in functions conversion * conversion.ml: fix conversion of wallet accounts * tests/failing.expected: remove failing test in vmRandomTest * data.md: add some more support for WordStack and Array manipulation * ethereum.md, iele.md: change local memory to array of array * iele.md: fix bug with failing contract execution * iele.md: clean up unused local memory code * conversion.ml, evm.ml, iele.ml: update conversion for MSTORE/MLOAD to use array of array * conversion.ml, evm.ml, iele.ml: remove PC instruction from converted IELE code * iele.ml: fix conversion for CREATE and COPYCREATE opcodes * tests/failing.expected: add some tests that fail with function separation * iele.md: fix initFun klabel * conversion.ml: fix conversion of EVM for precompiled contracts * conversion.ml: fix bug in conversion of function splitting * conversion.ml: fix conversion of SHA3 and LOG(n) * tests/failing.expected: update list of failing tests * remove .k files from repo * Makefile: add code to run GeneralStateTests * data.md: fix RLP decoding of Ethereum rlp (with unsigned integers) * ethereum.md: fix code to start transactions for new semantics design * ethereum.md: fix #adjustGas to correctly handle refund * ethereum.md: restructure GeneralStateTests to not decode RLP * ethereum.md, iele.md: create #emptyCode macro representing code of nonexistent account * ethereum.md, iele.md: add some missing cases for CREATE * iele.md: rename nargs to nparams * iele.md: check number of params on function call * iele.md: fix exported table for precompiled contract * conversion.ml: fix signed result of addmod * conversion.ml: only copy mem after call if call succeeds * conversion.ml: fix conversion of precompiled contracts * conversion.ml: fix conversion of STOP instruction * tests/failing.expected: add some new failing tests * data.md: make #take tail recursive * conversion.ml: fix conversion of BYTE with negative operand * Makefile: disable GeneralStateTests for now * ethereum.md, Makefile: restructure semantics * data.md, ethereum.md, iele.md: clean up some documentation * data.md, iele.md: minor improvements to IELE readability and verifiability * data.md, iele.md: remove #ifInt and replace with #if * iele.md: remove implicit use of context abstraction to get the right jump table * iele-binary.md: add binary encoding in separate file
* Iele parser. Not fully optimized because Iele is still being developed and further optimizations would make the parser much harder to change. Parses Theo's syntax. * Add a file I forgot. * Make cabal and git happier with build system Cabal complained about the LICENSE having a relative path outside the directory, fixed with a symlink. Stack's build directory was not ignored by git, fixed by adding .gitignore file * Use applicative operators and more Parsec utilities
virgil-serbanuta
force-pushed
the
gas.account-creation-deletion
branch
from
November 29, 2017 18:37
2553718
to
83f4827
Compare
virgil-serbanuta
force-pushed
the
gas.extcodesize
branch
from
November 29, 2017 20:28
017cd72
to
9998f5f
Compare
virgil-serbanuta
force-pushed
the
gas.account-creation-deletion
branch
from
November 29, 2017 20:29
83f4827
to
3bd64a2
Compare
* Added a K module with the textual iele syntax definition and an example program * Fixes to enforce non-empty lists in various places Without these changes log @A,@b,@c,@d=call @d() could be parsed as either log @A,@b, @c,@d=call @d() or log @A,@b,@c,@d =call @d() Both of these are wrong syntactically and should not be accepted. This can be fixed if we enforce non-empty lists in the following: * Non-empty Operands for 'log' and non-empty LValues for 'call's. * Non-empty Operands for 'return' and 'revert'. * WIP: Iele textual syntax in the semantics rules * IELE textual syntax in the semantics rules * Updated the textual iele example to reflect the changes in the syntax. * Fix for correct naming of subcontracts when dissambling into text * Moved desugared productions out of IELE-SYNTAX * Fix the naming convention between parent and child contracts
* iele-binary.md, conversion.ml: add disassembly for global registers * iele.md: fix ECPAIRING arity bug * delete unnecessary files leftover from EVM repo * META, Makefile, data.md, ethereum.md, iele-binary.md, iele-syntax.md, iele.md, krypto.md: Rename EVM and Ethereum everywhere, clean up semantics and add documentation * iele.md: fix case when copycreate copies the empty account * data.md: clean up RLP encoding code * data.md, iele-binary.md: rename pushLen and pushOffset to loadLen and loadOffset * ethereu.md, iele-binary.md, iele-syntax.md, iele.md: rename coinbase to beneficiary * conversion.ml, iele.md: make divide by zero an exception * ethereum.md, iele.md: remove gas cost for copying existing contracts * ethereum.md, iele-binary.md, iele-syntax.md, iele.md: remove callcode and delegatecall * iele.md, conversion.ml: fix bugs * iele.md: arbitrary precision storage keys * tests/failing.expected: remove callcode tests * iele-syntax.md, iele.md: move special function names to iele-syntax.md
* Added wiki files into the IELE repo * Removed wiki dir and moved contents to top level
and some ideas on MULMOD and EXPMOD
Dwight will remove PC in runtimeverification#14
virgil-serbanuta
force-pushed
the
gas.account-creation-deletion
branch
from
November 30, 2017 23:07
3bd64a2
to
c3f6ef8
Compare
…banuta/iele-semantics into gas.account-creation-deletion
…banuta/iele-semantics into gas.account-creation-deletion
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.