Thank you so much for your hard work!<div><br></div><div>LLVM/Clang is in need of motivated Windows developers willing to put in the time to make the LLVM/Clang experience better on Windows :)<div><br></div><div>Quick note on the reST:</div>
<div><br></div><div>instead of using a construct like:</div><div><br></div><div><div>**Notice:** If you only want to build 32-bit programs, you do **not** need to</div><div>install MinGW64.</div><div><br></div><div>Prefer to use the reStructuredText "admonitions" <<a href="http://docutils.sourceforge.net/docs/ref/rst/directives.html#note">http://docutils.sourceforge.net/docs/ref/rst/directives.html#note</a>>, so the above would look like:</div>
<div><br></div><div><div>.. note:: If you only want to build 32-bit programs, you do **not** need to</div><div>   install MinGW64.</div></div><div><br></div><div>reST also has a number of other semantically rich admonitions ("hint", "warning", etc.), which are listed on the page I linked above.</div>
<div><br></div><div>--Sean Silva</div><div><br></div><div><br></div><br><div class="gmail_quote">On Sun, Jun 17, 2012 at 6:29 PM, Mikael Lyngvig <span dir="ltr"><<a href="mailto:mikael@lyngvig.org" target="_blank">mikael@lyngvig.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes, sorry, the LLVM CMake documentation :-)<div><br></div><div>I don't think I am duplicating a large chunk; I am continuously trying to shave off extraneous and redundant stuff off my Windows-specific document.  I just managed to shave off about six lines or so because I don't like the huge introduction and explanation of what MinGW is.  Now that the document covers Ninja, there's even more reason for _Windows_ users to read it (and the document even got a bit simpler).</div>


<div><br></div><div>You might ask: Why not just make a generic document and patch it up to support Windows as well as Unices?  Well, you guys keep making all sorts of, IMHO, undesirable assumptions regarding your potential userbase.  That somebody in CS201 wants to try out LLVM or perhaps more likely Clang does not mean that they have a Ph. D. in converting Unix commands into Windows commands.  I simply don't understand your often repeated assumption that "any user of LLVM knows this and that (and probably has a beard according to many articles on how gurus look) and therefore we don't need to cater to the less experienced".    That attitude strikes ME as arrogant.  Because it makes life very complicated for those newbies that are just out to look and learn.  And there are many pitfalls on the Windows path because Clang++ does not support the Microsoft C++ ABI and the MinGW64 C++ ABI: This was nowhere documented before, now it is documented together with an easy-to-use guide for how to build and use Clang on Windows.</div>


<div><br></div><div>One guy recently called LLVM an advanced, multi-backend, optimizing assembler language.  There are even today newbies who throw themselves at coding in assembly, so why not code in LLVM IR?  The potential for LLVM is, in my mind, much bigger than just 17 research dudes and five corporations.  </div>


<div><br></div><div>Another angle is that most guys interested in Computer Science go through a period of their life where they want to know everything about how compilers (usually not linkers) work.  So they want to study some source code and see how things are done.  I'd like to wager that Clang is probably one of the best authored compilers out there.  So why not make it easy for people to get going on their studies of Clang?  I don't mean to offend anyone, but I don't personally think that the GNU compilers are overly much worth studying.  I myself contemplated adding a new frontend to the GNU compiler suite, for my own language, but ended up dropping the idea because I found it to be too difficult and too complex for my taste (I am allergic to structured programming).</div>


<div><br></div><div>A third angle is that 80 percent of Windows users are breathing Windows and have never known anything but Windows.  They don't know what Linux is.  Literally.  They much less know what Unix is.  The word Linux they may have heard here and there, but they don't know what it means.  And yet, some of these Linux/Unix ignorant people are great thinkers with great brains that can provide great assistance to the project if only they get a little helping hand in the beginning.  </div>


<div><br></div><div>You cannot reasonably assume that any and all potential users of LLVM and especially Clang are willing to play around for two or three days with the various combinations of tools and settings to get something to work.  Windows users are perhaps a bit spoiled, but on Windows, people normally get a binary release that works straight out of the box without additional downloads.  Compare that to two or three days of experimentation and you see why I am so intent on making LLVM and especially Clang EASY to get to work (I have not given up making a binary distribution of Clang).</div>


<div><br></div><div>I know I am probably being perceived as a arrogant, lunatic n00b, but all I want is to make Clang READILY available to as many Windows users as possible.  I have at least two reasons for this:</div><div>


<br></div><div>   1. I want the Windows support in LLVM (and to some extent Clang) to be 100 percent mature as I need it myself for a project I am working on.  Since I don't code on LLVM/Clang myself, I have to find others to do it.</div>


<div>   2. I think the Windows platform has too few options with respect to compiling your C and C++ programs.  MSVS is expensive.  MSVS Express is a joke (IMHO).  OpenWatcom is, I suspect, slowly dying (this used to be my favorite compiler throughout the past 19 years!).  And GCC has a somewhat unsettling track record of broken features.</div>


<div><br></div><div>I hope this makes my actions and intentions more understandable :-)  Also, please remember that MinGW32 has been downloaded more than a million times.  Why aren't millions downloading Clang for Windows?  </div>


<div><br></div><div>But all that stuff being said, please don't hesitate to criticize my documents.  I know they are not perfect.  They will never be perfect.  But the more feedback I get, the closer to perfect they'll hopefully become.</div>


<div><br></div><div>Try checking out this latest version of the "Building using MinGW on Windows" document.  It is reStructured Text and therefore requires Python+Sphinx to be installed.  I've attached it.  It is not a formal release, it is intended only for those worrying that I am duplicating too much or writing too much text.</div>


<div><br></div><div><br></div><div>Cheers,</div><div>Mikael</div><div>-- Disclaimer: I am not arrogant in real life, so if you perceive me as being arrogant, there's a communications problem somewhere.</div><div class="HOEnZb">
<div class="h5"><div><br>
<br>
<div class="gmail_quote">2012/6/18 Óscar Fuentes <span dir="ltr"><<a href="mailto:ofv@wanadoo.es" target="_blank">ofv@wanadoo.es</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Mikael Lyngvig <<a href="mailto:mikael@lyngvig.org" target="_blank">mikael@lyngvig.org</a>> writes:<br>
<br>
[snip]<br>
<div><br>
> Yes, I am quite familiar with the CMake documentation, but why are you<br>
> asking?<br>
<br>
</div>That's not the cmake documentation, that's the LLVM cmake documentation:<br>
a short document that tries to explain everything you need to know about<br>
cmake to build LLVM. I had the impression that you were duplicating a<br>
large chunk of the info contained on that page. OTOH it's my personal<br>
opinion that you may be explaining too much: it is not necessary to<br>
explain, nor even mention, the different available build tools on<br>
Windows. As LLVM and Clang are developer tools, one can suppose that the<br>
user knows how to run a build. IMHO you only need to explain the bits<br>
that are specific to LLVM. As cmake might not be popular enough yet, a<br>
bit of an introduction is needed, but no more.<br>
<br>
I haven't thoroughly read your proposed documentation, sorry if my<br>
opinions are off-base.<br>
<br>
[snip]<br>
<div><div><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div></div>