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 (250 w, 3 d)

Recent Activity

Today

Quuxplusone added inline comments to D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
Wed, Oct 16, 12:31 PM

Yesterday

Quuxplusone added a comment to D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.

@EricWF ping!

Tue, Oct 15, 6:58 AM

Fri, Oct 11

Quuxplusone updated subscribers of D68845: Don't emit unwanted constructor calls in co_return statements.

One more test to add:

struct Widget {
    task<Widget> foo() && {
        co_return *this;  // IIUC this should call return_value(Widget&), not return_value(Widget&&)
    }
};
Fri, Oct 11, 10:23 AM · Restricted Project

Thu, Oct 10

Quuxplusone added a comment to D68845: Don't emit unwanted constructor calls in co_return statements.

Oh, and can you please make sure there are test cases for all the various cases covered in P1155? Specifically, I would expect all three of the following test cases to compile successfully. It looks like they compile successfully in trunk right now (Godbolt), so we're just testing that they don't get broken in the future.

Thu, Oct 10, 9:56 PM · Restricted Project
Quuxplusone added inline comments to D68845: Don't emit unwanted constructor calls in co_return statements.
Thu, Oct 10, 9:38 PM · Restricted Project

Wed, Oct 9

Quuxplusone added inline comments to D51741: [coro]Pass rvalue reference for named local variable to return_value.
Wed, Oct 9, 2:07 PM · Restricted Project
Quuxplusone added a comment to D51741: [coro]Pass rvalue reference for named local variable to return_value.

This change breaks the following code that worked before:

task<MoveOnly&> f(MoveOnly &value) {
  co_return value;
}
Wed, Oct 9, 12:23 PM · Restricted Project
Quuxplusone added inline comments to D68681: [libc++][test] Miscellaneous MSVC cleanups.
Wed, Oct 9, 10:27 AM · Restricted Project
Quuxplusone added inline comments to D68681: [libc++][test] Miscellaneous MSVC cleanups.
Wed, Oct 9, 6:44 AM · Restricted Project

Tue, Oct 8

Quuxplusone added a comment to D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.

I'm putting the benchmarks right here in this patch so that @EricWF can run them. (Zoe and I produced some good-looking benchmark numbers earlier tonight, with code similar to this code; but my build tree is too screwed up to reproduce them on demand.)

Tue, Oct 8, 9:57 AM

Sat, Sep 28

Quuxplusone added a comment to D68185: [Diagnostics] Warn when class implements a copy constructor/copy assignment operator, but missing the copy assignment operator/copy constructor.

Please add test cases showing the intended behavior for

  • when the copy constructor is explicitly defaulted but the copy assignment operator is {implicitly defaulted, implicitly deleted, user-provided}
  • when the copy assignment operator is explicitly defaulted but the copy constructor is {implicitly defaulted, implicitly deleted, user-provided}
  • when the {copy constructor, copy assignment operator} is user-provided but the other is implicitly deleted
Sat, Sep 28, 1:37 PM · Restricted Project

Sun, Sep 22

Quuxplusone added a comment to D67897: Fix __is_signed builtin.

But std::is_signed_v<float> needs to yield false.

It should yield true; the spec says "If is_­arithmetic_­v<T> is true, the same result as T(-1) < T(0); otherwise, false".

Sun, Sep 22, 5:16 PM · Restricted Project
Quuxplusone added a comment to D67897: Fix __is_signed builtin.

But std::is_signed_v<float> needs to yield false. Isn't it cleaner to leave the compiler builtin matching the library type-trait, so that the library doesn't have to check for integral types separately?

Sun, Sep 22, 4:49 PM · Restricted Project

Sat, Sep 21

Quuxplusone updated the diff for D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.

Fix a bug in my vector::insert; it wasn't exception-safe.

Sat, Sep 21, 7:31 PM

Wed, Sep 18

Quuxplusone updated the diff for D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.

Add a new benchmark, and add a TriviallyRelocatableType to the matrix in algorithms.bench.cpp.

