LLVM Book Opportunity

Hi, Matthew, all
nice to hear about interest from Packt Publishing for LLVM
I think there are a lot of professionals in this mailing list, who can be an author of the book.
But writing a good book demands a lot of time, so that’s why there are not so many responses (and also maybe because of well-formed and updated online documentation, which can be a good replacement for the book).
Nevertheless, I think that one comprehensive well-written book can be really useful for helping newcomers be involved in LLVM more quickly, so I would offer my help to the person, who will be able to take the responsibility to be an author (I can write some chapters, e.g. about PGO, internal structures like DAG, etc)

Pavel

Hello, Pavel.

Thank you very much for responding. I let Packt know that we have a co-author for an LLVM book. We’ll just wait and see if anyone else wants to step up. For reference, I think I’ve seen three people listed as authors on a single book, which can reduce the workload on any one.

Thanks again,
Matthew

Hi Matthew and all,

Also I feel like one of the obstacles would be the fast-changing APIs. Since to my understanding this book is not a compiler textbook full with theory stuffs, as a ‘Getting Started' book for practitioners it’s hard to avoid API usages and best practices, which are both pretty unstable IMO (yes, even for best practices, for example the recommended way to use DominatorTree has changed over time).

It might be a good idea to have some books for beginners, since the knowledge barrier of this project is still relatively higher than other open source projects. But I think you might also want to provide some ideas on how to put this book in an unique position in terms of its contribution on easing up the learning curve. Otherwise I agree with what Pavel said, the official document website is good enough: It can be updated whenever we want and articles were usually written by LLVM veterans.

Best,
-Min

Hello, Min.

I suppose I should ask you this: what do people need to know before working with LLVM? Could a book work with that and link it to LLVM specifically?

Thanks,
Matthew

Hi Matthew,

Hello, Min.

I suppose I should ask you this: what do people need to know before working with LLVM?

First will of course be the basic compiler knowledge from traditional text books. Then for LLVM specifically (not including Clang and other sub-projects), if there is one thing I wish to know when I first started my LLVM career, it would be a project directory map telling me which folder (and even which file) to dig in if I want to work on feature X. Because as you probably know, lots of LLVM documentations are sitting in code comments, and just like I mentioned in previous email, some of them changed pretty frequently, but the overall folder structures rarely changed (Nevertheless, I think one of the LLVM document web pages has a similar ‘project map’, but it’s a little bit too high level IMO).

Another thing might be a structural learning map, organizing knowledges by areas in compiler. First divided by logic groups like frontend, target-independent optimizations, code generations. Then for each of them, goes into specific topics like RA, vectorizations, semantic checking etc.

Other more trivial things that might be useful for beginners include stuff in the Programmers Manual Page (http://llvm.org/docs/ProgrammersManual.html). That is, what utilities (these rarely change either) are available, and when to use.

Could a book work with that and link it to LLVM specifically?

I’m not sure and have no particular comments about the links

These are just based on my personal experiences, hope they help :slight_smile:

Best,
-Min

Hello again, LLVM Developers.

I just wanted to check in one more time and see if there were any other potential technical authors in the group. In this chain, we’ve seen some reasons why there should not be an introductory LLVM book as well as a good reason why there should be. I’m still hoping that we can find a primary author that can write a technical manuscript that makes it easier for newcomer developer to join the project, as technical documentation, no matter how well written and formatted, can still be overwhelming.

Please let me know and I’ll pass it on to the editors at Packt.

Thanks,
Matthew Emerick