labath wrote:

> I'd also love to hear other people opinion on extending platforms through 
> ScriptedPlatform (cc @labath @jimingham @JDevlieghere )

I think that having the ability to forward operations to existing platform 
instances would be very useful. If you look at PlatformQemuUser, most of its 
functions just forward operations to be host platform. We also have another 
downstream plugin which looks very similar to that. I would love if both of 
these could be lightweight python wrappers.

That said, I'm not exactly sure how Greg's idea would work, or if it's even 
needed. Some of this functionality without any special support, by just having 
an `SBPlatform` member inside the python class. This would be more flexible as 
you could call it only when it suits you (going with the Qemu example, the 
emulator mostly exposes the host filesystem, but it has some special remapping 
logic for system libraries (like LD_LIBRARY_PATH, but implemented in the 
emulator), so we may want to implement get/putfile mostly by deferring to the 
host, and only doing something custom for special paths). And if you really 
wanted to you could make a python wrapper class that makes all of this looks 
like (python) inheritance -- without any special support in lldb.

The main flaw in this idea is that the SBPlatform interface is pretty small 
compared to the internal Platform interface. I'm guessing the python class will 
be implementing something like the internal interface, while it will only have 
the external API to work with...

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

Reply via email to