Thanks Ben.  My apologies for the slow follow up since I was out.

I think we can continue to just conditionally enable C++14 for now for building 
swift in Windows until we figure out a better strategy.

> On Jan 8, 2018, at 12:32 PM, Ben Langmuir <blangm...@apple.com> wrote:
> 
> Hi Ted,
> 
> I've created a PR to revert this: https://github.com/apple/swift/pull/13804
> 
> Updating to C++14 broke our Ubuntu 14.04 bots.  While those bots are using a 
> new-enough clang, they are still using the system's libstdc++ 4.8 which 
> doesn't include full C++14 support.  Since this ends up linked to the 
> swift-runtime, I'm guessing it would not be practical for us to upgrade the 
> c++ standard library for our Ubuntu 14.04 configuration since that would 
> affect deployment of swift programs on that platform.  If that's the case, 
> then it may be likewise impractical for us to support both Ubuntu 14.04 
> (pre-c++14 libstdc++) and Windows (needs c++14, IIUC).
> 
> Caveat: I am not an expert on either distributing software on Linux or 
> Windows, I'm just making the bots happy.
> 
> Ben
> 
>> On Jan 5, 2018, at 5:54 PM, Ted Kremenek via swift-dev <swift-dev@swift.org> 
>> wrote:
>> 
>> Thanks Jim.
>> 
>> I’ve merged the PR to enable this change.
>> 
>>> On Jan 5, 2018, at 2:38 PM, Jim Ingham <jing...@apple.com> wrote:
>>> 
>>> I have no formal objections to switching lldb to C++14.  I haven't been 
>>> following what is in C++14, but presumably it's purely additive?  If so 
>>> then except for bugs this should be a no-op.  
>>> 
>>> My only reservation is it seems a little odd to adopt a "use C++14" policy 
>>> for Swift lldb and not for llvm.org lldb.  Is clang going to move to C++14 
>>> some time soon?  I don't remember seeing anything about this on the lldb 
>>> dev lists.  If we're going to build GitHub lldb this way it would be worth 
>>> raising the suggestion on the lldb-dev as well.
>>> 
>>> And of course, all this is dependent on lldb actually building and passing 
>>> the testsuite built with C++14.  Has somebody tried that?
>>> 
>>> Jim
>>> 
>>> 
>>> 
>>>> On Jan 3, 2018, at 8:46 PM, Ted Kremenek via swift-lldb-dev 
>>>> <swift-lldb-...@swift.org> wrote:
>>>> 
>>>> I’m pinging some folks, but not everybody is back yet.  I hope to resolve 
>>>> this ASAP.
>>>> 
>>>>> On Jan 2, 2018, at 11:33 AM, Saleem Abdulrasool <compn...@compnerd.org> 
>>>>> wrote:
>>>>> 
>>>>> On Wed, Dec 20, 2017 at 4:26 PM, Ted Kremenek <kreme...@apple.com> wrote:
>>>>> 
>>>>>> On Dec 19, 2017, 8:33 PM -0800, Ted Kremenek via swift-dev 
>>>>>> <swift-dev@swift.org>, wrote:
>>>>>> 
>>>>>> 
>>>>>>> On Dec 19, 2017, at 5:08 PM, Saleem Abdulrasool <compn...@compnerd.org> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>> On Dec 19, 2017, at 3:59 PM, Ted Kremenek <kreme...@apple.com> wrote:
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Dec 19, 2017, at 2:31 PM, Daniel Dunbar <daniel_dun...@apple.com> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Dec 19, 2017, at 2:27 PM, Ted Kremenek <kreme...@apple.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> Fair enough.
>>>>>>>>>> 
>>>>>>>>>> We care about swiftc and llbuild building a variety of platforms 
>>>>>>>>>> today — FreeBSD, Rasberry Pi, etc.  My impression is that C++14 is 
>>>>>>>>>> generally supported by both (a) the mininum versions of the 
>>>>>>>>>> distributions we support today and (b) the current versions of the 
>>>>>>>>>> platforms we’d like to expand Swift to in the future.  Does that 
>>>>>>>>>> sound right?  I suspect you went through the same kind of reasoning 
>>>>>>>>>> with llbuild.
>>>>>>>>> 
>>>>>>>>> It sounds reasonable, but to be honest I never did an audit of what 
>>>>>>>>> platforms supported C++14.
>>>>>>>> 
>>>>>>>> Interesting.  Was that not a concern when that choice was made for 
>>>>>>>> llbuild, or was the context different?
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> I do think that we could always use the Clang++ we build as part of 
>>>>>>>>> Swift to build Swift itself. By that logic, it seems reasonable to 
>>>>>>>>> expect we could always have C++14 support, although it does mean that 
>>>>>>>>> porters would need modern Clang to support their platform. However, 
>>>>>>>>> that is likely largely a prerequisite for Swift to work as well.
>>>>>>>> 
>>>>>>>> That’s a significant change to make just to get C++14 support 
>>>>>>>> guaranteed, and (I believe) would have a non-trivial impact on those 
>>>>>>>> using development environments that expect to use the Clang bundled 
>>>>>>>> with them to build projects.
>>>>>>> 
>>>>>>> Agreed.  However, the current supported platforms already support this 
>>>>>>> minimum.  I think that future platforms will need to provide that 
>>>>>>> anyways.  If the system doesn’t have a modern toolchain available, I 
>>>>>>> suspect that it already would not have C++11 available either.  In such 
>>>>>>> a scenario, they need to provide a newer toolchain, and so the 
>>>>>>> difference there is minimal as we already require C++11.
>>>>>> 
>>>>>> OK, I’m convinced.
>>>>>> 
>>>>>> I want to hold off for a tiny bit just to see if anyone else has any 
>>>>>> commentary on this thread before we make a change. 
>>>>> 
>>>>> We’d also need to make this change on the LLDB side, and I realize now 
>>>>> that a few people I’d like to weigh in are on vacation until the 
>>>>> holidays.  How about we pick this up immediately in the new year once 
>>>>> it’s clear everyone that should weigh in has had a chance to do so.
>>>>> 
>>>>> Just a post-holiday bump to bring this back up :-).  I'd like to get this 
>>>>> merged so that the other Windows stuff is unblocked.
>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>>>> 
>>>>>>>>> - Daniel
>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> On Dec 19, 2017, 2:23 PM -0800, Daniel Dunbar 
>>>>>>>>>>> <daniel_dun...@apple.com>, wrote:
>>>>>>>>>>> It wasn’t changed, it has *always* been C++14 since the day we open 
>>>>>>>>>>> sourced it. I only investigated the platforms we officially support 
>>>>>>>>>>> (Ubuntu 14.04/15.10 at the time, and macOS 10.10+ IIRC).
>>>>>>>>>>> 
>>>>>>>>>>> - Daniel
>>>>>>>>>>> 
>>>>>>>>>>>> On Dec 19, 2017, at 2:21 PM, Ted Kremenek <kreme...@apple.com> 
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Daniel,
>>>>>>>>>>>> 
>>>>>>>>>>>> When you changed llbuild to require C++14, what platforms did you 
>>>>>>>>>>>> take into account with that change? If you have already done the 
>>>>>>>>>>>> assessment here it could speed a resolution of a decision.
>>>>>>>>>>>> 
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Ted
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Dec 13, 2017, at 3:19 PM, Daniel Dunbar via swift-lldb-dev 
>>>>>>>>>>>>> <swift-lldb-...@swift.org> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> FWIW, llbuild requires C++14.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> We have to do some minor shenanigans to workaround bugs in 
>>>>>>>>>>>>> libstdc++ on 14.04, and our use is probably minimal, but just 
>>>>>>>>>>>>> throwing that out there.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> - Daniel
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Dec 13, 2017, at 1:45 PM, Jordan Rose via swift-lldb-dev 
>>>>>>>>>>>>>> <swift-lldb-...@swift.org> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> No one else has commented on this yet today, so I'll put in that 
>>>>>>>>>>>>>> I don't have any objections to this and don't foresee any major 
>>>>>>>>>>>>>> problems. The one place where we'd need to be careful is with 
>>>>>>>>>>>>>> LLDB, which imports Swift headers; if Swift is going to move to 
>>>>>>>>>>>>>> C++14, then Swift-LLDB probably has to as well. LLDB folks, what 
>>>>>>>>>>>>>> do you think?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> The other thing to check is if our minimum Clang or libstdc++ 
>>>>>>>>>>>>>> requirements on Linux didn't support C++14. It looks like our 
>>>>>>>>>>>>>> README is vague on that, but LLDB already suggests a minimum 
>>>>>>>>>>>>>> requirement of Clang 3.5, which is new enough. I suspect we're 
>>>>>>>>>>>>>> okay here.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Jordan
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Dec 13, 2017, at 10:36, Saleem Abdulrasool via swift-dev 
>>>>>>>>>>>>>>> <swift-dev@swift.org> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> The newer Windows SDK requires the use of C++14 (the SDK 
>>>>>>>>>>>>>>> headers use `auto` return types without trailing type 
>>>>>>>>>>>>>>> information). Joe mentioned that there was some interest in 
>>>>>>>>>>>>>>> switching the rest of swift to C++14 as well. I figured that I 
>>>>>>>>>>>>>>> would just start a thread here to determine if this is okay to 
>>>>>>>>>>>>>>> do globally rather than just specifically for the Windows 
>>>>>>>>>>>>>>> builds to ensure that we can build the Windows components.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Thanks.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Saleem Abdulrasool
>>>>>>>>>>>>>>> compnerd (at) compnerd (dot) org
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> swift-dev mailing list
>>>>>>>>>>>>>>> swift-dev@swift.org
>>>>>>>>>>>>>>> https://lists.swift.org/mailman/listinfo/swift-dev
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> swift-lldb-dev mailing list
>>>>>>>>>>>>>> swift-lldb-...@swift.org
>>>>>>>>>>>>>> https://lists.swift.org/mailman/listinfo/swift-lldb-dev
>>>>>>>>>>>>> 
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> swift-lldb-dev mailing list
>>>>>>>>>>>>> swift-lldb-...@swift.org
>>>>>>>>>>>>> https://lists.swift.org/mailman/listinfo/swift-lldb-dev
>>>>>>> 
>>>>>> _______________________________________________
>>>>>> swift-dev mailing list
>>>>>> swift-dev@swift.org
>>>>>> https://lists.swift.org/mailman/listinfo/swift-dev
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Saleem Abdulrasool
>>>>> compnerd (at) compnerd (dot) org
>>>> _______________________________________________
>>>> swift-lldb-dev mailing list
>>>> swift-lldb-...@swift.org
>>>> https://lists.swift.org/mailman/listinfo/swift-lldb-dev
>>> 
>> 
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-dev
> 
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to