<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div>Hi Matthew,</div><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 15, 2020, at 4:13 PM, Matthew Emerick <<a href="mailto:crosstrainedmind@gmail.com" class="">crosstrainedmind@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="auto" class="">Hello, Min.<div dir="auto" class=""><br class=""></div><div dir="auto" class="">I suppose I should ask you this: what do people need to know before working with LLVM? </div></div></div></blockquote><div>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).</div><div><br class=""></div><div>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.</div><div><br class=""></div><div>Other more trivial things that might be useful for beginners include stuff in the Programmers Manual Page (<a href="http://llvm.org/docs/ProgrammersManual.html" class="">http://llvm.org/docs/ProgrammersManual.html</a>). That is, what utilities (these rarely change either) are available, and when to use.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="auto" class=""><div dir="auto" class="">Could a book work with that and link it to LLVM specifically? </div></div></div></blockquote><div>I’m not sure and have no particular comments about the links</div><div><br class=""></div><div>These are just based on my personal experiences, hope they help :-)</div><div><br class=""></div><div>Best,</div><div>-Min</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="auto" class=""><div dir="auto" class=""><br class=""></div><div dir="auto" class="">Thanks,</div><div dir="auto" class="">Matthew</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 15, 2020, 7:06 PM Min-Yih Hsu via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Matthew and all,<br class="">
<br class="">
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).<br class="">
<br class="">
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. <br class="">
<br class="">
Best,<br class="">
-Min<br class="">
> On Aug 15, 2020, at 1:55 AM, Pavel Kosov via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class="">
> <br class="">
> Hi, Matthew, all<br class="">
> nice to hear about interest from Packt Publishing for LLVM<br class="">
> I think there are a lot of professionals in this mailing list, who can be an author of the book.<br class="">
> 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).<br class="">
> 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)<br class="">
> <br class="">
> Pavel<br class="">
> <br class="">
> -----------------------------<br class="">
> <br class="">
> Hello, LLVM Developers.<br class="">
> <br class="">
> My name is Matthew Emerick and I have an opportunity for you and the LLVM<br class="">
> project. I represent Packt Publishing in the acquisition of new material<br class="">
> to publish. I have been working with one of their Product Managers, who<br class="">
> may have reached out to you, and he asked for my help in securing an author<br class="">
> for a book about LLVM.<br class="">
> <br class="">
> >From my discussions with the Product Manager, Packt is looking for a book<br class="">
> about an overview of the project along with best practices from a user<br class="">
> perspective. Off the top of my head, I could see an introductory chapter<br class="">
> with the history of the project and a high level overview. Then a section<br class="">
> about the technologies involved and what they do. Then finish up with a<br class="">
> chapter of best practices through some example projects.<br class="">
> <br class="">
> Is there any interest on your end? Will you consider it? I look forward to<br class="">
> your response.<br class="">
> <br class="">
> Thanks,<br class="">
> Matthew Emerick <br class="">
> _______________________________________________<br class="">
> LLVM Developers mailing list<br class="">
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer" class="">llvm-dev@lists.llvm.org</a><br class="">
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="">
<br class="">
_______________________________________________<br class="">
LLVM Developers mailing list<br class="">
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer" class="">llvm-dev@lists.llvm.org</a><br class="">
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank" class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="">
</blockquote></div>
</div></blockquote></div><br class=""></body></html>