[swift-lldb-dev] REPL questions
Perry E. Metzger
perry at piermont.com
Sun Dec 6 08:48:35 CST 2015
On Sat, 5 Dec 2015 16:33:54 -0800 Todd Fiala via swift-lldb-dev
<swift-lldb-dev at swift.org> wrote:
> Thanks for the questions on the REPL.
> I would direct you to those licenses to see if they are
> compatible with your desired usage.
Licensing isn't really what I'm worried about. I have a technical
> There are at least a few apps that incorporate LLDB into their
> IDEs, either via the SB API (the LLDB C++-based API), via the GDB
> Remote protocol, and via the GDB mi protocol (via lldb-mi). It is
> definitely possible to go the route of setting up an app that
> communicates with LLDB to get a REPL experience that way.
> I'll be able to comment more directly on questions this upcoming
What I'm more looking for is this. Consider how Emacs uses elisp --
the application can be extended and altered by the end user at will
by adding new interpreted elisp code in the field.
Say I wanted to have a Swift based system that did more or less the
same thing, that is, which provided users with the ability to extend
the function of their program by writing Swift code which was loaded
and interpreted at run time and which interacted seamlessly with the
Swift code that makes up the body of the application.
I'm sure that given enough work this could be done, but I'm asking
if this is something that should be reasonably practical to do with
the REPL given the current architecture or if it would require an
unreasonable amount of work.
Note that I'm not trying to build an IDE. It is rather an application
where a sophisticated end user may have needs that are difficult for
the application programmer to fully anticipate.
(If there is some other way to do this that is more practical, say
somehow incorporating the compiler at runtime and compiling and
loading new code into the app, I'd be interested in knowing. However,
an interpreter seemed like the easier choice.)
Perry E. Metzger perry at piermont.com
More information about the swift-lldb-dev