<div class="gmail_quote">On Mon, Jun 11, 2012 at 10:52 AM, 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">
Hi,<div><br></div><div>[Synopsis: Mikael thinks Windows support is overlooked and that this is a strategic error. ...]</div></blockquote><div><br></div><div>Synopsis of my response: It is not overlooked, it has some technical, non-technical, and manpower limitations.</div>
<div><br></div><div>Allow me to briefly summarize these issues:</div><div><br></div><div>Technical: Currently, we have a shortage of build infrastructure and test infrastructure of high quality running windows. This limits the amount of testing that target gets, and limits the ability of non-windows-hosted developers to recognize when their patch causes a problem.</div>
<div><br></div><div>Non-technical: Currently, there is an unofficial policy that is in place limiting what parts of Windows support we're pursuing. Feel free to reach out to me directly for details, but here is a summary of the strategy that I discussed with Doug Gregor and several others:</div>
<div><br></div><div>- MingGW and Cygwin in all of their various forms are fine. Patches extremely welcome here, these should be first-class supported platforms.</div><div><br></div><div>- Documentation is always welcome, and much needed. Please contribute more here. =]</div>
<div><br></div><div>- Win64 ABI, mangling, etc. compatibility is fine. Patches are quite welcome here, and please cite the win64 spec[1] for what your patch fixes.</div><div><br></div><div>- We are not planning to do more work on Win32 ABI. Some bug fixing (name mangling, etc) is fine, but I would encourage development efforts to focus on Win64, and get that working instead. We may decide to support some subset of Win32, but that's in the future.</div>
<div><br></div><div>- Supporting well specified Windows language extensions is welcome. See the declspec work for great examples of this.</div><div><br></div><div>- We are working to figure out the best way to support parsing the Windows headers, but this is a complex issue. Expect some patches to clear the way in the not-too-distant future.</div>
<div><br></div><div>[1] (<a href="http://msdn.microsoft.com/en-us/library/7kcdt6fy(v=vs.110)">http://msdn.microsoft.com/en-us/library/7kcdt6fy(v=vs.110)</a></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div>My view is that the aspiring Clang++ Windows user is in for a nightmare reverse walk through a night time minefield with both eyes shut.</div></div></blockquote><div><br></div><div>Yes. See documentation point above.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<div>So, I am wondering if there is anything that can be done to help this situation?   I'd love great ideas from you guys, even though I am getting rather used to getting no responses to my mails ;-)  I am willing to invest considerable amount of time into helping with this, I just cannot do serious C++ coding at this point because I am yet too rusty in C++ and because I am busy, busy, busy with my own project (a compiler that uses LLVM as its backend).</div>
</div></blockquote><div><br></div><div>Patches are likely to be necessary here, but patches to things like documentation can be done even w/o much C++ expertise.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div>1. Priority is put into making MinGW64 work</div></div></blockquote><div><br></div><div>Please understand, each developer has their own priorities. Yours are Windows support, and that is excellent, but other developers cannot simply shift their priorities around. We need new contributors (like yourself) to prioritize Windows because of their interest and investment in the platform.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>

<div>2. If nobody (including licenses) object to it, I'd like to make two unofficial Windows distributions of Clang: clang-3.2-win32 and clang-3.2-win64.</div></div></blockquote><div><br></div><div>These would, I suspect, not be "official" releases. Please join in the release testing and qualification process for the next Clang release though! We need people to help test and qualify the release (and build binariy packages) for platforms like Windows.</div>
<div><br></div><div>There is documentation on the website about how to join this effort for the 3.2 release cycle.</div><div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div>3. I will eagerly hunt down every opportunity to document Windows specifics a bit more.  I have received no feedback, whatsoever, on my Windows build document so I take it that it is not to the dev group's liking.  So be it.  Life goes on.</div>
</div></blockquote><div><br></div><div>Wait, what document? I missed it. =[ Can you ping the thread? We are all dealing with a very large email load, but I assure you there *is* interest here. You may have to help us keep track of the email thread and get you feedback, but it's not a lack of interest.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>4. Please give me your ideas for how I can contribute to the Windows support without actually hacking on LLVM and Clang (yet)!</div>
</div></blockquote><div><br></div><div>I hope I've done so...</div><div><br></div><div><br></div><div>One point I have to make however is that this:</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div>1. 97.7 percent of the world's computer users are Windows users.</div></div></blockquote><div><br></div><div>is not an effective argument. ;] All of the developers on Clang/LLVM are working because they have some specific itch to scratch. Some of the developers are employed by companies that have a corporate itch to scratch with Clang. These often represent significant user bases, and are investing time to directly support them. It's not about Windows vs. Linux vs. other. It's about users that *I* am directly responsible for supporting, and their needs trump.</div>
<div><br></div><div>Just be aware of that. ;] Also, there are a lot of Mac users out there. Just saying.</div></div><br>