Artifacts for the CGO23 paper: D2X: An eXtensible conteXtual Debugger for modern DSLs
Description
Compiled Domain Specific Languages are taking over various high-performance domains because of their ability to exploit the domain knowledge and apply optimizations that produce the most specialized code. A lot of research has gone into making DSLs more performant and easy to prototype. But the Achilles heel for DSLs is still the lack of debugging support that provides an end-to-end picture to the user and improves the productivity of both the DSL designer and the end-user. Conventional techniques extend the compilers, the debugging information format, and the debuggers themselves to provide more information than what the debugger can provide when attached to the generated code. Such an approach quickly stops scaling as adding extensions to large and complex debuggers hampers DSL designer productivity. We present D2X, a DSL debugging infrastructure that works with most standard debuggers without any modifications and is easily extensible to capture all the domain-specific information the end-user cares about. We show that we can add debugging support to the state-of-the-art graph DSL GraphIt with as little as 1.4% changes to the compiler codebase. We also apply our techniques to a meta-programming DSL framework BuildIt so that any DSLs built on top of BuildIt automatically get debugging support without any modifications further boosting the productivity of future DSL designers.
This package contains the source code for D2X and the applications that are implemented in the paper. The package also contains all the steps to reproduce the results.
Files
D2X_CGO23_Artifacts.zip
Files
(8.5 MB)
Name | Size | Download all |
---|---|---|
md5:ad385dbe57bc75faa1cc8be8b21a3eeb
|
8.5 MB | Preview Download |