"Name that compiler"

Hi Everyone,

LLVM is a growing project, and many of us are very fond of it. :slight_smile: 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! :slight_smile:

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. :wink:

Chris Lattner wrote:

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 18.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!".
  
How about Illuvium? It's pronounceable, it pays homage to "LLVM", and the domain's already taken by someone who might be persuaded to give it up :slight_smile:

a non goal: sounding like the old name. :slight_smile:

-Chris

Oh yeah, please avoid 'VM' in the name. :slight_smile:

-Chris

My suggestion: "Warlock" or "Warloc"
It can be thought of as standing for "We aren't like other compilers," but that doesn't have to be pointed out, as it's also a word on its own. It has a sense of being something powerful and/or magical, and should be feasible to make a logo to go along with.

--Owen

lcs for language compiling system? It's a suggestive of the old name, easy to remember, easy to say, and seems to be easy to google. Advanced could be prepended to it to make it alcs to make it even more unique.

-e

OmniC
or Omnipiler
or Omnicom
– stands for “Omnipotent Compiler”

I prefer the first.

BTW,

In case I didn't mention it before, the names are being kept track of
here:

http://llvm.org/DevMtgMay2007.html#names

There's also some ideas for name generation there.

Thanks for all the recent submissions!

Reid.

Mithril

The fictional metal from JRR Tolkien The Lord of the Rings.

Gandalf says:

“Mithril! All folk desired it. It could be beaten like copper, and polished like glass; and the Dwarves could make of it a metal, light and yet harder than tempered steel. Its beauty was like to that of common silver, but the beauty of mithril did not tarnish or grow dim.”

Paolo Invernizzi

Hi

The Dragon book, led my thoughts to "Here be dragons"

"In another context, software programmers sometimes use it to indicate
especially difficult or obscure sections of code in a program so that others
do not tamper with them."

Why not some dragon name ? or maybe someone can use this idea to come up with
something else.

/f

Paolo Invernizzi wrote:

Hi

The Dragon book, led my thoughts to "Here be dragons"

Here be dragons - Wikipedia

"In another context, software programmers sometimes use it to indicate
especially difficult or obscure sections of code in a program so that others
do not tamper with them."

Why not some dragon name ? or maybe someone can use this idea to come up with
something else.

Wyrm? :slight_smile:

Also if we are going to throw in fictional Tolkien metals, how about Adamant?

Hi Fredrik,

Hi

The Dragon book, led my thoughts to "Here be dragons"

Here be dragons - Wikipedia

"In another context, software programmers sometimes use it to indicate
especially difficult or obscure sections of code in a program so that others
do not tamper with them."

Why not some dragon name ? or maybe someone can use this idea to come up with
something else.

Do you have a specific name you'd like to suggest?

Reid.

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 18.0.0git documentation),

Makes sense.

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!".

I think, it is a good idea to have clean separation and avoid adding suffix. In
today's internet age, dots between 'Foo' and LLVM are connected immediately.
People will know that Foo was formerly known as LLVM. Plus as soon as they
read/learn about 'Foo' they will realize that it uses IR named LLVM :slight_smile:

I like it :slight_smile:

Simon.

That works great for something that gets massive exposure, but GNOME
has made me wary of (what seems to be) completely unrelated names. I
too often get lost in the soup of pango, cairo, epiphany, evolution,
metacity, festival, evince, and such, so I'm not a fan of clever, but
unrelated, words. A portmanteau could be nice, though.

One of the nicer project names I've seen recently is Alexandria, for a
book database program ( http://alexandria.rubyforge.org/ ). It
unfortunately fails the searchability test, but does brilliantly at
reminding you what it is.

What about heading off into Greek mythology? Perhaps Dædalus, the
greatly skilled Athenian architect that built the palace of Cnossus.
There's also Hephæstus, God of smiths, builder of Helios's chariot,
maker of Talos, Crete and Europa's guardian robot, and fabricator of
the weapons of the Gods; or Lemnos, the island with his workshop.

Unfortunately, they're not the easiest words to spell, and Vulcan,
Hephæstus's roman name, is somewhat used already.

~ Scott McMurray

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.

That works great for something that gets massive exposure, but GNOME
has made me wary of (what seems to be) completely unrelated names. I
too often get lost in the soup of pango, cairo, epiphany, evolution,
metacity, festival, evince, and such, so I'm not a fan of clever, but
unrelated, words. A portmanteau could be nice, though.

One of the nicer project names I've seen recently is Alexandria, for a
book database program ( http://alexandria.rubyforge.org/ ). It
unfortunately fails the searchability test, but does brilliantly at
reminding you what it is.

What about heading off into Greek mythology? Perhaps Dædalus, the
greatly skilled Athenian architect that built the palace of Cnossus.
There's also Hephæstus, God of smiths, builder of Helios's chariot,
maker of Talos, Crete and Europa's guardian robot, and fabricator of
the weapons of the Gods; or Lemnos, the island with his workshop.

We could combine dragons and mythology (but in this case Norse) and get
Jörmungandr (the Midgard Serpent). This has the advantage of non-ascii characters AND the fact
that I only have a vague concept of how to pronounce it :slight_smile:

Along the same 'dragon' line, here's a little old english for you: wyrm. www.wyrm.org is even for sale, it seems.

" Dracan ec scufun,
wyrm ofer weallclif, leton weg niman,
flod fæðmian frætwa hyrde."

" The dragon they cast,
the worm, o'er the wall for the wave to take,
and surges swallowed that shepherd of gems."

Beowulf

-Gabe

(also a good line: "When the dragon awoke, new woe was kindled")

All,

We're now keeping track of the naming process, ideas, etc. on this page:

http://llvm.org/Name.html

(would someone PLEASE get us a wiki!!!) :wink:

Reid.

me22 wrote:

One of the nicer project names I've seen recently is Alexandria, for a
book database program ( http://alexandria.rubyforge.org/ ). It
unfortunately fails the searchability test, but does brilliantly at
reminding you what it is.

Along these lines, is there any mythical characters or historical persons which are associated with translation (which is the primary role of a compiler framework)? I can only think of 'Babel', but I'm sure there must be some other possibilities...

m.

All I can contribute is “Takoa”, which is Finnish for forge. It’s available as a .org.