Wed, Sep 18, 8:55 PM

Sep 13 2019

Quuxplusone updated the diff for D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.

Address most of @zoecarver's review comments. (Haven't looked into _And yet.)
Since __libcpp_is_constant_evaluated() is usable, use it in std::swap. (This passes all the test cases for swap, including the constexpr ones! Hooray!)

Sep 13 2019, 4:27 PM
Quuxplusone retitled D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types from P1144 "Trivially relocatable" (3/3): optimize std::vector for trivially relocatable types to P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.
Sep 13 2019, 4:27 PM
Quuxplusone added a comment to D65043: [Format] Add C++20 standard to style options.

(For actual coroutine support, treating co_return and co_yield like return everywhere might make sense)

Sep 13 2019, 9:26 AM · Restricted Project

Sep 12 2019

Quuxplusone added inline comments to D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.
Sep 12 2019, 7:32 PM
Quuxplusone retitled D50119: P1144 "Trivially relocatable" (0/3): Compiler support for `__is_trivially_relocatable(T)` from Compiler support for P1144R0 "__is_trivially_relocatable(T)" to P1144 "Trivially relocatable" (0/3): Compiler support for `__is_trivially_relocatable(T)`.
Sep 12 2019, 3:03 PM · Restricted Project
Quuxplusone updated the summary of D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.
Sep 12 2019, 2:53 PM
Quuxplusone updated the summary of D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.
Sep 12 2019, 2:53 PM
Quuxplusone updated the summary of D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.
Sep 12 2019, 2:53 PM
Quuxplusone created D67524: P1144 "Trivially relocatable" (3/3): optimize std::vector and std::swap for trivially relocatable types.
Sep 12 2019, 2:53 PM
Quuxplusone updated the diff for D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.

Rebase on master/D61761, and finally implement conditionally trivial relocatability for stack, queue, and priority_queue.

Sep 12 2019, 2:32 PM
Quuxplusone updated the diff for D61761: P1144 "Trivially relocatable" (1/3): is_trivially_relocatable, relocate_at, and uninitialized_relocate.

Rebased on master. (I don't think I've made any changes since last time.)

Sep 12 2019, 2:16 PM

Sep 11 2019

Quuxplusone updated the diff for D47360: Implement <memory_resource> as a copy of <experimental/memory_resource>..

Oops, fix one last include of an ".hpp" support file which was recently renamed to ".h".

Sep 11 2019, 3:34 PM
Quuxplusone updated the diff for D47360: Implement <memory_resource> as a copy of <experimental/memory_resource>..

Rebased on master.

Sep 11 2019, 12:09 PM
Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..

Rebased on master.

Sep 11 2019, 12:03 PM
Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Rebased on master.

Sep 11 2019, 12:02 PM
Quuxplusone added a comment to D65260: [libc++] Consolidate swap, swap_ranges, and iter_swap in <type_traits>. NFC..

I assume @ldionne _is_ an approver for libc++ at this point? And either way, I haven't got commit access, which is why I continue to ping Louis despite his earlier marking this patch as accepted.

Sep 11 2019, 10:17 AM
Quuxplusone updated the diff for D65260: [libc++] Consolidate swap, swap_ranges, and iter_swap in <type_traits>. NFC..

Rebased on master; the patch still applied cleanly. @ldionne ping?

Sep 11 2019, 9:13 AM

Sep 7 2019

Quuxplusone added a comment to D65260: [libc++] Consolidate swap, swap_ranges, and iter_swap in <type_traits>. NFC..

I guess this has been languishing. @ldionne, thoughts on maybe landing this patch?

Sep 7 2019, 11:11 AM

Aug 25 2019

Quuxplusone added inline comments to D66711: [clang] Warning for non-final classes with final destructors.
Aug 25 2019, 8:17 AM · Restricted Project, Restricted Project

Aug 22 2019

Quuxplusone added a comment to D66397: [Diagnostics] Improve -Wxor-used-as-pow.

@thakis wrote:

