[LLVMdev] "Name that compiler"

Chris Lattner
Thu, 12 Apr 2007 04:44:18 -0000

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 http://llvm.org/docs/LangRef.html), 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. ;-)

--