https://github.com/labath commented:

I think it'd be good to separate the general mechanics of creating and managing 
a telemetry (telemeter) instance from the details of logging individual 
telemetry entries. I.e. one PR for the general infrastructure (maybe include 
one simple (startup?) telemetry entry, if you think it's necessary to make a 
point), and then one PR for each of the entries.

The plugin infrastructure seems very.. baroque. Why do we need the intermediate 
TelemetryVendor class? And why a whole list of them?

The reason we support registering more than one e.g. SymbolFile plugin is that 
we can choose which one to use at runtime (based on which file the user opens, 
etc.). Do we want to do something like that here? What would that even mean?

To create a basic indirection (so that the vendor implementation can be 
decoupled from the rest of lldb), it sounds to me like all one need is one 
function pointer (the factory function for the "telemeter"), a way to set it 
from inside the plugin (`PluginManager::SetTelemetryPlugin` ?) and then a way 
to call it (another function?)

https://github.com/llvm/llvm-project/pull/98528
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to