[LLVMdev] Ninja (make replacement)

Mikael Lyngvig mikael at lyngvig.org
Tue Jun 19 05:01:06 PDT 2012


Done - and thank you again for enligthening me with respect to Sphinx :-)

2012/6/18 Sean Silva <silvas at purdue.edu>

> Thank you so much for your hard work!
>
> LLVM/Clang is in need of motivated Windows developers willing to put in
> the time to make the LLVM/Clang experience better on Windows :)
>
> Quick note on the reST:
>
> instead of using a construct like:
>
> **Notice:** If you only want to build 32-bit programs, you do **not** need
> to
> install MinGW64.
>
> Prefer to use the reStructuredText "admonitions" <
> http://docutils.sourceforge.net/docs/ref/rst/directives.html#note>, so
> the above would look like:
>
> .. note:: If you only want to build 32-bit programs, you do **not** need to
>    install MinGW64.
>
> reST also has a number of other semantically rich admonitions ("hint",
> "warning", etc.), which are listed on the page I linked above.
>
> --Sean Silva
>
>
>
> On Sun, Jun 17, 2012 at 6:29 PM, Mikael Lyngvig <mikael at lyngvig.org>wrote:
>
>> Yes, sorry, the LLVM CMake documentation :-)
>>
>> 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).
>>
>> 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.
>>
>> 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.
>>
>> 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).
>>
>> 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.
>>
>> 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).
>>
>> 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:
>>
>>    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.
>>    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.
>>
>> 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?
>>
>> 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.
>>
>> 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.
>>
>>
>> Cheers,
>> Mikael
>> -- Disclaimer: I am not arrogant in real life, so if you perceive me as
>> being arrogant, there's a communications problem somewhere.
>>
>>
>> 2012/6/18 Óscar Fuentes <ofv at wanadoo.es>
>>
>>> Mikael Lyngvig <mikael at lyngvig.org> writes:
>>>
>>> [snip]
>>>
>>> > Yes, I am quite familiar with the CMake documentation, but why are you
>>> > asking?
>>>
>>> That's not the cmake documentation, that's the LLVM cmake documentation:
>>> a short document that tries to explain everything you need to know about
>>> cmake to build LLVM. I had the impression that you were duplicating a
>>> large chunk of the info contained on that page. OTOH it's my personal
>>> opinion that you may be explaining too much: it is not necessary to
>>> explain, nor even mention, the different available build tools on
>>> Windows. As LLVM and Clang are developer tools, one can suppose that the
>>> user knows how to run a build. IMHO you only need to explain the bits
>>> that are specific to LLVM. As cmake might not be popular enough yet, a
>>> bit of an introduction is needed, but no more.
>>>
>>> I haven't thoroughly read your proposed documentation, sorry if my
>>> opinions are off-base.
>>>
>>> [snip]
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>


-- 
-- Disclaimer: I am *not* arrogant in real life, so if you perceive me as
being arrogant, you are to blame ;-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120619/e65d80a4/attachment.html>


More information about the llvm-dev mailing list