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