medismailben wrote:

> Is part of the goal of this class to extend another platform by being able to 
> override a built in platform? If so, we might want the script platform class 
> to be able to specify the name of the platform it wants to extend with a 
> method. Something like:
> 
> ```
> class ScriptedPlatform:
>   def extends_platform_name(self):
>     '''Get the name of the internal platform this class extends.'''
>     return "iPhoneOS.platform"
>   def get_platform_name(self):
>     '''Get the name of this platform.'''
>     return "iPhoneOS.platform.scripted"
> ```
> 
> Then the script platform python class would instantiate a 
> `"iPhoneOS.platform"` platform and keep it as an instance variable, then the 
> ScriptedPlatformPython would check if the python class implements the method 
> in python, and if it doesn't, it will call through to the 
> `"iPhoneOS.platform"` platform via its instnace variable. Any methods that 
> are overridden in the scripted pyton class would take precedence and not call 
> through to the underlying platform. If a python class doesn't have a `def 
> extends_platform_name(self):` method, then any methods that aren't there just 
> return an error of `"unimplemented"`.

Very interesting idea. This is not was I was thinking of while implementing 
this: `ScriptedPlatform` is meant mostly to mock a new platform to be able to 
list and "launch" or "attach" to processes (mainly `ScriptedProcess` but 
nothing should prevent us to launch a `GDBRemote` process or any other kind.

I think this is a pretty cool idea, but this PR is already pretty big & 
intrusive, so I think we should do it as a follow-up, once we've figured out 
how we could break up platforms like @JDevlieghere explained.

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

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