The purpose of this tool is to be able to generate a project with an
arbitrary number of source files in a given programming language. I
believe this can be useful as it lets you benchmark a given LLDB change
for performance locally. For example, if you are changing the way LLDB
processes a specific debug info section, you may want to make sure that
you're not regressing performance (or if you're making the change for
performance, you want to ensure that it actually improves things). You
could use this tool to generate 10,000 (or more) source files and see
how quickly lldb processes the debug info of the resulting binary.
I understand that many folks will measure performance changes against
large projects, usually proprietary in nature. I believe this is quite a
valid way to measure performance changes and this tool isn't meant to
change that. I wanted to offer this tool primarily as an alternative
that gives the developer more control over the size and contents of the
project (which is not something you always have when working with
proprietary projects).
Currently this tool only supports C, C++, and Swift. The Swift portions will
only work on macOS right now and will not work with upstream lldb. There are
also multiple ways to build Swift projects, this just chooses one specific
approach. Future work could include adding an option to choose the structure of
the generated Swift project.
os.path.join to be windows friendly?