ppx_bap

The set of ppx rewriters for BAP
README

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.

Install
Published
04 Jun 2021
Maintainers
Sources
v0.14.tar.gz
md5=cf2ae08b613776661094b9dccdf5e796
Dependencies
Reverse Dependencies
bap-abi
>= "2.5.0"
bap-analyze
>= "2.5.0"
bap-api
>= "2.5.0"
bap-arm
>= "2.5.0"
bap-beagle
>= "2.5.0"
bap-bil
>= "2.5.0"
bap-build
>= "2.5.0"
bap-bundle
>= "2.5.0"
bap-byteweight
>= "2.5.0"
bap-c
>= "2.5.0"
bap-cache
>= "2.5.0"
bap-dwarf
>= "2.5.0"
bap-elf
>= "2.5.0"
bap-frontend
>= "2.5.0"
bap-ghidra
>= "2.5.0"
bap-ida
>= "2.5.0"
bap-ida-plugin
>= "2.5.0"
bap-knowledge
>= "2.5.0"
bap-llvm
>= "2.5.0"
bap-mc
>= "2.5.0"
bap-microx
>= "2.5.0"
bap-mips
>= "2.5.0"
bap-objdump
>= "2.5.0"
bap-patterns
>= "2.5.0"
bap-phoenix
>= "2.5.0"
bap-plugins
>= "2.5.0"
bap-powerpc
>= "2.5.0"
bap-primus
>= "2.5.0"
bap-print
>= "2.5.0"
bap-radare2
>= "2.5.0"
bap-raw
>= "2.5.0"
bap-riscv
>= "2.5.0"
bap-std
>= "2.5.0"
bap-strings
>= "2.5.0"
bap-systemz
>= "2.5.0"
bap-taint
>= "2.5.0"
bap-thumb
>= "2.5.0"
bap-trace
>= "2.5.0"
bap-traces
>= "2.5.0"
bap-x86
>= "2.5.0"
bitvec-binprot
>= "2.5.0"
graphlib
>= "2.5.0"
monads
>= "2.5.0"
ogre
>= "2.5.0"
regular
>= "2.5.0"