Page MenuHomePhabricator

jfb (JF Bastien)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 27 2014, 9:36 AM (290 w, 1 d)

Recent Activity

Today

jfb added a comment to D64817: [CMake] Fix LLVM build non-determinism on RHEL.

binutils 2.22 was released in 2011. Do we want to support binutils that old? If not, we should probably not do such change, but rather bump the version requirement https://llvm.org/docs/GettingStarted.html#host-c-toolchain-both-compiler-and-standard-library

CC @hans why may know more about these problems.

I don't really. JF is the master of supported versions of things.

Tue, Aug 20, 2:13 PM · Restricted Project

Thu, Aug 15

jfb added a comment to D66313: Re-introduce the RWMutexImpl for macOS < 10.12.

Could you document this limitation in CodingStandards.rst, like what I removed for C++11 in https://reviews.llvm.org/D66195#change-S42p9rAdiuZJ ?

Thu, Aug 15, 4:00 PM · Restricted Project
jfb added a comment to D66310: Fix nm on GCC 5.1 after the C++14 move.

Sounds like you get to claim this as a fix for https://bugs.llvm.org/show_bug.cgi?id=24115 too :)

Thu, Aug 15, 2:11 PM · Restricted Project
jfb committed rGc984dde170bb: Fix nm on GCC 5.1 after the C++14 move (authored by jfb).
Fix nm on GCC 5.1 after the C++14 move
Thu, Aug 15, 1:39 PM
jfb committed rL369045: Fix nm on GCC 5.1 after the C++14 move.
Fix nm on GCC 5.1 after the C++14 move
Thu, Aug 15, 1:37 PM
jfb closed D66310: Fix nm on GCC 5.1 after the C++14 move.
Thu, Aug 15, 1:37 PM · Restricted Project
jfb updated the diff for D66310: Fix nm on GCC 5.1 after the C++14 move.
  • Use if instead of ternary
Thu, Aug 15, 1:37 PM · Restricted Project
jfb added a comment to D66195: Move to C++14.

Thanks, that helped! Next one (build step 3810/3982, so hopefully not too much left after this):

FAILED: tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o 
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/bin/g++  -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/llvm-nm -I/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/tools/llvm-nm -I/usr/include/libxml2 -Iinclude -I/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include -DLLVM_FORCE_HEAD_REVISION -fvisibility-inlines-hidden -Werror=date-time -std=c++14 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -O3    -UNDEBUG  -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -MD -MT tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o -MF tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o.d -o tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o -c /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/tools/llvm-nm/llvm-nm.cpp
In file included from /b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/stl_algobase.h:71:0,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/memory:62,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/Optional.h:22,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/STLExtras.h:19,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/StringRef.h:12,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/StringSwitch.h:15,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/tools/llvm-nm/llvm-nm.cpp:18:
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/predefined_ops.h: In instantiation of ‘constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = {anonymous}::NMSymbol; _Iterator2 = {anonymous}::NMSymbol; _Compare = std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)>]’:
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/functional:1982:6:   required by substitution of ‘template<class _Res, class ... _ArgTypes> template<class _Functor> using _Invoke = decltype (std::__callable_functor(declval<_Functor&>())((declval<_ArgTypes>)()...)) [with _Functor = __gnu_cxx::__ops::_Iter_comp_iter<std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)> >; _Res = bool; _ArgTypes = {const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&}]’
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/functional:1992:56:   required by substitution of ‘template<class _Res, class ... _ArgTypes> template<class _Functor> using _Callable = std::__and_<std::function<_Res(_ArgTypes ...)>::_NotSelf<_Functor>, std::__check_func_return_type<std::function<_Res(_ArgTypes ...)>::_Invoke<_Functor>, _Res> > [with _Functor = __gnu_cxx::__ops::_Iter_comp_iter<std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)> >; _Res = bool; _ArgTypes = {const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&}]’
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/functional:2057:9:   required by substitution of ‘template<class _Functor, class> std::function<_Res(_ArgTypes ...)>::function(_Functor) [with _Functor = __gnu_cxx::__ops::_Iter_comp_iter<std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)> >; <template-parameter-1-2> = <missing>]’
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/predefined_ops.h:130:46:   required from ‘constexpr __gnu_cxx::__ops::_Iter_comp_iter<_Compare> __gnu_cxx::__ops::__iter_comp_iter(_Compare) [with _Compare = std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)>]’
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/stl_algo.h:4729:70:   required from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<{anonymous}::NMSymbol*, std::vector<{anonymous}::NMSymbol> >; _Compare = std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)>]’
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/STLExtras.h:1125:12:   required from ‘void llvm::sort(IteratorTy, IteratorTy, Compare) [with IteratorTy = __gnu_cxx::__normal_iterator<{anonymous}::NMSymbol*, std::vector<{anonymous}::NMSymbol> >; Compare = std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)>]’
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/STLExtras.h:1130:13:   required from ‘void llvm::sort(Container&&, Compare) [with Container = std::vector<{anonymous}::NMSymbol>&; Compare = std::function<bool(const {anonymous}::NMSymbol&, const {anonymous}::NMSymbol&)>]’
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/tools/llvm-nm/llvm-nm.cpp:724:31:   required from here
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/predefined_ops.h:123:31: error: no match for ‘operator*’ (operand type is ‘{anonymous}::NMSymbol’)
         { return bool(_M_comp(*__it1, *__it2)); }
                               ^
In file included from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APFloat.h:19:0,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/IR/Type.h:17,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/IR/DerivedTypes.h:23,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/IR/Function.h:29,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/tools/llvm-nm/llvm-nm.cpp:21:
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2097:14: note: candidate: llvm::APInt llvm::operator*(llvm::APInt, uint64_t)
 inline APInt operator*(APInt a, uint64_t RHS) {
              ^
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2097:14: note:   candidate expects 2 arguments, 1 provided
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2102:14: note: candidate: llvm::APInt llvm::operator*(uint64_t, llvm::APInt)
 inline APInt operator*(uint64_t LHS, APInt b) {
              ^
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2102:14: note:   candidate expects 2 arguments, 1 provided
In file included from /b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/stl_algobase.h:71:0,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/memory:62,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/Optional.h:22,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/STLExtras.h:19,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/StringRef.h:12,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/StringSwitch.h:15,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/tools/llvm-nm/llvm-nm.cpp:18:
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/predefined_ops.h:123:39: error: no match for ‘operator*’ (operand type is ‘{anonymous}::NMSymbol’)
         { return bool(_M_comp(*__it1, *__it2)); }
                                       ^
In file included from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APFloat.h:19:0,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/IR/Type.h:17,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/IR/DerivedTypes.h:23,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/IR/Function.h:29,
                 from /b/s/w/ir/cache/builder/src/third_party/llvm/llvm/tools/llvm-nm/llvm-nm.cpp:21:
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2097:14: note: candidate: llvm::APInt llvm::operator*(llvm::APInt, uint64_t)
 inline APInt operator*(APInt a, uint64_t RHS) {
              ^
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2097:14: note:   candidate expects 2 arguments, 1 provided
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2102:14: note: candidate: llvm::APInt llvm::operator*(uint64_t, llvm::APInt)
 inline APInt operator*(uint64_t LHS, APInt b) {
              ^
/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/APInt.h:2102:14: note:   candidate expects 2 arguments, 1 provided
Thu, Aug 15, 1:18 PM · Restricted Project
jfb created D66310: Fix nm on GCC 5.1 after the C++14 move.
Thu, Aug 15, 1:15 PM · Restricted Project
jfb added a comment to D66259: Migrate llvm::make_unique to std::make_unique.

FWIW I think this particular bug was https://gcc.gnu.org/PR65942

Thu, Aug 15, 1:15 PM · Restricted Project
jfb committed rG7a210d65edc6: Fix lld on GCC 5.1 after the C++14 move (authored by jfb).
Fix lld on GCC 5.1 after the C++14 move
Thu, Aug 15, 10:48 AM
jfb committed rL369023: Fix lld on GCC 5.1 after the C++14 move.
Fix lld on GCC 5.1 after the C++14 move
Thu, Aug 15, 10:48 AM
jfb closed D66306: Fix lld on GCC 5.1 after the C++14 move.
Thu, Aug 15, 10:48 AM · Restricted Project
jfb updated the diff for D66306: Fix lld on GCC 5.1 after the C++14 move.
  • Fall through as suggested.
Thu, Aug 15, 10:45 AM · Restricted Project
jfb added inline comments to D66244: Compiler.h: remove old GCC checks, update docs.
Thu, Aug 15, 10:37 AM · Restricted Project
jfb accepted D66256: [AIX] For XL, pick GCC-compatible std & default warning options.
Thu, Aug 15, 10:31 AM · Restricted Project
jfb added a comment to D66195: Move to C++14.
In D66195#1631797, @jfb wrote:

I have a repro, will try to figure out a workaround. It's fixed in 5.2. Talking to Jonathan Wakely we'd probably be better off on 5.5, but that'll be a separate discussion.

I have a fix. Building and testing... Will send a patch soon.

Thu, Aug 15, 10:25 AM · Restricted Project
jfb created D66306: Fix lld on GCC 5.1 after the C++14 move.
Thu, Aug 15, 10:25 AM · Restricted Project
jfb added a comment to D66259: Migrate llvm::make_unique to std::make_unique.

It looks like this breaks building with gcc5.1:

Why are you using 5.1? That's dumb. There are tons of bugs in 5.1 that are fixed in later 5.x releases, especially if you're using C++14.

That's a really bad choice of minimum version to insist on supporting.

Source: me, because I broke lots of stuff in 5.1 and then fixed it.

Thu, Aug 15, 10:18 AM · Restricted Project
jfb added a comment to D66195: Move to C++14.

I have a repro, will try to figure out a workaround. It's fixed in 5.2. Talking to Jonathan Wakely we'd probably be better off on 5.5, but that'll be a separate discussion.

Thu, Aug 15, 10:12 AM · Restricted Project
jfb added a comment to D66195: Move to C++14.
In D66195#1631746, @jfb wrote:

Ugh that's an ugly one...

/b/s/w/ir/cache/builder/src/third_party/llvm/llvm/include/llvm/ADT/STLExtras.h:1322:19:   required from ‘void llvm::stable_sort(R&&, Compare) [with R = llvm::MutableArrayRef<lld::elf::InputSection*>&; Compare = std::function<bool(lld::elf::InputSectionBase*, lld::elf::InputSectionBase*)>]’
/b/s/w/ir/cache/builder/src/third_party/llvm/lld/ELF/LinkerScript.cpp:347:44:   required from here
/b/s/w/ir/cache/builder/src/third_party/llvm-build-tools/gcc510trusty/include/c++/5.1.0/bits/predefined_ops.h:123:46: error: no match for call to ‘(std::function<bool(lld::elf::InputSectionBase*, lld::elf::InputSectionBase*)>) (lld::elf::InputSectionBase&, lld::elf::InputSectionBase&)’

Looks like we do the following:

template <typename R, typename Compare>
void stable_sort(R &&Range, Compare C) {
  std::stable_sort(adl_begin(Range), adl_end(Range), C);
}

static void sortSections(MutableArrayRef<InputSection *> vec,
                         SortSectionPolicy k) {
  if (k != SortSectionPolicy::Default && k != SortSectionPolicy::None)
    llvm::stable_sort(vec, getComparator(k));
}

static std::function<bool(InputSectionBase *, InputSectionBase *)>
getComparator(SortSectionPolicy k) {
  switch (k) {
  case SortSectionPolicy::Alignment:
    return [](InputSectionBase *a, InputSectionBase *b) {
      // ">" is not a mistake. Sections with larger alignments are placed
      // before sections with smaller alignments in order to reduce the
      // amount of padding necessary. This is compatible with GNU.
      return a->alignment > b->alignment;
    };
  case SortSectionPolicy::Name:
    return [](InputSectionBase *a, InputSectionBase *b) {
      return a->name < b->name;
    };
  case SortSectionPolicy::Priority:
    return [](InputSectionBase *a, InputSectionBase *b) {
      return getPriority(a->name) < getPriority(b->name);
    };
  default:
    llvm_unreachable("unknown sort policy");
  }
}

Has anyone seen this before? Any known workarounds?

I haven't seen it before... taking a look now.

Thu, Aug 15, 10:01 AM · Restricted Project
jfb added a comment to D66195: Move to C++14.

Ugh that's an ugly one...

Thu, Aug 15, 9:33 AM · Restricted Project
jfb added a comment to D66195: Move to C++14.
In D66195#1629329, @jfb wrote:

Perhaps add a note in docs/ReleaseNotes.rst as well?

I can, but that seems odd: aren’t release notes for users of LLVM, not developers? In other words, what would someone reading this note take away from it, and do based on reading it?

I think the releases are also used by folks doing various kinds of out-of-tree LLVM stuff, and this change might let them use C++14 in their code by default.

I agree with Hans that there should be an LLVM release note. Another action for an LLVM user (who, to be clear, is a developer of an LLVM-based compiler) would be to update their host toolchain before trying to migrate to the newer LLVM version.

Thu, Aug 15, 9:32 AM · Restricted Project
jfb accepted D55562: Atomics: support min/max orthogonally.
Thu, Aug 15, 9:17 AM · Restricted Project
jfb added a comment to D66271: [CMake] Check for C++14 instead of C++11.

Thanks for fixing this!

Thu, Aug 15, 9:07 AM · Restricted Project, Restricted Project

Wed, Aug 14

jfb committed rGcad8356d699b: Remove LVALUE / RVALUE workarounds (authored by jfb).
Remove LVALUE / RVALUE workarounds
Wed, Aug 14, 3:50 PM
jfb committed rL368939: Remove LVALUE / RVALUE workarounds.
Remove LVALUE / RVALUE workarounds
Wed, Aug 14, 3:50 PM
jfb closed D66240: Remove LVALUE / RVALUE workarounds.
Wed, Aug 14, 3:50 PM · Restricted Project, Restricted Project
jfb added a comment to D66259: Migrate llvm::make_unique to std::make_unique.

BTW, if this breaks stuff maybe it's better to do it one project at a time, and remove the helper at the very end.

Wed, Aug 14, 3:13 PM · Restricted Project
jfb added a comment to D66240: Remove LVALUE / RVALUE workarounds.
Wed, Aug 14, 3:11 PM · Restricted Project, Restricted Project
jfb accepted D66259: Migrate llvm::make_unique to std::make_unique.

Thanks!

Wed, Aug 14, 3:10 PM · Restricted Project
jfb added inline comments to D66259: Migrate llvm::make_unique to std::make_unique.
Wed, Aug 14, 3:02 PM · Restricted Project
jfb added a comment to D66256: [AIX] For XL, pick GCC-compatible std & default warning options.
In D66256#1630326, @jfb wrote:

Can XL enable all the same flags which GCC can?

It can except the modules stuff, which should would be detected via the CHECK_CXX_SOURCE_COMPILES.

There's a lot under that elseif!

Most of it is the modules stuff.

At that point, isn't XL GCC compatible?

It isn't, because the object-file generation options (e.g., -fno-unwind-tables) differ.

I guess I should say "default warning" options in the commit message, because the LLVM_ENABLE_WARNINGS and LLVM_ENABLE_PEDANTIC modes aren't enabled with this patch.

Wed, Aug 14, 2:46 PM · Restricted Project
jfb added a comment to D66256: [AIX] For XL, pick GCC-compatible std & default warning options.

Can XL enable all the same flags which GCC can? There's a lot under that elseif! At that point, isn't XL GCC compatible?

Wed, Aug 14, 2:31 PM · Restricted Project
jfb committed rG9953c74fb657: Use std::is_final directly (authored by jfb).
Use std::is_final directly
Wed, Aug 14, 1:15 PM
jfb committed rL368910: Use std::is_final directly.
Use std::is_final directly
Wed, Aug 14, 1:13 PM
jfb committed rGee6f3dd14dec: SwapByteOrder.h: don't check for unsupported GCC versions (authored by jfb).
SwapByteOrder.h: don't check for unsupported GCC versions
Wed, Aug 14, 12:59 PM
jfb committed rL368909: SwapByteOrder.h: don't check for unsupported GCC versions.
SwapByteOrder.h: don't check for unsupported GCC versions
Wed, Aug 14, 12:58 PM
jfb committed rG6ff2a1c878eb: MathExtras.h: don't check for unsupported GCC versions (authored by jfb).
MathExtras.h: don't check for unsupported GCC versions
Wed, Aug 14, 12:57 PM
jfb committed rL368908: MathExtras.h: don't check for unsupported GCC versions.
MathExtras.h: don't check for unsupported GCC versions
Wed, Aug 14, 12:56 PM
jfb created D66244: Compiler.h: remove old GCC checks, update docs.
Wed, Aug 14, 12:54 PM · Restricted Project
jfb created D66240: Remove LVALUE / RVALUE workarounds.
Wed, Aug 14, 12:35 PM · Restricted Project, Restricted Project
jfb committed rGc2649928533b: Revert "Un-break the bots" (authored by jfb).
Revert "Un-break the bots"
Wed, Aug 14, 12:21 PM
jfb committed rL368902: Revert "Un-break the bots".
Revert "Un-break the bots"
Wed, Aug 14, 12:21 PM
jfb committed rGef56c7cdf01e: Un-break the bots (authored by jfb).
Un-break the bots
Wed, Aug 14, 11:17 AM
jfb committed rL368896: Un-break the bots.
Un-break the bots
Wed, Aug 14, 11:17 AM
jfb committed rG3f9d04468640: Match if / elseif properly (authored by jfb).
Match if / elseif properly
Wed, Aug 14, 11:01 AM
jfb committed rL368892: Match if / elseif properly.
Match if / elseif properly
Wed, Aug 14, 11:01 AM
jfb committed rG12f5a2807ef4: Remove now useless C++1y flag (authored by jfb).
Remove now useless C++1y flag
Wed, Aug 14, 10:58 AM
jfb committed rL368890: Remove now useless C++1y flag.
Remove now useless C++1y flag
Wed, Aug 14, 10:56 AM
jfb added inline comments to D66195: Move to C++14.
Wed, Aug 14, 10:56 AM · Restricted Project
jfb committed rGf6db75c39b41: Don't explicitly check for C++14 (authored by jfb).
Don't explicitly check for C++14
Wed, Aug 14, 10:49 AM
jfb committed rL368889: Don't explicitly check for C++14.
Don't explicitly check for C++14
Wed, Aug 14, 10:48 AM
jfb committed rGb13c8ca9ebc4: Move to C++14 (authored by jfb).
Move to C++14
Wed, Aug 14, 10:39 AM
jfb committed rL368887: Move to C++14.
Move to C++14
Wed, Aug 14, 10:38 AM
jfb closed D66195: Move to C++14.
Wed, Aug 14, 10:38 AM · Restricted Project
jfb updated subscribers of D64939: Add a proposal for a libc project under the LLVM umbrella..

I still have big doubts about this. I fear this may have detrimental effect on the ecosystem at large.
(and i'm quite sure this is not just my personal opinion.)

Wed, Aug 14, 10:32 AM · Restricted Project
jfb added a comment to D66195: Move to C++14.

Perhaps add a note in docs/ReleaseNotes.rst as well?

Wed, Aug 14, 7:55 AM · Restricted Project

Tue, Aug 13

jfb created D66195: Move to C++14.
Tue, Aug 13, 10:16 PM · Restricted Project
jfb committed rG20644a9540c8: Remove minimum toolchain soft-error (authored by jfb).
Remove minimum toolchain soft-error
Tue, Aug 13, 9:34 PM
jfb added inline comments to D66045: Improve detection of same value in comparisons.
Tue, Aug 13, 9:34 PM
jfb committed rL368799: Remove minimum toolchain soft-error.
Remove minimum toolchain soft-error
Tue, Aug 13, 9:30 PM
jfb closed D66188: Remove minimum toolchain soft-error.
Tue, Aug 13, 9:30 PM · Restricted Project
jfb updated subscribers of D66188: Remove minimum toolchain soft-error.
Tue, Aug 13, 4:49 PM · Restricted Project
jfb updated the summary of D66188: Remove minimum toolchain soft-error.
Tue, Aug 13, 4:49 PM · Restricted Project
jfb created D66188: Remove minimum toolchain soft-error.
Tue, Aug 13, 4:49 PM · Restricted Project
jfb accepted D64939: Add a proposal for a libc project under the LLVM umbrella..

Overall I think this hits the important points that were raised in the RFC. I'm not sure everything is doable, but it's healthy to have some "disregard for the impossible" early in a project :-)
I'd love to hear from others who want to contribute to this project, and see them sign off on this high-level plan.

Tue, Aug 13, 3:33 PM · Restricted Project
jfb added inline comments to D64939: Add a proposal for a libc project under the LLVM umbrella..
Tue, Aug 13, 2:46 PM · Restricted Project
jfb added a comment to D66143: Don't use std::errc.

As far as I know 4.8 is no longer supported.

That's Trusty and Trusty is on 4.8 which we no longer support, right?

It is still supported with some extra cmake flags.

It used to be, but that's no longer true. r366333 added an unconditional use of <regex> which doesn't exist in 4.8.

This is only for lld. Plus, there was no final decision to drop support for 4.8

I'm not sure this is correct

and all other LLVM subprojects still can be compiled with 4.8 without any problems.

Not for long. https://lists.llvm.org/pipermail/llvm-dev/2019-August/134360.html

Tue, Aug 13, 9:00 AM · Restricted Project, Restricted Project

Mon, Aug 12

jfb added inline comments to D64939: Add a proposal for a libc project under the LLVM umbrella..
Mon, Aug 12, 10:04 PM · Restricted Project
jfb accepted D66043: Add to -Wparentheses case of bitwise-and ("&") and bitwise-or ("|") verses conditional operator ("?:").

Thanks!

Mon, Aug 12, 9:40 PM
jfb added inline comments to D66045: Improve detection of same value in comparisons.
Mon, Aug 12, 9:40 PM
jfb added inline comments to D64939: Add a proposal for a libc project under the LLVM umbrella..
Mon, Aug 12, 9:36 PM · Restricted Project
jfb added inline comments to D66043: Add to -Wparentheses case of bitwise-and ("&") and bitwise-or ("|") verses conditional operator ("?:").
Mon, Aug 12, 4:11 PM
jfb added a comment to D66044: Extend -Wtautological-overlap-compare to accept negative values and integer conversions.

I haven't reviewed in depth, but generally this looks good.

Mon, Aug 12, 4:11 PM
jfb added inline comments to D66046: Add new tautological compare warning for bitwise-or with a non-zero constant.
Mon, Aug 12, 2:54 PM
jfb added inline comments to D66043: Add to -Wparentheses case of bitwise-and ("&") and bitwise-or ("|") verses conditional operator ("?:").
Mon, Aug 12, 2:48 PM
jfb added inline comments to D64939: Add a proposal for a libc project under the LLVM umbrella..
Mon, Aug 12, 1:05 PM · Restricted Project
jfb added inline comments to D64939: Add a proposal for a libc project under the LLVM umbrella..
Mon, Aug 12, 10:52 AM · Restricted Project
jfb added a comment to D65718: [LangRef] Document forward-progress requirement.

Does this need a side effect? Per the current definition, no. Per C++, yes.

What does "need a side-effect" mean here? Do you mean whether llvm.sideffect has to be added to avoid UB?

Mon, Aug 12, 10:07 AM · Restricted Project

Sat, Aug 10

jfb added inline comments to D66044: Extend -Wtautological-overlap-compare to accept negative values and integer conversions.
Sat, Aug 10, 9:03 AM
jfb added inline comments to D66043: Add to -Wparentheses case of bitwise-and ("&") and bitwise-or ("|") verses conditional operator ("?:").
Sat, Aug 10, 9:03 AM
jfb added a comment to D66045: Improve detection of same value in comparisons.

Does this work for unions as well?

Sat, Aug 10, 8:58 AM
jfb added inline comments to D66046: Add new tautological compare warning for bitwise-or with a non-zero constant.
Sat, Aug 10, 8:55 AM

Fri, Aug 9

jfb added a comment to D65718: [LangRef] Document forward-progress requirement.

Just a note of caution: I see discussion starting on cornercases. I would strongly suggest *not* blocking this patch on getting a fully consistent definition. Having something documented which is "mostly right" is better than no documentation at all. (Adding a explicit marker of subtleties under discussion is good.) It's really tempting as reviewers to keep looking for the subtle problems, but remember, the confusion which keeps arising is over the basic need for a side effect, not the exact definition thereof!

Fri, Aug 9, 8:56 PM · Restricted Project
jfb abandoned D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.

Let's do the better fix that Michael suggested.

Fri, Aug 9, 4:18 PM · Restricted Project
jfb updated the diff for D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
  • Also update function name
Fri, Aug 9, 4:18 PM · Restricted Project
jfb added a comment to D66038: [Support] heavyweight_hardware_concurrency uses affinity when counting cores fails, and never returns 0.

The name of this patch is wrong?
Or rather, it's 2 in 1?

Fri, Aug 9, 4:06 PM · Restricted Project, Restricted Project
jfb added inline comments to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
Fri, Aug 9, 2:00 PM · Restricted Project
jfb updated the diff for D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
  • Rename option.
Fri, Aug 9, 2:00 PM · Restricted Project
jfb added a comment to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.

This fix works, but we could also use openat to get around max path length issues. Windows also has an API that can be used similarly.

Fri, Aug 9, 10:32 AM · Restricted Project
jfb added inline comments to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
Fri, Aug 9, 10:04 AM · Restricted Project
jfb updated the diff for D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
  • Document asserts.
Fri, Aug 9, 10:04 AM · Restricted Project
jfb added a comment to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.

Tagging D62271 and @Bigcheese as this was the change that switched the default in Driver. (My motivation for D58169 was thread-heavy programs like clangd).

(At this point it seems likely that MAX_PATH and working directory issues are going to be our greatest defenses against the robot uprising)

Fri, Aug 9, 9:51 AM · Restricted Project
jfb added inline comments to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
Fri, Aug 9, 9:51 AM · Restricted Project
jfb added inline comments to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
Fri, Aug 9, 9:50 AM · Restricted Project

Thu, Aug 8

jfb added inline comments to D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
Thu, Aug 8, 10:24 PM · Restricted Project
jfb updated the diff for D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
  • Address more comments.
Thu, Aug 8, 10:24 PM · Restricted Project
jfb updated the diff for D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
  • Address more comments.
Thu, Aug 8, 10:16 PM · Restricted Project
jfb updated the diff for D65986: Allow setting the VFS to 'real' mode instead of default 'physical'.
  • Undo whitespaces change.
Thu, Aug 8, 9:40 PM · Restricted Project