There is a lot of interest in our community about LLVM, which is probably the most known compiler tool. We talked a lot about parsing, and compilation is a natural next step after parsing. The issue is that is a bit hard to get into it, especially if you do not have any experience in the good old C++. So, we are thinking of writing an introductory article about it.
What do you think of LLVM? Do you have any experience in using it? Is there a project in which you would like to use it?
I would personally love to see this article, bug I guess I am a bit biased
In general I have mostly written compilers for the JVM and I think I could benefit from strengthening my experience on LLVM. Now we have great experts in C++ in the team, such as @maurizio.taverna and we could dive a bit further into LLVM in my opinion.
I am looking forward to see what others write on this topic.
I started a high-level document on LLVM some years ago. Today, it is maintained by Michael Rodler on Github. This document exists as a readable online book on Read The Docs. We are always looking for contributors. The idea behind the book is that we eventually want to document how to implement all/most high-level language features in LLVM, but I have to say that little has happened in this regard the last few years.
I have recent experience in LLVM as I am using it as the back-end in my initial bootstrap compiler being written in Python v3.7+.
Overall, I like LLVM a lot, but the Windows support seems to be lacking in the sense that you have to install Microsoft Visual Studio (which I personally loathe, I use the SlickEdit editor for all my projects) and sometimes the documentation is a bit lacking.
However, you can almost always get great examples by implementing your sample code in C or C++ and running it through Clang, the LLVM C++ Compiler, and then examine the generated LLVM IR.
I am no expert on LLVM, seriously, but I’ll be glad to help out if there is anything I can help with.
Sorry for the late reply (I switched jobs and with that of the pandemic I’ve been hyperbusy reorganizing my life!). I’m super interested in this topic. I have two compiler projects, one of them in python, and was thinking of using LLVMlite.
I’ll have a look to your book. Thanks for sharing!