What was the motivation for firing on more than bare literals?

Aug 22 2019, 4:06 PM · Restricted Project

Aug 21 2019

Quuxplusone added a comment to D66397: [Diagnostics] Improve -Wxor-used-as-pow.

Swap trick is cool, we can suggest it always(vs. ‘xor’)

Aug 21 2019, 1:21 PM · Restricted Project

Aug 19 2019

Quuxplusone added a comment to D66397: [Diagnostics] Improve -Wxor-used-as-pow.

Now, Chromium disabled this warning :( until we “fix” it.

Aug 19 2019, 1:29 PM · Restricted Project

Aug 18 2019

Quuxplusone added a comment to D66384: [clang-format] Fix a bug that joins template closer and =.

LGTM too, although I would still question whether Style.SpaceBeforeAssignmentOperators is providing anyone any benefit at all.

Aug 18 2019, 7:21 AM · Restricted Project, Restricted Project
Quuxplusone added a comment to D66384: [clang-format] Fix a bug that joins template closer and =.
Aug 18 2019, 7:17 AM · Restricted Project, Restricted Project

Aug 16 2019

Quuxplusone added a comment to D66332: [clang-format] Fix the bug that joins template closer and > or >>.

Do you have SpaceBeforeAssignmentOperators off?

Aug 16 2019, 4:46 PM · Restricted Project
Quuxplusone added a comment to D66332: [clang-format] Fix the bug that joins template closer and > or >>.

Drive-by observation: My experiments with https://zed0.co.uk/clang-format-configurator/ show that there is a similar bug where clang-format accidentally produces >= via reformatting of template<enable_if_t<Foo, int> =0>, pi<int> =3;, and so on. Is it possible to fix that bug as part of this patch, and/or would you be interested in patching that bug as a follow-up to this one?

Aug 16 2019, 11:17 AM · Restricted Project

Aug 12 2019

Quuxplusone accepted D65225: [libc++] Implement CTAD for std::tuple.

LGTM.

Aug 12 2019, 11:23 AM · Restricted Project, Restricted Project

Aug 7 2019

Quuxplusone added a comment to D65043: [Format] Add C++20 standard to style options.

FWIW, looks unobjectionable to me, except for some nitpicks on the test cases (which are easy to fix so I'm hoping you just will :)).

Aug 7 2019, 10:37 AM · Restricted Project

Aug 5 2019

Quuxplusone added a comment to D65225: [libc++] Implement CTAD for std::tuple.

Looks plausible to me, but:

Aug 5 2019, 12:35 PM · Restricted Project, Restricted Project

Jul 26 2019

Quuxplusone added inline comments to D65043: [Format] Add C++20 standard to style options.
Jul 26 2019, 8:58 AM · Restricted Project

Jul 25 2019

Quuxplusone added a comment to D65260: [libc++] Consolidate swap, swap_ranges, and iter_swap in <type_traits>. NFC..

I really dislike the general organization (or rather, the lack thereof) in libc++. It's weird to be defining swap and swap_ranges inside <type_traits>, when swap_ranges should be part of <algorithm> and swap should be in <utility>.

Jul 25 2019, 9:22 AM

Jul 24 2019

Quuxplusone abandoned D64752: Implement deduction guides for std::function (P0433)..

Superseded by D54410, which has now been landed.

Jul 24 2019, 7:40 PM
Quuxplusone created D65260: [libc++] Consolidate swap, swap_ranges, and iter_swap in <type_traits>. NFC..
Jul 24 2019, 7:37 PM
Quuxplusone added inline comments to D65161: [libc++] Implement LWG 2510.
Jul 24 2019, 1:25 PM · Restricted Project, Restricted Project
Quuxplusone added a comment to D65043: [Format] Add C++20 standard to style options.

Clang actually defaults to c++14 since clang 6. (CompilerInvocation.cpp near CLANG_DEFAULT_STD_CXX)

Jul 24 2019, 10:49 AM · Restricted Project
Quuxplusone added a comment to D65043: [Format] Add C++20 standard to style options.

Peanut gallery says: A priori, I don't see any reason for clang-format's LanguageStandard options to diverge from Clang's own -std= options. It sounds like currently they're very different, and you're proposing to make them basically the same. I think that's a good thing.

Jul 24 2019, 7:06 AM · Restricted Project

Jul 21 2019

Quuxplusone added a comment to D64818: [libcxx] Construct path using a instance of std::locale.

Please re-upload the diff with full context (e.g. git diff -U999 blah blah).

Jul 21 2019, 9:39 PM

Jul 17 2019

Quuxplusone added a comment to D54410: [libc++] Add C++17 deduction guides for std::function.

LGTM modulo these last nitpicky comments.

Jul 17 2019, 1:23 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D64818: [libcxx] Construct path using a instance of std::locale.
Jul 17 2019, 8:15 AM
Quuxplusone added inline comments to D54410: [libc++] Add C++17 deduction guides for std::function.
Jul 17 2019, 7:47 AM · Restricted Project, Restricted Project

Jul 15 2019

Quuxplusone added a comment to D54410: [libc++] Add C++17 deduction guides for std::function.

This patch looks like it's got much more complete unit tests than my D64752. I'd be happy to abandon that one. :)

Jul 15 2019, 1:18 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D64752: Implement deduction guides for std::function (P0433)..

Add the other deduction guide from _Rp(*)(_ArgTypes...). (Uploaded an incomplete diff the first time.)

Jul 15 2019, 9:17 AM
Quuxplusone created D64752: Implement deduction guides for std::function (P0433)..
Jul 15 2019, 9:15 AM

Jul 13 2019

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

Use _EnableIf and remove_const_t instead of enable_if and remove_const.
Whitespace diffs.
Preemptively add XFAILs on apple-clang, matching the XFAILs that were needed for unordered_set.

Jul 13 2019, 8:58 AM · Restricted Project

Jul 10 2019

Quuxplusone added a comment to D58617: Implement deduction guides for <unordered_set>.

@mclow.lists ping!

Jul 10 2019, 2:37 PM · Restricted Project

Jul 3 2019

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

Updated to use _EnableIf per EricWF's refactoring of June 23.

Jul 3 2019, 6:37 PM · Restricted Project

Jul 1 2019

Quuxplusone added inline comments to D51262: Implement P0553 and P0556.
Jul 1 2019, 12:41 PM

Jun 24 2019

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

Jun 21 2019

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.

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

Jun 20 2019

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.

Jun 20 2019, 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.)
Jun 20 2019, 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.
Jun 20 2019, 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.
Jun 20 2019, 12:37 PM
Quuxplusone created D63620: P1144 "Trivially relocatable" (2/3): explicit warrants for std library types.
Jun 20 2019, 12:37 PM

Jun 18 2019

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.
Jun 18 2019, 11:58 AM · Restricted Project
Quuxplusone reopened D58587: Implement P0433: deduction guides for <map>.
Jun 18 2019, 11:58 AM · Restricted Project

Jun 17 2019

Quuxplusone added inline comments to D63423: [Diagnostics] Diagnose misused xor as pow.
Jun 17 2019, 3:06 PM · Restricted Project, 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.

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

Jun 14 2019

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.

Jun 14 2019, 11:58 AM · Restricted Project

Jun 12 2019

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.

Jun 12 2019, 7:36 AM · Restricted Project

Jun 11 2019

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.

Jun 11 2019, 7:29 AM · Restricted Project

Jun 7 2019

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

Jun 6 2019

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).

Jun 6 2019, 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).

Jun 6 2019, 8:21 AM · Restricted Project

May 30 2019

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

May 29 2019

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.)

May 29 2019, 12:36 PM · Restricted Project
Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
May 29 2019, 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)

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

Addressed the latest review comments.

May 29 2019, 9:22 AM · Restricted Project
Quuxplusone added inline comments to D58587: Implement P0433: deduction guides for <map>.
May 29 2019, 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