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