Slashdot videos: Now with more Slashdot!
We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).
was just released.
It includes a new open source BSD licensed C/C++ compiler, clang. Previously clang was only able to compile C code:
"This includes significantly better generated code, improvements to debug
information generation and a broad number of new features in the
core infrastructure. One exciting feature is that Clang is now able to
bootstrap itself, a major milestone in any compiler's development and
particularly notable considering the complexity of implementing C++!"
LLVM also has a new official blog
LLVM has several subprojects that work with this new release:
Clang (a C/C++/ObjC/ObjC++ compiler)
Clang Static Analyzer
VMKit (JVM and CLI Virtual Machine)
Compiler-rt runtime library
Dragonegg (a gcc-4.5 plugin that uses LLVM as a backend)
http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html">Machine Code Toolkit
And there are several other OSS projects using it:
Pure (an algebraic/functional programming language based on term rewriting)
Roadsend PHP (an open source implementation of the PHP programming language that uses LLVM for its optimizer, JIT and static compiler)
Unladen Swallow (a branch of Python that uses LLVM's optimizers and JIT compiler). http:///
TCE (a toolset for designing application-specific processors).
SAFECode (a memory safe C compiler built using LLVM).
Icedtea/Shark (OpenJDK build that uses an LLVM based JIT compiler)
LLVM-Lua (uses LLVM to add JIT and static compiling support to the Lua VM).
GHC (an open source Haskell compiler)"
The Kaleidoscope tutorial starts out from scratch and slowly builds up a simple language to show how LLVM can help out with this. We end up with a JIT compiler for a fairly interesting little language with less than 700 lines of code. Of course, this is just the tip of the iceberg, once you start with LLVM, there are all sorts of things you can do."
Link to Original Source