<div dir="ltr">On Thu, Feb 21, 2013 at 1:02 PM, Devchandra L Meetei <span dir="ltr"><<a href="mailto:dlmeetei@gmail.com" target="_blank">dlmeetei@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Have subscribed to relevant mailing list and intends to contribute to clang/clang++. <br>
But unfortunately, I am all dump in compiler engieering, <br>and yes clang is a great compiler which we have used in our open source project and aware of open source development <br>
<br>Would somebody throw some light on how to start on knowledge requirement part. <br></blockquote><div><br></div><div style>There are lots of things that you can do to help which require practically no knowledge of compiler engineering. I would recommend looking at your skills and looking for places to apply them.</div>
<div style><br></div><div style>There are lots of things that would help us enormously that are only tangentially related to compiler engineering. For example:</div><div style><br></div><div style>- Improving our website: Currently it seems like every separate llvm web presence has a different look and feel[1]. It would be fantastic if someone could develop an attractive stylesheet that all the different projects could use. (I'm the person to contact for more information if you are interested in working on this).</div>
<div style><br></div><div style>- Try building software with Clang and see where it fails. For example, a thankless but enormously helpful job would be to look at <<a href="http://clang.debian.net/">http://clang.debian.net/</a>> and try to improve that number. Some failures are clang's fault. For these, developing reduced test cases and filing bugs for us would be *extremely* helpuful. Some other build failures are just oversights of the developers due to GCC being lax. Submitting patches to those projects to fix those oversights is a thankless but incredibly valuable effort. General Unix/Linux knowledge and C/C++ coding is really all that is needed for this; experience interacting with the debian folks would also be helpful. You could also do something similar by just trying to build a gentoo installation and fixing/reporting errors as you run into them.</div>
<div style><br></div><div style>- Similar to the above, but more extreme, is to trying to building software on windows and seeing where it fails; reducing test cases where our behavior is not correct would be a big help towards improving our MS support. (this needs *a lot* of work, but you can make a dent). If you have solid knowledge of Microsoft's C++ ABI, then you could really help our Microsoft C++ ABI support for example.</div>
<div style><br></div><div style>The important thing is seeing what your specific strengths are and then applying them. Almost nothing that you learn from a compiler textbook will really be applicable to working on Clang. As John mentioned, the best way to understand clang is to just pick a piece and figure out how it works and gain familiarity with the codebase. Blogging about your findings is also helpful, since then it helps out others who want to learn too; also, explaining a feature in a way that another person could understand is a good way to make sure that *you* actually understand.</div>
<div style><br></div><div style><br></div><div style>[1] Compare:</div><div style><a href="http://llvm.org/">http://llvm.org/</a><br></div><div style><a href="http://llvm.org/docs/">http://llvm.org/docs/</a><br></div><div style>
<a href="http://clang.llvm.org/">http://clang.llvm.org/</a><br></div><div style><a href="http://clang.llvm.org/docs/">http://clang.llvm.org/docs/</a><br></div><div style><a href="http://clang-analyzer.llvm.org/">http://clang-analyzer.llvm.org/</a><br>
</div><div style><a href="http://blog.llvm.org/">http://blog.llvm.org/</a><br></div><div style><br></div><div style><br></div><div style>-- Sean Silva </div></div><br></div></div>