Skip to content
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
wants to merge 34 commits into
base: gas.extcodesize
Choose a base branch
from

Conversation

virgil-serbanuta
Copy link
Owner

No description provided.

dwightguth and others added 2 commits November 27, 2017 10:48
* 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 virgil-serbanuta force-pushed the gas.account-creation-deletion branch from 2553718 to 83f4827 Compare November 29, 2017 18:37
theo25 and others added 19 commits November 30, 2017 11:46
* 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
@virgil-serbanuta virgil-serbanuta force-pushed the gas.account-creation-deletion branch from 3bd64a2 to c3f6ef8 Compare November 30, 2017 23:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants