You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The only representation of Crucible programs using the LLVM language extension is as an in-memory data structure. Here are a few reasons we might want to have concrete, textual syntax for these programs:
Tests of LLVM-related functionality are all currently integration tests involving llvm-pretty{,-bc-parser}. Not only is this not ideal from an isolation and modularity perspective, it is also slow.
Furthermore, all of our tests have to decide between including binary blobs (.bc files) or depending on tools being present in the environment (clang or llvm-as), and executing those tools during the test suite (which is also unnecessarily slow).
Textual test cases benefit from a sizable number of generic development tools (think fuzzers, delta debuggers, and tools like llvm-lit). With a some additional investment, very powerful tools like grammar-based fuzzers and test-case reducers become possible (e.g., llvm-reduce).
Higher-level tools like SAW could cache Crucible-LLVM programs to disk for repeated/interactive use.
A reasonable outcome here (i.e., the ability to serialize reasonably-sized Crucible-LLVM programs that result from translation from LLVM modules) might depend on #74.
The text was updated successfully, but these errors were encountered:
What a coincidence! I'm currently working on adding support for arbitrary language extensions to Crucible Syntax. After that work is done you'll only need to write a small parser hook into Crucible Syntax for the LLVM extension.
What a coincidence! I'm currently working on adding support for arbitrary language extensions to Crucible Syntax. After that work is done you'll only need to write a small parser hook into Crucible Syntax for the LLVM extension.
I just opened pull request #923 adding support for arbitrary language extensions.
The only representation of Crucible programs using the LLVM language extension is as an in-memory data structure. Here are a few reasons we might want to have concrete, textual syntax for these programs:
llvm-pretty{,-bc-parser}
. Not only is this not ideal from an isolation and modularity perspective, it is also slow..bc
files) or depending on tools being present in the environment (clang
orllvm-as
), and executing those tools during the test suite (which is also unnecessarily slow).llvm-lit
). With a some additional investment, very powerful tools like grammar-based fuzzers and test-case reducers become possible (e.g.,llvm-reduce
).A reasonable outcome here (i.e., the ability to serialize reasonably-sized Crucible-LLVM programs that result from translation from LLVM modules) might depend on #74.
The text was updated successfully, but these errors were encountered: