Hacker News new | past | comments | ask | show | jobs | submit login
LLVM 3.3 Released (llvm.org)
143 points by dbaupp on June 18, 2013 | hide | past | favorite | 17 comments



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.


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.


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.)


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.


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).


Although I don't necessarily agree, many consider the "native" (C-ABI) tools and libraries to be sufficient.


On one hand, you have web developers. On the other hand, you have compiler engineers. The difference in communities is quite stark.


And in the middle you have those superstars JavaScript JIT engine developers that browser makers fight over.


They are compiler engineers as well.


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

good!


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


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


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.


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!)


> 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, but for more detailed documentation you'll need to use the help functionality within lldb's built-in Python prompt.


[deleted]


An email has been sent: http://lists.cs.uiuc.edu/pipermail/llvm-announce/2013-June/0... (and the front page of llvm.org lists it as the latest release).


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: