[cfe-dev] [LLVMdev] Windows strategy?

Chandler Carruth chandlerc at google.com
Mon Jun 11 12:09:47 PDT 2012

On Mon, Jun 11, 2012 at 10:52 AM, Mikael Lyngvig <mikael at lyngvig.org> wrote:

> Hi,
> [Synopsis: Mikael thinks Windows support is overlooked and that this is a
> strategic error. ...]

Synopsis of my response: It is not overlooked, it has some technical,
non-technical, and manpower limitations.

Allow me to briefly summarize these issues:

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.

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:

- MingGW and Cygwin in all of their various forms are fine. Patches
extremely welcome here, these should be first-class supported platforms.

- Documentation is always welcome, and much needed. Please contribute more
here. =]

- Win64 ABI, mangling, etc. compatibility is fine. Patches are quite
welcome here, and please cite the win64 spec[1] for what your patch fixes.

- 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.

- Supporting well specified Windows language extensions is welcome. See the
declspec work for great examples of this.

- 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.

[1] (http://msdn.microsoft.com/en-us/library/7kcdt6fy(v=vs.110)

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.

Yes. See documentation point above.

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).

Patches are likely to be necessary here, but patches to things like
documentation can be done even w/o much C++ expertise.

1. Priority is put into making MinGW64 work

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.

> 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.

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.

There is documentation on the website about how to join this effort for the
3.2 release cycle.

> 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.

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.

> 4. Please give me your ideas for how I can contribute to the Windows
> support without actually hacking on LLVM and Clang (yet)!

I hope I've done so...

One point I have to make however is that this:

> 1. 97.7 percent of the world's computer users are Windows users.

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.

Just be aware of that. ;] Also, there are a lot of Mac users out there.
Just saying.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120611/777dd76b/attachment.html>

More information about the cfe-dev mailing list