As part of our plan to support C++ in act, for transactional memory investigation, I propose that we rearchitect the parser/emitter for C such that they instead target a distinct language (which I’m tempted to call phenolphthalein), and maintain a separate emitter (not a parser!) for the C output of delitmusing.
This would allow for a few new advances:
letting us merge the ‘C language’ and litmus ASTs, monomorphising a lot of the Litmus support;
stripping phenolphthalein of bits of the C AST we don’t need or can’t easily parse, such as the lexer hack;
making the phph translation infallible, but the external conversions fallible, as the target language might not support all of the features.
We could imagine targeting an external C/C++ AST such as Clang’s, but I imagine the support of transactions might make this in feasible.
I’m unsure as to how the various C-like ASTs would share common ground yet.
As part of our plan to support C++ in act, for transactional memory investigation, I propose that we rearchitect the parser/emitter for C such that they instead target a distinct language (which I’m tempted to call phenolphthalein), and maintain a separate emitter (not a parser!) for the C output of delitmusing.
This would allow for a few new advances:
We could imagine targeting an external C/C++ AST such as Clang’s, but I imagine the support of transactions might make this in feasible.
I’m unsure as to how the various C-like ASTs would share common ground yet.