[lldb-dev] [RFC] Supporting Lua Scripting in LLDB

Raphael “Teemperor” Isemann via lldb-dev lldb-dev at lists.llvm.org
Mon Dec 9 00:33:21 PST 2019


I think this is great, thanks for working on this! My only concern is that I would prefer if we could limit the Lua tests to just the Lua->C++ calling machinery (e.g., that we handle Lua strings correctly and all that jazz) and not fragment our test suit. Otherwise Lua seems to require far less maintenance work than Python, so I am not worried about the technical debt this adds.

> On 9. Dec 2019, at 01:25, Jonas Devlieghere via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> 
> Hi everyone,
> 
> Earlier this year, when I was working on the Python script
> interpreter, I thought it would be interesting to see what it would
> take to support other scripting languages in LLDB. Lua, being designed
> to be embedded, quickly came to mind. The idea remained in the back of
> my head, but I never really got around to it, until now.
> 
> I was pleasantly surprised to see that it only took me a few hours to
> create a basic but working prototype. It supports running single
> commands as well as an interactive interpreter and has access to most
> of the SB API through bindings generated by SWIG. Of course it's far
> from complete.
> 
> Before I invest more time in this, I'm curious to hear what the
> community thinks about adding support for another scripting language
> to LLDB. Do we need both Lua and Python?
> 
> Here are some of the reasons off the top of my head as to why the
> answer might be
> "yes":
> 
> - The cost for having another scripting language is pretty small. The
> Lua script interpreter is very simple and SWIG can reuse the existing
> interfaces to generate the bindings.
> - LLDB is designed to support multiple script interpreters, but in
> reality we only have one. Actually exercising this property ensures
> that we don't unintentionally break that design assumptions.
> - The Python script interpreter is complex. It's hard to figure out
> what's really needed to support another language. The Lua script
> interpreter on the other hand is pretty straightforward. Common code
> can be shared by both.
> - Currently Python support is disabled for some targets, like Android
> and iOS. Lua could enable scripting for these environments where
> having all of Python is overkill or undesirable.
> 
> Reasons why the answer might be "no":
> 
> - Are our users going to use this?
> - Supporting Python is an ongoing pain. Do we really want to risk
> burdening ourselves with another scripting language?
> - The Python API is very well tested. We'd need to add test for the
> Lua bindings as well. It's unlikely this will match the coverage of
> Python, and probably even undesirable, because what's the point of
> testing the same thing twice. Also, do we want to risk fragmenting
> tests across two scripting languages?
> 
> There's probably a bunch more stuff that I didn't even think of. :-)
> 
> Personally I lean towards "yes" because I feel the benefits outweigh
> the costs, but of course that remains to be seen. Please let me know
> what you think!
> 
> If you're curious about what this looks like, you can find the patches
> on my fork on GitHub:
> https://github.com/JDevlieghere/llvm-project/tree/lua
> 
> Cheers,
> Jonas
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev



More information about the lldb-dev mailing list