GaloisInc / crucible

Crucible is a library for symbolic simulation of imperative programs
628 stars 42 forks source link

crucible: Typed overrides #1135

Closed langston-barrett closed 9 months ago

langston-barrett commented 9 months ago

Several Crucible frontends (jvm, llvm, go) make use of types that include:

Several language extensions make use of the LLVM memory model (e.g., LLVM, WASM, and Macaw), and could concievably share override implementations relating to memory. One could also imagine sharing implementations of overrides like crucible_assert. To make this task easier, it would be nice to unify these notions of "typed overrides", by adding a type to the base Crucible library and using it in the different frontends.