

LLVM 3.3 Released - dbaupp
http://llvm.org/releases/3.3/docs/ReleaseNotes.html

======
AlexanderDhoore
It's funny how few people there are (around me) that know about LLVM. When
Java, PHP or C# gets new features things go crazy. But LLVM is like this
secret weapon that Apple (and others) have. Chugging along, getting more
powerful, not asking for attention.

~~~
pjmlp
LLVM has lots of nice features, but they are mainly interesting to C, C++ and
Objective-C developers on desktop UNIX systems.

So it tends to be ignored by the folks you mentioned.

An interesting consequence of LLVM's popularity is that compiler researchers
are moving away from JVM and .NET implementations to LLVM for their work.

~~~
MichaelGG
I understand the perf hit on the JVM can be terrible for some languages (less
so for CLR), but it certainly is nice to immediately gain a massive set of
libraries, as well as benefiting from the whole ecosystem of tooling.

As I understand, LLVM just provides the codegen part, right? (Mono has an LLVM
option for codegen.)

~~~
ed_blackburn
Mono does indeed have an LLVM backend. I have no idea if it is upto date with
Mono, or LLVM. I'd love to know why one choose a difference compiler / VM. A
fair comparison.

~~~
Skinney
It's pretty up to date. Xamarin (the company behind Mono) uses the LLVM-
backend to create native C# applications to run on iOS (as iOS doesn't allow
for JIT compilation).

------
_ZeD_
_LLVM and Clang’s documentation has been migrated to the Sphinx documentation
generation system which uses easy-to-write reStructuredText._

good!

~~~
pestaa
This change is welcome. For me reStructuredText broke the ice and made me like
writing documentation.

------
kibwen
How usable is LLDB nowadays? I'm curious how easily it could be extended to
support other LLVM-backed compilers.

~~~
samps
I've been using it regularly and I think it's ready. I used it some time ago
when even basic commands would fail with cryptic error messages, but over the
last couple of months, the version that came with Xcode has improved a lot. I
find that it can evaluate more C++ expressions that gdb can now and I think
the command structure feels more regular. Heartily recommended.

~~~
nimrody
gdb's C++ support leaves much to be desired, in my opinion.

Can you ask LLDB to never stop at certain functions or files? (like gdb's skip
command except that unfortunately you cannot put that in your .gdbinit file).
Very useful for skipping copy constructors, etc.

Can I use C++ syntax for overloaded operators? I.e., can I use A(1,1) for
matrix object access instead of A.operator()(1,1) like gdb requires?

Can you wrap a class with some user defined script to simplify its interface
for debugging? E.g., let the user browse and edit the elements of an STL
vector without understanding the vector class implementation? (pretty-printing
is implemented for gdb but Visual Studio does a much better job here!)

~~~
bdash
> Can you ask LLDB to never stop at certain functions or files?

LLDB has a setting named target.process.thread.step-avoid-regexp, the value of
which is a regular expression defining functions that step-in won't stop in.

> Can you wrap a class with some user defined script to simplify its interface
> for debugging?

LLDB exposes its entire API to Python, so you can either embed Python scripts
in to the LLDB debugger or embed the LLDB debugger in to a Python script.
There's an introduction available at [http://lldb.llvm.org/python-
reference.html](http://lldb.llvm.org/python-reference.html), but for more
detailed documentation you'll need to use the help functionality within lldb's
built-in Python prompt.

------
ksec
Slightly Off Topic, What happened to Rubinus which is based on LLVM?

