top | item 3302839

(no title)

sixtofour | 14 years ago

Off topic suggestion: When you have a home page for a project, if the name is an acronym, you should spell out the acronym in the first paragraph, if not the first sentence or the title.

From http://llvm.org/ I looked at Overview, Features, Documentation and FAQ, and did not find the definition of LLVM. I ultimately had to go to Wikipedia.

discuss

order

exDM69|14 years ago

edit: LLVM once stood for "Low level virtual machine", but that is no longer the meaning. The early name comes from Chris Lattner's research paper describing an "ideal machine language", an intermediate language for compilers which is a little like an Assembly -type language for a virtual machine with infinite registers.

The first sentence on the front page of llvm.org pretty much sums it up: "The LLVM Project is a collection of modular and reusable compiler and toolchain technologies."

It may not be the clearest LLVM description out there, but that's pretty much what it is. If the description had more detail, it would not fit in one sentence.

The hard thing about describing LLVM is that it's a huge complicated project in a domain that's outside even many professional programmers' domain.

I tend to say that LLVM is (to me) a "compiler infrastructure", because I use it to build compiler back ends. However, LLVM is so much more than that, as the project includes loosely coupled tools ranging from complete compilers (clang) to debuggers (lldb) to byte code and binary format introspection utilities (llvm's binutils counterparts). So a "compiler infrastructure" or any other dumbed down explanation wouldn't do it justice. That's why the first sentence on the front page is actually pretty good.

eliben|14 years ago

LLVM actually still is a virtual machine, since it contains mechanisms for executing code written in LLVM IR. There are two execution paths - an interpreter and a JIT compiler. I guess this makes it a VM after all, although the acronym is no longer descriptive because the VM part is a tiny fraction of what LLVM includes and can do. As you said, its super-tool for creating compilers, especially compiler back-ends.

sixtofour|14 years ago

"if the name is an acronym, you should spell out the acronym"

(I did not downvote you BTW)

Someone else replied that the project is now just referred to as LLVM. That's fine, but people expect acronyms to stand for something, and the definition or lack of should be way at the top of any project. Lots of people come to a project for the first time and aren't in the know.

jstepien|14 years ago

As we can read in http://www.aosabook.org/en/llvm.html by Chris Lattner:

> The name "LLVM" was once an acronym, but is now just a brand for the umbrella project.

andrewflnr|14 years ago

They probably should have it in their FAQ, though, if they don't.

waitwhat|14 years ago

And because you didn't post it either, I had to go to wikipedia as well: Low-Level Virtual Machine.

exDM69|14 years ago

The problem with "Low-Level Virtual Machine" is that it gives a very wrong view of what LLVM actually is (because a "virtual machine" is associated with JVM and similar tools). That full name is not even used a whole lot any more, people refer to LLVM as LLVM which means the umbrella project under which a lot of subprojects exist.