Hi Everyone,
LLVM is a growing project, and many of us are very fond of it. LLVM is continuing to grow, both in maturity in specific areas and in scope of areas that it is applicable to.
When we first started the project, we focused on the design of the intermediate representation. It is a strong design goal that the IR be a self-contained virtual instruction set, which fully describes the program. Because of this, we named the compiler LLVM, which reflects well on the design of the IR.
However, the scope of the LLVM project is outgrowing this name. Today LLVM does many "non-VMy" tasks, such as serving as a great static compiler. It also has components that overlap with traditional low-level tool chain components like assemblers and linkers. Further, LLVM's scope is about to grow significantly with new front-end technologies (e.g. HLVM, new SoC work on a python front-end, etc). For all of these reasons, I think that "LLVM" is an increasingly poor name for the project as a whole, and it causes a large amount of confusion, particularly with people who do not know much about it yet.
For what it is worth, this is not a new thought. I have been kicking around the idea of renaming the project for several years now, but have been stymied by not being able to come up with a better name! The problem is hard: how do you concisely describe a modern, modular, component based compiler and tool-chain system, which can be used for many different things, hopefully many of which we haven't even thought of yet? How do you pick a name that both memberable, relatively unique (searchable), has an open domain name, etc? How do you come up with a name that is amenable to making a logo? So far, I haven't!
Note that the name need not capture every aspect of the project. Just having a distinguished name with no specific connotation is probably good enough. 20 years ago, "google" and "yahoo" had very different meanings, and "mozilla" or "firefox" were pretty meaningless. Today, there is very strong awareness of what they are.
As such, I'd like to open up a forum for naming ideas. I think we need to continue to use the name 'LLVM' to refer to the IR (i.e. that which is described in LLVM Language Reference Manual — LLVM 16.0.0git documentation), and we should plan to attach LLVM as a suffix to the project name for several years to come: For example: "Use the Foo/LLVM Compiler System, it runs infinite loops faster than the competition!".
To make this more fun, "success" is extremely subjective, and I have no idea how we will declare a victor (we can figure it out as we go, right? :). I propose that people add ideas to the wiki that Vikram and Reid are getting set up, and we kick some potential names around at the developer mtg in May. That gives us 5 or 6 weeks to come up with a name and/or Logo. The wiki isn't up yet, so consider this to be a head start :).
If we find a good name, we can honor the one who came up with it with a small amount of booty. For example, we're prepared to award a compiler textbook of your choice (MSRP < $100) to the winner, optionally signed by people at the dev meeting if you so desire and if they agree. Alternatively, we could do a $100 gift card to Amazon or some other place.
What say you? Are you up for the challenge?
-Chris
p.s., no I don't think "Foo Compiler System" is a good choice.