Clang open projects status for StringRefize API and XML Rep of ASTs

Hi Clang dev,

It’s advised to ask cfe-dev to verify that some specific Clang open projects has not been completed.
I wonder the status of the following open projects’ at

Are they not started, ongoing, or completed? I’d like pick one of them to start with.

  • StringRef’ize APIs: A thankless but incredibly useful project is StringRef’izing (converting to use llvm::StringRef instead of const char * or std::string) various clang interfaces. This generally simplifies the code and makes it more efficient.
  • XML Representation of ASTs: Clang maintains a rich Abstract Syntax Tree that describes the program. Clang could emit an XML document that describes the program, which others tools could consume rather than being tied directly to the Clang binary.The XML representation needs to meet several requirements:
    • General, so that it’s able to represent C/C++/Objective-C abstractly, and isn’t tied to the specific internal ASTs that Clang uses.
    • Documented, with appropriate Schema against which the output of Clang’s XML formatter can be verified.
    • Stable across Clang versions.

Hi Hongjun,

StringRef-ization and ArrayRef-ization are ongoing cleanup tasks, they are not particularly tied to anyone and probably a good way to get your feet wet.

I believe that the XML representations of ASTs nodes would require a higher degree of expertise on the Standard because of the translation phase (ie not tying the representation in XML to the classes used).

– Matthieu