[Lldb-commits] [PATCH] D68995: clean up the implementation of PythonCallable::GetNumArguments
Pavel Labath via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Oct 17 01:53:36 PDT 2019
labath accepted this revision.
labath added a comment.
This revision is now accepted and ready to land.
In D68995#1712396 <https://reviews.llvm.org/D68995#1712396>, @lawrence_danna wrote:
> >> Looks like the old implementation also doesn't work for class or static methods, or for objects with `__call__` method. I added a bunch of tests for script commands with various callable types in the followon patch.
> >
> > Ok, I see... Would it be hard/impossible to fix that using the previous method, so that we have a unified implementation? Or would that result in a bunch of ifdefs too ? I'm sorry if that's obvious, but I don't know much about the C python api..
>
> I did fix the previous method for python2, at least for the callable types I could think of to test.
>
> There must be some way to get something resembling the old method to work for python3, because `inspect` does it. But it would be harder to get right, and a lot less likely to keep being correct in future versions of python. And I don't think it's possible to have a single implementation like that that works for both 2 and 3 without ifdefs.
Right, that's what I was thinking/fearing. I think I am satisfied with that explanation. Thanks for explaining.
> I was thinking that since python2 is EOL in like two months anyway, the best thing to do is to just keep the old implementation around until we drop python 2 support, and then delete it.
Yeah, though I don't know if that means that lldb will drop support for it straight away. I haven't heard of any plans like that, though the next weeks dev meeting will probably be a good place to talk about it. Will you be there by any chance?
================
Comment at: lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp:822
+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 3
+static const char *get_arg_info_script = R"(
+from inspect import signature, Parameter, ismethod
----------------
`static const char get_arg_info_script[]` (one pointer more efficient)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68995/new/
https://reviews.llvm.org/D68995
More information about the lldb-commits
mailing list