package ppx_bap

  1. Overview
  2. Docs
The set of ppx rewriters for BAP

Install

Dune Dependency

Authors

Maintainers

Sources

v0.14.tar.gz
sha256=b549ed28fb058e53f3fae0ae0f6a0279f0e4b21ad83705a468e730f8c2e47ade
md5=cf2ae08b613776661094b9dccdf5e796

Description

ppx_bap is the set of blessed ppx rewriters used in BAP projects. It fills the same role as ppx_base or ppx_jane (from which it is derived), but doesn't impose any style requirements and has only the minimal necessary set of rewriters.

Published: 04 Jun 2021

README

The set of ppx rewriters for BAP

Provides a BAP-specific ppx rewriter that includes only the blessed set of rewriters that are needed to build and use bap projects. In the future, we may even add our own more specialized rewriters. This package is used by BAP and by BAP plugins via the bapbuild tool.

Adding a new rewriter

The way how ppx rewriters work, unfortuntely, precludes us from adding a new rewriter to a downstream package, e.g., by adding a new dependency directly to the build configuration of a plugin that needs an extra rewriter. Therefore, if a new rewriter is need it has to go through the blessing process and get included into this package. This might change in the future, if we will switch to the dune build system that has a mechanism to build a preprocessor from the specified set of rewriters during the build (essentially this package). Until this, the pull requests are welcome. Just go to the src/dune file and add the needed rewriter into the library stanza.

Legacy

This project is a mere copy of the ppx_jane/ppx_base projects with the set of rewriters amended to our needs. E.g., we exclude the js_style rewriter that is not compatible with the code generated by ocamlfind or piqi. We also excluded some other rewriters that we are not using, to speed up the build process and make our code base more reliable.

Dev Dependencies

None

Used by (63)

  1. bap-abi >= "2.5.0"
  2. bap-analyze >= "2.5.0"
  3. bap-api >= "2.5.0"
  4. bap-arm >= "2.5.0"
  5. bap-beagle >= "2.5.0"
  6. bap-beagle-strings >= "2.5.0"
  7. bap-bil >= "2.5.0"
  8. bap-build >= "2.5.0"
  9. bap-bundle >= "2.5.0"
  10. bap-byteweight >= "2.5.0"
  11. bap-byteweight-frontend >= "2.5.0"
  12. bap-c >= "2.5.0"
  13. bap-cache >= "2.5.0"
  14. bap-callgraph-collator >= "2.5.0"
  15. bap-core-theory >= "2.5.0"
  16. bap-dependencies >= "2.5.0"
  17. bap-disassemble >= "2.5.0"
  18. bap-dump-symbols >= "2.5.0"
  19. bap-dwarf >= "2.5.0"
  20. bap-elf >= "2.5.0"
  21. bap-frontend >= "2.5.0"
  22. bap-ghidra >= "2.5.0"
  23. bap-ida >= "2.5.0"
  24. bap-ida-plugin >= "2.5.0"
  25. bap-knowledge >= "2.5.0"
  26. bap-llvm >= "2.5.0"
  27. bap-mc >= "2.5.0"
  28. bap-microx >= "2.5.0"
  29. bap-mips >= "2.5.0"
  30. bap-objdump >= "2.5.0"
  31. bap-optimization >= "2.5.0"
  32. bap-patterns >= "2.5.0"
  33. bap-phoenix >= "2.5.0"
  34. bap-plugins >= "2.5.0"
  35. bap-powerpc >= "2.5.0"
  36. bap-primus >= "2.5.0"
  37. bap-primus-lisp >= "2.5.0"
  38. bap-primus-loader >= "2.5.0"
  39. bap-primus-print >= "2.5.0"
  40. bap-primus-propagate-taint >= "2.5.0"
  41. bap-primus-random >= "2.5.0"
  42. bap-primus-symbolic-executor >= "2.5.0"
  43. bap-print >= "2.5.0"
  44. bap-radare2 >= "2.5.0"
  45. bap-raw >= "2.5.0"
  46. bap-relocatable >= "2.5.0"
  47. bap-riscv >= "2.5.0"
  48. bap-std >= "2.5.0"
  49. bap-strings >= "2.5.0"
  50. bap-stub-resolver >= "2.5.0"
  51. bap-symbol-reader >= "2.5.0"
  52. bap-systemz >= "2.5.0"
  53. bap-taint >= "2.5.0"
  54. bap-term-mapper >= "2.5.0"
  55. bap-thumb >= "2.5.0"
  56. bap-trace >= "2.5.0"
  57. bap-traces >= "2.5.0"
  58. bap-x86 >= "2.5.0"
  59. bitvec-binprot >= "2.5.0"
  60. graphlib >= "2.5.0"
  61. monads >= "2.5.0"
  62. ogre >= "2.5.0"
  63. regular >= "2.5.0"

Conflicts

None

OCaml

Innovation. Community. Security.