Removing pseudo parser

The original authors are no longer working on clang-pseudo and we propose to delete it (clang-tools-extra/pseudo/).

We made some progress[1], but not fast enough, and business priorities shifted too. We’ve not been actively working on it for about 6 months, it doesn’t have any external momentum/contributions, and is not complete enough to be useful.

Deleting it saves build complexity, buildbot resources, and confusion. It makes it harder to resume work, which is why we delayed this decision. But unless someone objects, I plan to delete it in a week.

(The only current in-tree dependencies are some marginal features in clangd, which we can simply drop)


[1] it was able to produce an (ambiguous) parse tree for real-world C++ with good performance, and we had a plausible plan for disambiguating based on whole-file and whole-program information. This approach still seems reasonable if we want a high-accuracy C++ heuristic parser, but there’s a lot of work left to be done.

5 Likes

SGTM, thank you for being proactive about removing this!

1 Like

Not fast enough as in the progress was slower than expected, or as in the performance of the solution was worse than expected?

Progress… I believe parsing performance was on the order of 5MB/s which was OK for our purposes.

Thanks for the clarification! I think it would be nice to include some pointers about what things are missing in the commit message that removes the code (and some references to the existing design docs) just in case someone wants to pick it up later on. I was rooting for this project, sad to see it removed but given the circumstances it sounds good to me.

1 Like

Sorry to hear it, I was rooting for this project as well.

I think it would be nice to include some pointers about what things are missing in the commit message that removes the code (and some references to the existing design docs) just in case someone wants to pick it up later on.

+1, e.g. a link to the original design doc to make it more discoverable

I randomly saw this thread today. clang-tools-extra/pseudo still exists – do we no longer want to remove it?

I think it should be removed; it’s unmaintained and there was no pushback against the removal in this RFC.

I put up a patch here: Remove clang-pseudo by AaronBallman · Pull Request #109154 · llvm/llvm-project · GitHub

1 Like

There is an open PR ([pseudo] remove most of clang-pseudo by sam-mccall · Pull Request #80081 · llvm/llvm-project · GitHub) that removes it, but we haven’t followed up on it. I think we can merge it after resolving the conflicts.

1 Like

Ah, thanks! I hadn’t spotted that before. I’m happy to close my PR if @sam-mccall would like to push his forward.

Looks like yours is removing clangd bits too, while Sam’s isn’t, so maybe yours is more complete (?)

clangd was clang-pseduo as a library for some functionality, so I moved those sources and headers into clangd.

clang-pseudo was removed in ed8f78827895050442f544edef2933a60d4a7935, thank you for poking the thread!

2 Likes