package ppx_bap
Install
Dune Dependency
Authors
Maintainers
Sources
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.
Dependencies (17)
-
ppxlib
>= "0.15.0"
-
dune
>= "2.0.0"
- ppx_variants_conv
- ppx_sexp_value
- ppx_sexp_conv
- ppx_optcomp
- ppx_here
- ppx_hash
- ppx_fields_conv
- ppx_enumerate
- ppx_compare
- ppx_cold
- ppx_bin_prot
- ppx_bench
- ppx_assert
- base_quickcheck
-
ocaml
>= "4.08.0" & < "4.12.0"
Dev Dependencies
None
Used by (63)
-
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-beagle-strings
>= "2.5.0"
-
bap-bil
>= "2.5.0"
-
bap-build
>= "2.5.0"
-
bap-bundle
>= "2.5.0"
-
bap-byteweight
>= "2.5.0"
-
bap-byteweight-frontend
>= "2.5.0"
-
bap-c
>= "2.5.0"
-
bap-cache
>= "2.5.0"
-
bap-callgraph-collator
>= "2.5.0"
-
bap-core-theory
>= "2.5.0"
-
bap-dependencies
>= "2.5.0"
-
bap-disassemble
>= "2.5.0"
-
bap-dump-symbols
>= "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-optimization
>= "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-primus-lisp
>= "2.5.0"
-
bap-primus-loader
>= "2.5.0"
-
bap-primus-print
>= "2.5.0"
-
bap-primus-propagate-taint
>= "2.5.0"
-
bap-primus-random
>= "2.5.0"
-
bap-primus-symbolic-executor
>= "2.5.0"
-
bap-print
>= "2.5.0"
-
bap-radare2
>= "2.5.0"
-
bap-raw
>= "2.5.0"
-
bap-relocatable
>= "2.5.0"
-
bap-riscv
>= "2.5.0"
-
bap-std
>= "2.5.0"
-
bap-strings
>= "2.5.0"
-
bap-stub-resolver
>= "2.5.0"
-
bap-symbol-reader
>= "2.5.0"
-
bap-systemz
>= "2.5.0"
-
bap-taint
>= "2.5.0"
-
bap-term-mapper
>= "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"
Conflicts
None