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

preparation for solidity v0.8.23 upgrade #452

Merged
merged 31 commits into from
Mar 1, 2024

Commits on Mar 1, 2024

  1. core/vm: use uint256 in EVM implementation (ethereum#20787)

    * core/vm: use fixed uint256 library instead of big
    
    * core/vm: remove intpools
    
    * core/vm: upgrade uint256, fixes uint256.NewFromBig
    
    * core/vm: use uint256.Int by value in Stack
    
    * core/vm: upgrade uint256 to v1.0.0
    
    * core/vm: don't preallocate space for 1024 stack items (only 16)
    
    Co-authored-by: Martin Holst Swende <martin@swende.se>
    2 people authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    192edc0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    06d5da0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    446b9e8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6077ecb View commit details
    Browse the repository at this point in the history
  5. core/vm: clean up contract creation error handling (ethereum#22766)

    Do not keep separate flag for "max code size exceeded" case, but instead
    assign appropriate error for it sooner.
    chfast authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    9c8d228 View commit details
    Browse the repository at this point in the history
  6. core/vm: fix interpreter comments (ethereum#22797)

    * Fix interpreter comment
    
    * Fix comment
    aaronbuchwald authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    7c6908b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    21bbe5f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7a55b9f View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f05fa00 View commit details
    Browse the repository at this point in the history
  10. core/vm: rework jumpdest analysis benchmarks (ethereum#23499)

    * core/vm: rework jumpdest analysis benchmarks
    
    For BenchmarkJumpdestOpAnalysis use fixed code size of ~1.2MB
    and classic benchmark loop.
    
    * core/vm: clear bitvec in jumpdest analysis benchmark
    chfast authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    dc8cdf3 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    f9e14af View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    3d3cc6c View commit details
    Browse the repository at this point in the history
  13. core/vm, core/state/snapshot: remove unused code (ethereum#23956)

    * core/state/snapshot: remove wiper functionality
    
    * core/vm: remove unused 'unofficial' opcodes
    holiman authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    f7c6b1a View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    6415934 View commit details
    Browse the repository at this point in the history
  15. core/vm: simplify error handling in interpreter loop (ethereum#23952)

    * core/vm: break loop on any error
    
    * core/vm: move ErrExecutionReverted to opRevert()
    
    * core/vm: use "stop token" to stop the loop
    
    * core/vm: unconditionally pc++ in the loop
    
    * core/vm: set return data in instruction impls
    chfast authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    823ec33 View commit details
    Browse the repository at this point in the history
  16. core/vm: rename SHA3 instruction to KECCAK256 (ethereum#23976)

    This was proposed in 2016, Solidity uses this since 2017, and evmone and other VMs use the keccak256 name. This brings geth in line with those.
    axic authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    c097e56 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    002be52 View commit details
    Browse the repository at this point in the history
  18. core/vm: move interpreter.ReadOnly check into the opcode implementati…

    …ons (ethereum#23970)
    
    * core/vm: Move interpreter.ReadOnly check into the opcode implementations
    
    Also remove the same check from the interpreter inner loop.
    
    * core/vm: Remove obsolete operation.writes flag
    
    * core/vm: Capture fault states in logger
    
    Co-authored-by: Martin Holst Swende <martin@swende.se>
    
    * core/vm: Remove panic added for testing
    
    Co-authored-by: Martin Holst Swende <martin@swende.se>
    2 people authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    bfbb678 View commit details
    Browse the repository at this point in the history
  19. core/vm: rename opSuicide to opSelfdestruct (ethereum#24022)

    The opcode was renamed in the codebase in 2017, but the functions were kept unchanged.
    axic authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    b1c0386 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    ae267d3 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    7d3c783 View commit details
    Browse the repository at this point in the history
  22. core/vm: move interpreter interruption check to jump instructions (et…

    …hereum#24026)
    
    * core/vm: Remove interpreter loop interruption check
    
    * core/vm: Unit test for interpreter loop interruption
    
    * core/vm: Check for interpreter loop abort on every jump
    gumb0 authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    4c27910 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    fbc1cc1 View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    2ce3001 View commit details
    Browse the repository at this point in the history
  25. core/vm: reverse bit order in bytes of code bitmap (ethereum#24120)

    * core/vm: reverse bit order in bytes of code bitmap
    
    This bit order is more natural for bit manipulation operations and we
    can eliminate some small number of CPU instructions.
    
    * core/vm: drop lookup table
    chfast authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    6e92486 View commit details
    Browse the repository at this point in the history
  26. core/vm: make INVALID a defined opcode (ethereum#24017)

    * core/vm: Define 0xfe opcode as INVALID
    
    * core/vm: Remove opInvalid as opUndefined handles it
    
    Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
    2 people authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    b022ba2 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    ac35f0e View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    62b62da View commit details
    Browse the repository at this point in the history
  29. core/vm: optimize Memory.Set32 (ethereum#24847)

    * core/vm: remove unnecessary memset for Memory.Set32
    
    * core/vm: optimize Memory.Set32
    qianbin authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    032b98e View commit details
    Browse the repository at this point in the history
  30. core/vm: better handle error on eip activation check (ethereum#25131)

    * core/vm: correct logic for eip check of NewEVMInterpreter
    
    * refactor
    qinglin89 authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    8b6db6d View commit details
    Browse the repository at this point in the history
  31. core/vm: performance tweak of OpCode.String() (ethereum#28453)

    make `opCodeToString` a `[256]string` array
    
    Co-authored-by: lmittmann <lmittmann@users.noreply.github.com>
    2 people authored and gzliudan committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    b36678f View commit details
    Browse the repository at this point in the history