Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. =================================================
  2. PIE : Precondition Inference Engine
  3. --------------------------------------------------------------------------------------------------
  4.  
  5. 0. Dependencies
  6. ..................................................................................................
  7.  
  8. 0.0] Environment + Compilers
  9. - Bash
  10. - Python 2, Python 3
  11. - OCaml 4.0+
  12. - LLVM+Clang source (3.6+) for invariant inference (cloned in Repos)
  13.  
  14. 0.1] Libraries
  15. - pyparsing (Python)
  16. - batteries (OCaml)
  17. - qcheck (OCaml)
  18.  
  19. 0.2] Constraint solvers
  20. - Z3Str2 (cloned in Repos)
  21. - CVC4 (cloned in Repos)
  22.  
  23.  
  24. 1. Running the tests
  25. ..................................................................................................
  26.  
  27. 1.1] Precondition Inference tests:
  28. - Precondition Inference
  29. - Repos/PIE/specs
  30. - Run all tests: ./test_all.sh <cg>
  31. - cg = optional cgroup container name or ""
  32. - Test specific func F in module M:
  33. ./test.sh <M> <F> <cg> <tests> <sz_c>
  34. - M = Module file (list.ml)
  35. - F = Function Id (4)
  36. - cg = cgroup name (leave "")*
  37. - tests = random tests count (6400)
  38. - sz_c = size of conflict groups (16); use "all" for full size
  39.  
  40. 1.1] Loop Invariant Inference tests:
  41. - Run in Repos/llvm/build
  42. - To run all tests over all configs: ./check_all <cg>
  43. - cg = optional cgroup container name or ""
  44. - To run specific benchmark B:
  45. ./checker <B> <tests> <tool> <cg> <sz_c>
  46. - B = Path to benchmark file (../../PIE/bm_strings/cav2014d.cpp)
  47. - tests = random tests count (6400)
  48. - tool = PIE vs just Escher (pie)
  49. - cg = cgroup container name (leave "")
  50. - sz_c = size of conflict groups (16); use "all" for full size
  51.  
  52. 2. Modifying and re-building
  53. ..................................................................................................
  54.  
  55. 2.1] Modifying PIE
  56. - Repos/PIE/base/ has PIE code
  57. - Repos/PIE/abduce/ has code for abduction using PIE
  58. - Repos/PIE/bm_*/ are various benchmark suits (for loop invariant inference)
  59. - Repos/PIE/specs/ has test code & cases for precondition inference
  60. - Repos/PIE/hybrid has the interface for hybrid verifier to PIE (CVC4 + Z3Str2)
  61. - Repos/PIE/pldi_logs has cleaned logs generated on my machine for benchmarks mentioned in PLDI submission
  62. - No rebuilding necessary
  63.  
  64. 2.2] Modifying clang tool
  65. - Modify within Repos/PIE/ClangTool/pinvgen/
  66. - Run Repos/PIE/ClangTool/setup.sh <LLVM_ROOT> <cg>
  67. - LLVM_ROOT = ../../llvm
  68. - cg = cgroup container name (if you have created one); or ""
  69.  
  70. Thanks for testing!
  71. =================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement