Page MenuHomePhabricator

Quuxplusone (Arthur O'Dwyer)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 27 2014, 8:52 PM (234 w, 2 d)

Recent Activity

Yesterday

Quuxplusone added inline comments to D51262: Implement P0553 and P0556.
Mon, Jun 24, 8:01 PM
Quuxplusone added inline comments to D51262: Implement P0553 and P0556.
Mon, Jun 24, 7:14 PM

Fri, Jun 21

Quuxplusone updated the diff for D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.

Rebase on the latest version of D61761: Hide is_trivially_relocatable behind a __libcpp_ prefix.

Fri, Jun 21, 2:49 PM
Quuxplusone added inline comments to D62825: [C++2a] Add __builtin_bit_cast, used to implement std::bit_cast.
Fri, Jun 21, 2:28 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D63423: [Diagnostics] Diagnose misused xor as pow.
Fri, Jun 21, 9:43 AM · Restricted Project
Quuxplusone added inline comments to D63423: [Diagnostics] Diagnose misused xor as pow.
Fri, Jun 21, 9:29 AM · Restricted Project

Thu, Jun 20

Quuxplusone added a comment to D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.

@ldionne I've adopted your request to hide all the new names behind __libcpp_.
I think I still need some guidance on how to structure the tests so that they pass with a D50119-enabled Clang and {either pass or are XFAILed} for other compilers.

Thu, Jun 20, 4:25 PM
Quuxplusone updated the diff for D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
  • Hide all the P1144 names consistently behind a __libcpp_ prefix.
  • Add a unit test for __libcpp_relocate_at.
  • Use remove_all_extents in the fallback implementation of is_trivially_relocatable<T>, so that is_trivially_relocatable_v<int[10]> will be true. (is_trivially_relocatable_v<int[]> currently has UB according to P1144, because int[] is an incomplete type.)
Thu, Jun 20, 4:21 PM
Quuxplusone added a child revision for D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate: D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.
Thu, Jun 20, 12:37 PM
Quuxplusone added a parent revision for D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types: D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
Thu, Jun 20, 12:37 PM
Quuxplusone created D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.
Thu, Jun 20, 12:37 PM

Tue, Jun 18

Quuxplusone updated the diff for D58587: Implement P0433: deduction guides for <map>.
  • Add an __identity<T>::type "firewall" on the comparator type as well as on the allocator type.
Tue, Jun 18, 11:58 AM · Restricted Project
Quuxplusone reopened D58587: Implement P0433: deduction guides for <map>.
Tue, Jun 18, 11:58 AM · Restricted Project

Mon, Jun 17

Quuxplusone added inline comments to D63423: [Diagnostics] Diagnose misused xor as pow.
Mon, Jun 17, 3:06 PM · Restricted Project
Quuxplusone added a comment to D63423: [Diagnostics] Diagnose misused xor as pow.

Seems low-value at first glance, but I guess I can't argue with those Twitter and codesearch results.

Mon, Jun 17, 11:07 AM · Restricted Project

Fri, Jun 14

Quuxplusone updated the diff for D58590: Implement P0433: deduction guides for <unordered_map>.

Review comments; remove unnecessary _VSTD:: before remove_const; consistent use of typedefs P and PC to match the corresponding unordered_map tests from D58587.

Fri, Jun 14, 11:58 AM

Wed, Jun 12

Quuxplusone updated the diff for D58617: Implement deduction guides for <unordered_set>.

Use __iter_value_type<_InputIterator> instead of iterator_traits<_InputIterator>::value_type. @mclow.lists, I think this one is ready to land now, too.

Wed, Jun 12, 7:36 AM

Tue, Jun 11

Quuxplusone updated the diff for D58582: Implement P0433: deduction guides for <set>.

Update the tests to no longer test P1518R0 (although it is still supported by the code); this is the same thing I did in my last edit to D58587.

Tue, Jun 11, 7:29 AM · Restricted Project

Fri, Jun 7

Quuxplusone added inline comments to D58879: Implement uses-allocator (P0591R4).
Fri, Jun 7, 9:59 AM

Thu, Jun 6

Quuxplusone added a comment to D58587: Implement P0433: deduction guides for <map>.

@mclow.lists: I think everything's resolved and this is ready for you (or someone; not me) to land. Once it's landed, I assume the next step will be to resume review on D58582 (set) and/or D58590 (unordered_map).

Thu, Jun 6, 8:28 AM · Restricted Project
Quuxplusone updated the diff for D58587: Implement P0433: deduction guides for <map>.

Use the original decltype(source)::allocator_type instead of std::allocator<int> in the allocator-aware-copy-constructor test. So we don't insist on P1518R0 support (yet).

Thu, Jun 6, 8:21 AM · Restricted Project

Thu, May 30

Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
Thu, May 30, 5:45 PM · Restricted Project

Wed, May 29

Quuxplusone updated the diff for D58587: Implement P0433: deduction guides for <map>.

Address review comments. (Remove the two tests involving a multimap-of-reference-type.)

Wed, May 29, 12:36 PM · Restricted Project
Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
Wed, May 29, 12:10 PM · Restricted Project
Quuxplusone updated the diff for D58582: Implement P0433: deduction guides for <set>.

Review comments. (Add "braces instead of parens" comment; add const to int expected_s[] throughout)

Wed, May 29, 9:26 AM · Restricted Project
Quuxplusone added inline comments to D58582: Implement P0433: deduction guides for <set>.
Wed, May 29, 9:24 AM · Restricted Project
Quuxplusone updated the diff for D58587: Implement P0433: deduction guides for <map>.

Addressed the latest review comments.

Wed, May 29, 9:22 AM · Restricted Project
Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
Wed, May 29, 9:06 AM · Restricted Project

May 14 2019

Quuxplusone added a comment to D61366: [libcxx] [test] Don't assert that moved-from containers with non-POCMA allocators are empty..

Are you not allowed to move the containers elements in this case?

Correct. The allocator is not POCMA and not equal, so it's functionally the same as doing assign(make_move_iterator(begin()), make_move_iterator(end())).

May 14 2019, 3:26 PM
Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
May 14 2019, 2:14 PM · Restricted Project

May 12 2019

Quuxplusone added inline comments to D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
May 12 2019, 10:17 PM
Quuxplusone added inline comments to D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
May 12 2019, 7:05 PM
Quuxplusone updated the diff for D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.

Add a heterogeneous __relocate_at2 helper for uninitialized_relocate.
Also fix a major typo-bug in relocate_at; thanks @zoecarver!

May 12 2019, 7:01 PM

May 11 2019

Quuxplusone updated the diff for D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.

Fixed brain fart. Added UNSUPPORTED: c++98 to test.

May 11 2019, 5:04 PM
Quuxplusone added inline comments to D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
May 11 2019, 4:55 PM

May 9 2019

Quuxplusone updated the summary of D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
May 9 2019, 2:40 PM
Quuxplusone created D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
May 9 2019, 2:32 PM
Quuxplusone added a comment to D58587: Implement P0433: deduction guides for <map>.

@mclow.lists Ping!

May 9 2019, 2:23 PM · Restricted Project

May 6 2019

Quuxplusone added inline comments to D58879: Implement uses-allocator (P0591R4).
May 6 2019, 4:02 PM
Quuxplusone added a comment to D47109: LWG 2969 "polymorphic_allocator::construct() shouldn't pass resource()".

We also need to mark this off in the status. I can do that in D58879 or create a separate patch.

May 6 2019, 2:17 PM
Quuxplusone added inline comments to D58879: Implement uses-allocator (P0591R4).
May 6 2019, 2:16 PM

May 4 2019

Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
May 4 2019, 9:05 AM · Restricted Project

May 3 2019

Quuxplusone updated the diff for D58587: Implement P0433: deduction guides for <map>.

Review comments on the unit tests.
Also, it looks like my initial upload didn't actually include the LWG3025 fix? The fix involves the remove_const that's now in most of the deduction guides (and a new test file to test the change).

May 3 2019, 2:17 PM · Restricted Project
Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
May 3 2019, 2:11 PM · Restricted Project
Quuxplusone added a comment to D58587: Implement P0433: deduction guides for <map>.

I'm irked by the typedef typename __identity<_Allocator>::type allocator_type; in the definition of map/multimap. What problem is that solving?

May 3 2019, 1:08 PM · Restricted Project

May 1 2019

Quuxplusone added a comment to D61139: (ABI break) Remove could-be-defaulted SMFs from `stack` and `queue` and `priority_queue`..

@ldionne: I think adding the macro _LIBCPP_ABI_CONTAINER_ADAPTERS_ALWAYS_NONTRIVIAL makes the code "more complicated" because then there will be two different codepaths in need of testing.

If we want to make this change, we have to guard it behind a macro because there's no way we're breaking libc++'s ABI v1 for that. And we should already have testers for the libc++ ABI v2 (if someone cares about it), so that shouldn't be a significant increase in complexity.

[...]

However! I think the problem with that idea is that it would make std::stack<int, fixed_capacity_vector<int, 10>> no longer trivially-destructible! Right now it's not trivially copyable but it is trivially destructible; after your idea, it would remain non-trivially copyable but it would no longer be trivially destructible. So your idea would sadly be a perf regression, not merely the desired perf non-improvement. :(

Are you sure about that? cppreference says:

The destructor for class T is trivial if all of the following is true:

  • The destructor is not user-provided (meaning, it is either implicitly declared, or explicitly defined as defaulted on its first declaration)
  • [...]

In that case, the destructor would be explicitly defined as defaulted on its first declaration (and all the other bullets are satisfied too).

May 1 2019, 9:22 AM · Restricted Project

Apr 30 2019

Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
Apr 30 2019, 2:03 PM · Restricted Project
Quuxplusone added a comment to D61139: (ABI break) Remove could-be-defaulted SMFs from `stack` and `queue` and `priority_queue`..

@ldionne: I think adding the macro _LIBCPP_ABI_CONTAINER_ADAPTERS_ALWAYS_NONTRIVIAL makes the code "more complicated" because then there will be two different codepaths in need of testing.

Apr 30 2019, 1:34 PM · Restricted Project

Apr 25 2019

Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..

Add tests that LIBCPP_ASSERT_NOEXCEPT the options and upstream_resource accessors.

Apr 25 2019, 12:12 PM
Quuxplusone added a comment to D61139: (ABI break) Remove could-be-defaulted SMFs from `stack` and `queue` and `priority_queue`..

So, why would we want to do this? What's the benefit?

Apr 25 2019, 11:49 AM · Restricted Project
Quuxplusone created D61139: (ABI break) Remove could-be-defaulted SMFs from `stack` and `queue` and `priority_queue`..
Apr 25 2019, 10:23 AM · Restricted Project

Apr 24 2019

Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..

Rebased on D47111.
Replaced all instances of __release with __release_ptr, to match what @EricWF did in https://github.com/llvm-mirror/libcxx/commit/8e365750a0299ee0cbef70a3f3492c7716f81d5b under the commit message "Avoid name conflict with kernel headers."

Apr 24 2019, 9:19 PM
Quuxplusone updated the diff for D58590: Implement P0433: deduction guides for <unordered_map>.

Rebased on master (well, on D58587).
Add tests for the resolution of LWG 3025.

Apr 24 2019, 7:53 PM

Apr 21 2019

Quuxplusone added a comment to D60570: [Sema] Add more tests for the behavior of argument-dependent name lookup.

@Quuxplusone Do you have other objections apart from the template-id issue ? If not, since D60573 depends on this patch, I would like to commit this with a comment explaining the issue instead of the FIXME.

Apr 21 2019, 4:36 PM · Restricted Project, Restricted Project

Apr 20 2019

Quuxplusone updated the diff for D58582: Implement P0433: deduction guides for <set>.

Rebased on master.

Apr 20 2019, 11:15 AM · Restricted Project
Quuxplusone updated the diff for D54885: Assigning to a local object in a return statement prevents copy elision. NFC..

@dblaikie merged one of the original diffs on 2018-11-26, but the rest are still extant.
Rebased on master. Could I get someone to land the remainder of this patch for me and then close it?

Apr 20 2019, 11:07 AM · Restricted Project
Quuxplusone added inline comments to D60934: [clang] adding explicit(bool) from c++2a.
Apr 20 2019, 7:54 AM · Restricted Project, Restricted Project

Apr 14 2019

Quuxplusone added inline comments to D60570: [Sema] Add more tests for the behavior of argument-dependent name lookup.
Apr 14 2019, 5:25 PM · Restricted Project, Restricted Project

Apr 13 2019

Quuxplusone added a comment to D60570: [Sema] Add more tests for the behavior of argument-dependent name lookup.

As you're making tests for ADL corner cases, you might also consider testing the interactions between ADL and defaulted function parameters, e.g. https://godbolt.org/z/vHnyFl
It looks like everyone (except MSVC) already gets that stuff right (or at least portable-between-the-big-three). I bet the behavior naturally falls out of some other rules; you might say "there's no way that could possibly break, so we don't need to test it," and I'd accept that.

Apr 13 2019, 10:02 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D60570: [Sema] Add more tests for the behavior of argument-dependent name lookup.
Apr 13 2019, 6:54 AM · Restricted Project, Restricted Project

Apr 12 2019

Quuxplusone added inline comments to D60570: [Sema] Add more tests for the behavior of argument-dependent name lookup.
Apr 12 2019, 4:53 AM · Restricted Project, Restricted Project

Apr 11 2019

Quuxplusone added inline comments to D60561: [clang] fixing diagnostics of constexpr callstack.
Apr 11 2019, 6:17 AM · Restricted Project

Mar 21 2019

Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..

Rebased. Added _NOEXCEPT to upstream_resource() and options() (this is OK per [res.on.exception.handling]/5).

Mar 21 2019, 7:09 PM
Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Rebased on master. Added _NOEXCEPT to the resource() method (this is OK per [res.on.exception.handling]/5).

Mar 21 2019, 6:51 PM
Quuxplusone abandoned D54673: Fix some `-Wshadow` diagnostics emitted by Clang trunk.
Mar 21 2019, 6:34 PM

Mar 8 2019

Quuxplusone added a comment to D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".

@Quuxplusone Since the LLVM license has changed since you created this, I need you to confirm that you accept LLVM's new license.

Mar 8 2019, 3:50 PM

Mar 6 2019

Quuxplusone updated the diff for D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".

Oops, really replace the destructor this time. (Hadn't git commited.)

Mar 6 2019, 3:07 PM
Quuxplusone updated the diff for D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".
  • Replace the unnecessary destructor in class __new_delete_resource_imp.
  • Add LWG2843 to the list of completed issues (thanks @zoecarver!)
Mar 6 2019, 3:06 PM
Quuxplusone added inline comments to D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".
Mar 6 2019, 1:32 PM

Mar 4 2019

Quuxplusone updated the diff for D58582: Implement P0433: deduction guides for <set>.

clang-format'ed.

Mar 4 2019, 7:36 PM · Restricted Project
Quuxplusone retitled D58587: Implement P0433: deduction guides for <map> from Implement deduction guides for <map> to Implement P0433: deduction guides for <map>.
Mar 4 2019, 7:25 PM · Restricted Project
Quuxplusone retitled D58590: Implement P0433: deduction guides for <unordered_map> from Implement deduction guides for <unordered_map> to Implement P0433: deduction guides for <unordered_map>.
Mar 4 2019, 7:25 PM
Quuxplusone retitled D58582: Implement P0433: deduction guides for <set> from Implement deduction guides for <set> to Implement P0433: deduction guides for <set>.
Mar 4 2019, 7:25 PM · Restricted Project
Quuxplusone updated the diff for D58590: Implement P0433: deduction guides for <unordered_map>.

Mark LWG3025 status "Complete". (Thanks @STL_MSFT for pointing me at that issue!)

Mar 4 2019, 1:34 PM
Quuxplusone updated the diff for D58587: Implement P0433: deduction guides for <map>.

Remove an unused struct NotAnAllocator from the tests. NFC.

Mar 4 2019, 12:04 PM · Restricted Project

Mar 3 2019

Quuxplusone updated the diff for D58617: Implement deduction guides for <unordered_set>.

Use ASSERT_SAME_TYPE. Add comments in deduct.fail.cpp. Rebase.

Mar 3 2019, 2:56 PM
Quuxplusone updated the summary of D58617: Implement deduction guides for <unordered_set>.
Mar 3 2019, 2:55 PM
Quuxplusone updated the diff for D58590: Implement P0433: deduction guides for <unordered_map>.

Use ASSERT_SAME_TYPE. Add comments to deduct.fail.cpp. Rebase.

Mar 3 2019, 2:27 PM

Feb 27 2019

Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
Feb 27 2019, 9:45 PM · Restricted Project
Quuxplusone updated the diff for D58587: Implement P0433: deduction guides for <map>.

Use ASSERT_SAME_TYPE.
Better comments in .fail.cpp.
Fix some whitespace in my comments.

Feb 27 2019, 9:43 PM · Restricted Project
Quuxplusone updated the diff for D58582: Implement P0433: deduction guides for <set>.

Use ASSERT_SAME_TYPE. Better comments in the .fail.cpp file.

Feb 27 2019, 9:35 PM · Restricted Project

Feb 25 2019

Quuxplusone created D58617: Implement deduction guides for <unordered_set>.
Feb 25 2019, 6:39 AM
Quuxplusone updated the diff for D58590: Implement P0433: deduction guides for <unordered_map>.

Add <algorithm> header to the tests, for the benefit of libstdc++.

Feb 25 2019, 6:26 AM

Feb 24 2019

Quuxplusone created D58590: Implement P0433: deduction guides for <unordered_map>.
Feb 24 2019, 12:11 AM
Quuxplusone added a child revision for D58587: Implement P0433: deduction guides for <map>: D58590: Implement P0433: deduction guides for <unordered_map>.
Feb 24 2019, 12:11 AM · Restricted Project
Quuxplusone added a parent revision for D58590: Implement P0433: deduction guides for <unordered_map>: D58587: Implement P0433: deduction guides for <map>.
Feb 24 2019, 12:11 AM

Feb 23 2019

Quuxplusone updated the diff for D58582: Implement P0433: deduction guides for <set>.

Oops, fix a cut-and-paste thinko in the test for multiset.

Feb 23 2019, 6:43 PM · Restricted Project
Quuxplusone created D58587: Implement P0433: deduction guides for <map>.
Feb 23 2019, 6:43 PM · Restricted Project
Quuxplusone created D58582: Implement P0433: deduction guides for <set>.
Feb 23 2019, 12:38 PM · Restricted Project

Feb 8 2019

Quuxplusone added a comment to D57906: [CTU] Do not allow different CPP dialects in CTU.

Consider this STL code:

template<typename _Alloc>
  struct __alloc_traits
#if __cplusplus >= 201103L
  : std::allocator_traits<_Alloc>
#endif
  { // ...
  };

This class template would create ODR errors during merging the two units,
since in one translation unit the class template has a base class, however
in the other unit it has none.

Feb 8 2019, 7:32 AM · Restricted Project
Quuxplusone added inline comments to D56214: AggressiveInstCombine: Fold full mul i64 x i64 -> i128.
Feb 8 2019, 7:30 AM · Restricted Project

Feb 6 2019

Quuxplusone added inline comments to D57626: Disallow trivial_abi on a class if all copy and move constructors are deleted.
Feb 6 2019, 10:39 AM · Restricted Project

Feb 5 2019

Quuxplusone updated the diff for D57734: priority_queue::replace_top(x).

Reverted names back to friendly names. (The uglified __names were a conforming extension; but the friendly names are what people would actually want to use. As this patch is likely going to be stagnant on Phab for a while, I'd rather have it be in the state that's directly apply-able for anyone who does want to merge it locally.)

Feb 5 2019, 10:22 AM · Restricted Project
Quuxplusone added a comment to D57734: priority_queue::replace_top(x).

@mclow.lists wrote:

Now no one outside of libc++ can call it (legally)

Feb 5 2019, 9:16 AM · Restricted Project
Quuxplusone added inline comments to D56214: AggressiveInstCombine: Fold full mul i64 x i64 -> i128.
Feb 5 2019, 9:10 AM · Restricted Project
Quuxplusone updated the diff for D57734: priority_queue::replace_top(x).

@mclow.lists: Easy peasy! Please take another look.

Feb 5 2019, 8:45 AM · Restricted Project

Feb 4 2019

Quuxplusone updated the diff for D57734: priority_queue::replace_top(x).

Brought unit tests into line with https://reviews.llvm.org/rL353086

Feb 4 2019, 11:21 PM · Restricted Project
Quuxplusone updated the diff for D47360: Implement <memory_resource> as a copy of <experimental/memory_resource>..

Rebased on master. Added to <version> by updating and running the Python script.

Feb 4 2019, 10:08 PM
Quuxplusone added a comment to D57624: Support tests in freestanding.

Hi @jfb, this commit broke /utils/generate_feature_test_macro_components.py in the libc++ repo by replacing two curly braces with one curly brace:

Feb 4 2019, 9:31 PM · Restricted Project
Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..

Rebased on master. @EricWF (cc @AlisdairM) ping!

Feb 4 2019, 9:18 PM