[RFC] Deprecation of SBCommunication class in the SB API

I’m looking for opportunities to deprecate portions of the SB API that are difficult to support or are otherwise unused/untested. Because the lldb team has committed to ABI stability at the SB API layer, we are unable to remove any method completely. However, we are able to mark them as deprecated and remove their implementations so that they are stubs that do nothing.

SBCommunication is my current target. It’s unused and untested within LLDB itself and I’m not sure what the intention behind the class is. The only documentation I can find is the python docstring, which says “Allows sending/receiving communication”. A cursory google search mostly shows lldb source code and a few documents mentioning it. I take this to mean it’s not widely used or widely talked about.

Here is my call to action: If you use SBCommunication, I would like to hear about it. What do you use it for and why? I don’t want its removal to surprise anyone so please let me know. I would like to remove it before LLVM 18 is released, but I think it would be acceptable to wait longer if needed. I’m also willing to not remove it if somebody is relying on it and are willing to share how they use it (so we can add tests for their use case).

Thank you.

3 Likes