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

feat: O(1) selector tables #3496

Merged
merged 96 commits into from
Jul 25, 2023
Merged

Commits on Jul 4, 2023

  1. wip jumptables

    charles-cooper committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    ef474ba View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    20b5b1d View commit details
    Browse the repository at this point in the history
  3. use smaller buckets

    charles-cooper committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    391f3b5 View commit details
    Browse the repository at this point in the history
  4. don't need primes

    charles-cooper committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    eb3d54f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9f53fff View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ac651e7 View commit details
    Browse the repository at this point in the history
  7. refactor selector table generation

    move the function selection table into module.py so that it's easier to
    switch between the two selector table implementations
    charles-cooper committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    9ca04d4 View commit details
    Browse the repository at this point in the history
  8. lint jumptable

    charles-cooper committed Jul 4, 2023
    Configuration menu
    Copy the full SHA
    03defa6 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    471643b View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2023

  1. feat: add optimization mode to vyper compiler (vyperlang#3493)

    this commit adds the `--optimize` flag to the vyper cli, and as an
    option in vyper json. it is to be used separately from the
    `--no-optimize` flag. this commit does not actually change codegen,
    just adds the flag and threads it through the codebase so it is
    available once we want to start differentiating between the two modes,
    and sets up the test harness to test both modes.
    
    it also makes the `optimize` and `evm-version` available as source code
    pragmas, and adds an additional syntax for specifying the compiler
    version (`#pragma version X.Y.Z`). if the CLI / JSON options conflict
    with the source code pragmas, an exception is raised.
    
    this commit also:
    * bumps mypy - it was needed to bump to 0.940 to handle match/case, and
      discovered we could bump all the way to 0.98* without breaking
      anything
    * removes evm_version from bitwise op tests - it was probably important
      when we supported pre-constantinople targets, which we don't anymore
    charles-cooper committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    6428ce0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8bb5734 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8113cb7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    49c2491 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c0b200e View commit details
    Browse the repository at this point in the history
  6. wip sparse jumptable

    charles-cooper committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    3341193 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    1c8bd81 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    aae4679 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2023

  1. wip sparse jumptable

    charles-cooper committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    422273b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dead92d View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2023

  1. add a note

    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    c9c5181 View commit details
    Browse the repository at this point in the history
  2. sparse jumptable: remove global calldatasize check

    can just insert calldatasize check in special case where there are
    trailing 0s
    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    5322831 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7d78e6b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a869935 View commit details
    Browse the repository at this point in the history
  5. add a note

    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    aa2a04e View commit details
    Browse the repository at this point in the history
  6. elide a goto

    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    e4377ec View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f99cd2d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    134107c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    92ad539 View commit details
    Browse the repository at this point in the history
  10. relocate data sections to end

    this is important because in EVM, data immediately before regular
    (valid) code can mangle the valid code.
    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    4be2f3d View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d0cc42b View commit details
    Browse the repository at this point in the history
  12. fix lint, mypy

    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    34848f3 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    10a1e49 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    6309c14 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    2f0602b View commit details
    Browse the repository at this point in the history
  16. fix bucket size

    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    1e4dfa7 View commit details
    Browse the repository at this point in the history
  17. allow trailing pushes

    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    e1bf01b View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    57caf9d View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    c7e7a69 View commit details
    Browse the repository at this point in the history
  20. move runtime code to end

    it might have data segments in it, which can stomp on private functions
    in the constructor
    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    011dd6e View commit details
    Browse the repository at this point in the history
  21. fix lint

    charles-cooper committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    22085dc View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    674157f View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2023

  1. fix lint

    charles-cooper committed Jul 14, 2023
    Configuration menu
    Copy the full SHA
    a44271b View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2023

  1. Configuration menu
    Copy the full SHA
    7f5617b View commit details
    Browse the repository at this point in the history
  2. add codesize switch

    charles-cooper committed Jul 15, 2023
    Configuration menu
    Copy the full SHA
    2779afc View commit details
    Browse the repository at this point in the history
  3. fix lint

    charles-cooper committed Jul 15, 2023
    Configuration menu
    Copy the full SHA
    37456c3 View commit details
    Browse the repository at this point in the history
  4. remove skip_nonpayable_check kwarg

    it's no longer needed! the nonpayable checks can be computed during
    selector section construction.
    charles-cooper committed Jul 15, 2023
    Configuration menu
    Copy the full SHA
    4c0aa48 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6a6ee7f View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2023

  1. Configuration menu
    Copy the full SHA
    a2fbe2b View commit details
    Browse the repository at this point in the history
  2. rename helper function

    charles-cooper committed Jul 16, 2023
    Configuration menu
    Copy the full SHA
    1f20075 View commit details
    Browse the repository at this point in the history
  3. remove some dead code

    charles-cooper committed Jul 16, 2023
    Configuration menu
    Copy the full SHA
    fad71ab View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1df2db3 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2023

  1. export the symbol map

    charles-cooper committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    0b68fca View commit details
    Browse the repository at this point in the history
  2. add debug mode

    this allows us to additionally test in "debug" mode (which might have
    extra safety checks) and strip them in regular mode.
    charles-cooper committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    6dc9077 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3005c58 View commit details
    Browse the repository at this point in the history
  4. fix some small bugs

    charles-cooper committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    8a1337f View commit details
    Browse the repository at this point in the history
  5. fix a signature

    charles-cooper committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    8a96902 View commit details
    Browse the repository at this point in the history
  6. fix some test bugs

    charles-cooper committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    c4794df View commit details
    Browse the repository at this point in the history
  7. add override opt level

    charles-cooper committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    ed070ac View commit details
    Browse the repository at this point in the history
  8. fix max_examples

    charles-cooper committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    ae095e1 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2023

  1. Configuration menu
    Copy the full SHA
    0e6847f View commit details
    Browse the repository at this point in the history
  2. fix max calldata bytes

    charles-cooper committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    f72d1c0 View commit details
    Browse the repository at this point in the history
  3. use an iterator

    charles-cooper committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    41077a6 View commit details
    Browse the repository at this point in the history
  4. add back deleted code

    charles-cooper committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    155a126 View commit details
    Browse the repository at this point in the history
  5. fix mypy

    charles-cooper committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    752a60e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    24eda19 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d465136 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    52f386e View commit details
    Browse the repository at this point in the history
  9. remove dead comments

    charles-cooper committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    3176fc8 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    bf13ccb View commit details
    Browse the repository at this point in the history
  11. fix lint

    charles-cooper committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    581c168 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2023

  1. fix matrix debug name

    charles-cooper committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    1683f96 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1c64e4c View commit details
    Browse the repository at this point in the history
  3. fix name

    charles-cooper committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    5a9ec1e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ac96fe1 View commit details
    Browse the repository at this point in the history
  5. change falsey value

    charles-cooper committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    8825938 View commit details
    Browse the repository at this point in the history
  6. fix lint

    charles-cooper committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    5317f1f View commit details
    Browse the repository at this point in the history
  7. fix test config

    charles-cooper committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    97c4b7d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    9e6fe53 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    363f884 View commit details
    Browse the repository at this point in the history
  10. fix lint

    charles-cooper committed Jul 19, 2023
    Configuration menu
    Copy the full SHA
    9359f09 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2023

  1. Configuration menu
    Copy the full SHA
    1f7bd30 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2023

  1. fix a comment

    charles-cooper committed Jul 21, 2023
    Configuration menu
    Copy the full SHA
    12e4b39 View commit details
    Browse the repository at this point in the history
  2. improve cli help

    charles-cooper committed Jul 21, 2023
    Configuration menu
    Copy the full SHA
    8b98bcd View commit details
    Browse the repository at this point in the history
  3. fix lint

    charles-cooper committed Jul 21, 2023
    Configuration menu
    Copy the full SHA
    de7a450 View commit details
    Browse the repository at this point in the history
  4. test default settings

    remove an unused __init__.py file
    charles-cooper committed Jul 21, 2023
    Configuration menu
    Copy the full SHA
    ffeb8d6 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    283f168 View commit details
    Browse the repository at this point in the history
  6. add different default function configurations to fuzzer

    not there, payable, different levels of nonpayable.
    charles-cooper committed Jul 21, 2023
    Configuration menu
    Copy the full SHA
    35b2e80 View commit details
    Browse the repository at this point in the history
  7. fix an f-string

    charles-cooper committed Jul 21, 2023
    Configuration menu
    Copy the full SHA
    1c9f96c View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    16b91ba View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    af0f60b View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2023

  1. update a comment

    charles-cooper committed Jul 23, 2023
    Configuration menu
    Copy the full SHA
    d3d8b4d View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2023

  1. Configuration menu
    Copy the full SHA
    9cfb797 View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2023

  1. clean up a comment

    charles-cooper committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    8095ee8 View commit details
    Browse the repository at this point in the history
  2. update some comments

    charles-cooper committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    1a46120 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c7c8f73 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ab1638f View commit details
    Browse the repository at this point in the history