nevillegrech / gigahorse-toolchain

A binary lifter and analysis framework for Ethereum smart contracts
Other
295 stars 61 forks source link

Souffle2.4 support #83

Closed sifislag closed 1 year ago

sifislag commented 1 year ago

Souffle 2.4 has changes in the way CSV inputs work. If a file is declared as .input and doesn't exist, the analysis ends with an error, instead of the warning it would report for versions up to 2.3.

This change only affected the conditional input pattern we use for the max context depth in our context sensitivity algorithms:

  .decl InputMaxContextDepth(d: number)
  .input InputMaxContextDepth(filename="MaxContextDepth.csv")

  MaxContextDepth(sigHash, d) :-
    (local.PublicFunction(_, sigHash);
     sigHash = FALLBACK_FUNCTION_SIGHASH),
    InputMaxContextDepth(d).

  MaxContextDepth(sigHash, 8) :-
    (local.PublicFunction(_, sigHash);
     sigHash = FALLBACK_FUNCTION_SIGHASH),
    !InputMaxContextDepth(_).

Client analyses may be affected in different ways.

Added an additionl ci testing job, that uses souffle 2.4.

github-actions[bot] commented 1 year ago

Test Results

38 tests   38 :heavy_check_mark:  17m 4s :stopwatch:   1 suites    0 :zzz:   1 files      0 :x:

Results for commit df10c0fb.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 year ago

Test Results (Souffle 2.4)

38 tests   38 :heavy_check_mark:  15m 52s :stopwatch:   1 suites    0 :zzz:   1 files      0 :x:

Results for commit 85c328d0.

github-actions[bot] commented 1 year ago

Test Results (Souffle 2.3)

38 tests   38 :heavy_check_mark:  19m 7s :stopwatch:   1 suites    0 :zzz:   1 files      0 :x:

Results for commit 85c328d0.