Quuxplusone (Arthur O'Dwyer)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Wed, Oct 3

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

Rebased on master. Added @ldionne as reviewer.

Wed, Oct 3, 2:01 PM
Quuxplusone added a reviewer for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource.: ldionne.
Wed, Oct 3, 1:53 PM

Sep 15 2018

Quuxplusone added a comment to D52137: Added warning for unary minus used with unsigned type.

I think we can and should do better about false positives here. If you move this check to SemaChecking, you can produce the warning in a context where you know what the final type is -- I don't think there's any reason to warn if the final type is signed and no wider than the promoted type of the negation.

Sep 15 2018, 1:09 PM

Sep 6 2018

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

@EricWF ping?

Sep 6 2018, 5:08 PM

Aug 24 2018

Quuxplusone added inline comments to D51200: Introduce per-callsite inline intrinsics.
Aug 24 2018, 9:51 AM · Restricted Project

Aug 22 2018

Quuxplusone created D51135: Rename has{MutableFields,VolatileMember} to has{Mutable,Volatile}Subobject. NFC..
Aug 22 2018, 3:45 PM

Aug 21 2018

Quuxplusone updated the diff for D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

Update to match the wording in D1144R0 draft revision 13. There's no longer any need to fail when we see a mutable member; on the other hand, we *always* need to perform the special member lookup to find out if our class is move-constructible and destructible.

Aug 21 2018, 5:59 PM · Restricted Project

Aug 19 2018

Quuxplusone added inline comments to D41284: [Concepts] Associated constraints infrastructure..
Aug 19 2018, 12:16 AM

Aug 18 2018

Quuxplusone added inline comments to D41284: [Concepts] Associated constraints infrastructure..
Aug 18 2018, 3:58 PM

Aug 17 2018

Quuxplusone added inline comments to D41284: [Concepts] Associated constraints infrastructure..
Aug 17 2018, 3:49 PM
Quuxplusone updated the diff for D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

A type with no move-constructor, and some non-defaulted copy-constructors (even if it *also* has some defaulted copy-constructors) should not be considered naturally trivially relocatable. The paper already said this, but the Clang patch was misimplemented.

Aug 17 2018, 2:40 AM · Restricted Project

Aug 16 2018

Quuxplusone added a comment to D50805: Don't warn on returning the address of a label from a statement expression.

I think that, ultimately, this warning isn't worth the code complexity in clang to support it.

Aug 16 2018, 12:02 AM · Restricted Project

Aug 14 2018

Quuxplusone updated the diff for D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

Rebased, and ping!

Aug 14 2018, 11:09 AM · Restricted Project

Aug 13 2018

Quuxplusone added a comment to D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Long-delayed ping!

Aug 13 2018, 1:18 AM

Aug 11 2018

Quuxplusone added inline comments to D41217: [Concepts] Concept Specialization Expressions.
Aug 11 2018, 10:41 AM

Aug 7 2018

Quuxplusone added inline comments to D50421: [libcxx] [test] Remove assertion that <bitset> includes <cstddef> and <stdexcept>..
Aug 7 2018, 5:10 PM

Aug 3 2018

Quuxplusone added inline comments to D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".
Aug 3 2018, 1:04 PM · Restricted Project
Quuxplusone updated the diff for D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

Correctly drop the attribute from non-relocatable instantiations of class templates (even though they don't print the diagnostic).

Aug 3 2018, 12:50 PM · Restricted Project

Aug 2 2018

Quuxplusone added inline comments to D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".
Aug 2 2018, 4:32 PM · Restricted Project
Quuxplusone added inline comments to D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".
Aug 2 2018, 12:59 PM · Restricted Project
Quuxplusone updated the diff for D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

Further removal of dead code based on @Rakete1111's feedback.

Aug 2 2018, 12:58 PM · Restricted Project

Aug 1 2018

Quuxplusone updated the diff for D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

clang-format.

Aug 1 2018, 1:22 PM · Restricted Project
Quuxplusone added inline comments to D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".
Aug 1 2018, 1:12 PM · Restricted Project
Quuxplusone updated the diff for D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".

Address feedback from @Rakete1111. Fix wrong ordering of 'class|struct|...' in the diagnostic. Add union test cases. Correctly drop the attribute whenever it is diagnosed as inapplicable.

Aug 1 2018, 1:11 PM · Restricted Project

Jul 31 2018

Quuxplusone created D50119: Compiler support for P1144R0 "__is_trivially_relocatable(T)".
Jul 31 2018, 5:20 PM · Restricted Project

Jul 30 2018

Quuxplusone added a comment to D41458: [libc++][C++17] Elementary string conversions for integral types.

@lichray: I'm interested in merging this patch into my libc++ fork, but the latest update seems to be missing a ton of files. For example charconv_test_helpers.h is included by one of the tests, but does not exist. Also there's a lot of boilerplate missing: you ought to add the new header to module.modulemap, and to double_include.sh.cpp, and so on. Might you upload a new patch anytime soon?

Jul 30 2018, 8:53 PM
Quuxplusone added a comment to D49317: Move __construct_forward (etc.) out of std::allocator_traits..

After thinking about this for some more, I'm not sure this patch is worth doing in its current form. The minimal patch for allowing specializations of allocator_traits would be:

  1. move the __move_construct_forward & friends functions from allocator_traits to private static member functions of std::vector (because they're only used in std::vector right now).
  2. keep the SFINAE on the allocator and avoid encoding any memcpy decision at the call site.
Jul 30 2018, 1:00 PM
Quuxplusone added a comment to D49317: Move __construct_forward (etc.) out of std::allocator_traits..

@mclow.lists: Well, anyway, is this pure refactoring acceptable, or would you prefer to keep these helpers inside allocator_traits until a better solution to constexpr-memcpy can be invented?

Jul 30 2018, 11:20 AM
Quuxplusone added inline comments to D49317: Move __construct_forward (etc.) out of std::allocator_traits..
Jul 30 2018, 10:47 AM
Quuxplusone updated the summary of D49317: Move __construct_forward (etc.) out of std::allocator_traits..
Jul 30 2018, 10:20 AM
Quuxplusone added inline comments to D49317: Move __construct_forward (etc.) out of std::allocator_traits..
Jul 30 2018, 10:13 AM

Jul 27 2018

Quuxplusone added a comment to D49317: Move __construct_forward (etc.) out of std::allocator_traits..

@ldionne: I don't know if your "LGTM" is necessarily sufficient to commit this or not; but either way, I don't have commit privs, so could I ask you (or someone else) to commit this on my behalf? Thanks!

Jul 27 2018, 1:31 PM
Quuxplusone added inline comments to D49317: Move __construct_forward (etc.) out of std::allocator_traits..
Jul 27 2018, 1:25 PM

Jul 24 2018

Quuxplusone added inline comments to D49771: CodeGen: use non-zero memset when possible for automatic variables.
Jul 24 2018, 5:40 PM

Jul 21 2018

Quuxplusone added inline comments to D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".
Jul 21 2018, 11:47 AM
Quuxplusone updated the diff for D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".

Fix the "zero-byte allocation might be misaligned" issue by just never trying to allocate zero bytes — try to allocate 1 byte instead.

Jul 21 2018, 11:46 AM

Jul 18 2018

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

Remove some incorrect noexcept from <experimental/memory_resource>.

Jul 18 2018, 10:03 PM
Quuxplusone added inline comments to D49114: [clang-tidy] Add a check for "magic numbers".
Jul 18 2018, 4:46 PM

Jul 17 2018

Quuxplusone added inline comments to D45015: [Preprocessor] Allow libc++ to detect when aligned allocation is unavailable..
Jul 17 2018, 1:36 PM
Quuxplusone added inline comments to D49112: [Sema] Implement -Wmemset-transposed-args.
Jul 17 2018, 10:37 AM

Jul 16 2018

Quuxplusone added inline comments to D49317: Move __construct_forward (etc.) out of std::allocator_traits..
Jul 16 2018, 5:48 PM
Quuxplusone updated the diff for D49317: Move __construct_forward (etc.) out of std::allocator_traits..

Address @vsapsai's review comments.

Jul 16 2018, 5:47 PM
Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..

Implement similar cosmetic cleanup to D47111, but for the pool resources this time.
I think the argument for keeping do_allocate and do_deallocate in the .cpp file is stronger for these guys than for monotonic_buffer_resource (where Eric convinced me to move them into the .h file for the benefit of the inliner). However, I'm willing to be persuaded (as I was in that case).

Jul 16 2018, 5:08 PM
Quuxplusone added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
Jul 16 2018, 2:38 PM

Jul 13 2018

Quuxplusone updated the diff for D49317: Move __construct_forward (etc.) out of std::allocator_traits..

Move the functions from <memory> to <vector>, since that's their only caller.
Uniform treatment of the pointer/iterator parameters; discover that the difference between "copy_forward" and "copy_range_forward" was that the former did moves and the latter did copies. Rename accordingly.

Jul 13 2018, 1:26 PM
Quuxplusone created D49317: Move __construct_forward (etc.) out of std::allocator_traits..
Jul 13 2018, 1:06 PM
Quuxplusone added inline comments to D49112: [Sema] Implement -Wmemset-transposed-args.
Jul 13 2018, 9:47 AM

Jul 11 2018

Quuxplusone added inline comments to D49114: [clang-tidy] Add a check for "magic numbers".
Jul 11 2018, 3:27 PM
Quuxplusone added inline comments to D49114: [clang-tidy] Add a check for "magic numbers".
Jul 11 2018, 1:55 PM

Jul 10 2018

Quuxplusone added a comment to D48753: [libcxx] Use custom allocator's `construct` in C++03 when available..

Why are we doing this?

I can't find the language in the C++03 specification that requires us to call an allocators construct method if it's present.

Jul 10 2018, 2:03 PM

Jul 9 2018

Quuxplusone added inline comments to D49120: [libc++] P0898R3 2 of 12: Implement <concepts> header.
Jul 9 2018, 11:29 PM
Quuxplusone added inline comments to D49120: [libc++] P0898R3 2 of 12: Implement <concepts> header.
Jul 9 2018, 7:38 PM
Quuxplusone added a comment to D49114: [clang-tidy] Add a check for "magic numbers".

The cult of "no magic numbers" is horrible and we should be trying to deprogram its adherents, not create a whole new generation of them. I would be happy if this clang-tidy patch were quickly abandoned. But, it's just a clang-tidy check — it's easy for people who don't want it to ignore its existence — so I'll just plan to be in that group of people.

Jul 9 2018, 7:15 PM
Quuxplusone added inline comments to D49112: [Sema] Implement -Wmemset-transposed-args.
Jul 9 2018, 5:49 PM

Jul 7 2018

Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Oops, my previous diff had a stray ) in it, somehow.

Jul 7 2018, 12:59 AM

Jul 6 2018

Quuxplusone added inline comments to D48753: [libcxx] Use custom allocator's `construct` in C++03 when available..
Jul 6 2018, 3:28 PM

Jul 5 2018

Quuxplusone added inline comments to D48753: [libcxx] Use custom allocator's `construct` in C++03 when available..
Jul 5 2018, 5:29 PM

Jul 3 2018

Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Massive changes based on Eric's feedback. Moved constructors and destructors of monotonic_buffer_resource into the header so they can be completely inlined. Renamed struct __monotonic_buffer_foo_header to nested types monotonic_buffer_resource::__foo_header. Refactored for 80-column lines.

Jul 3 2018, 10:22 PM
Quuxplusone added a comment to D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

I'll take a pass at the tests tomorrow. Some pointers in general:

  • Tests should be named after the component they test, not how they're testing it.
  • All the tests for a single component should be in the same file.
Jul 3 2018, 10:02 PM
Quuxplusone added inline comments to D48753: [libcxx] Use custom allocator's `construct` in C++03 when available..
Jul 3 2018, 9:09 PM
Quuxplusone added inline comments to D48342: [libcxx] Optimize vectors construction of trivial types from an iterator range with const-ness mismatch..
Jul 3 2018, 9:03 PM
Quuxplusone added inline comments to D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".
Jul 3 2018, 7:58 PM
Quuxplusone updated the diff for D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".

Updated to no longer check "size != 0".
Also rolled in some drive-by cosmetic refactoring that I'd done later in my branch: these functions aren't in a public header and don't need to be uglified.

Jul 3 2018, 7:55 PM
Quuxplusone added inline comments to D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()".
Jul 3 2018, 7:51 PM
Quuxplusone updated the diff for D47360: Implement <memory_resource> as a copy of <experimental/memory_resource>..

Clean some minor cruft from src/experimental/memory_resource.cpp. (This part is a separate git commit which I could pull-request if you want it separately.)

Jul 3 2018, 2:33 AM
Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
Jul 3 2018, 2:30 AM
Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
Jul 3 2018, 2:29 AM

Jul 2 2018

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

@EricWF ping!

Jul 2 2018, 9:48 PM
Quuxplusone added inline comments to D48342: [libcxx] Optimize vectors construction of trivial types from an iterator range with const-ness mismatch..
Jul 2 2018, 12:53 PM

Jun 28 2018

Quuxplusone added a comment to D48753: [libcxx] Use custom allocator's `construct` in C++03 when available..

I'm pretty sure that the C++03 standard doesn't permit the implementation to call any construct method here, even if it wanted to. And this adds a couple hundred LOC to get that (non-standard) behavior. Is there a specific use-case that you're trying to enable by adding this behavior to libc++?

Jun 28 2018, 5:55 PM

Jun 21 2018

Herald updated subscribers of D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
Jun 21 2018, 11:14 PM

Jun 19 2018

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

Bugfix and shrink {un,}synchronized_pool_resource.

Jun 19 2018, 3:17 PM
Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Minor cosmetic changes.

Jun 19 2018, 3:09 PM

Jun 18 2018

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

@EricWF ping; is this a reasonable solution to LWG 2843 on platforms without aligned new and delete?

Jun 18 2018, 7:05 PM
Quuxplusone planned changes to D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
Jun 18 2018, 7:02 PM

Jun 13 2018

Quuxplusone added inline comments to D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
Jun 13 2018, 1:43 AM
Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
  • Shrink monotonic_buffer_resource, and make release() not "leak" allocation size.
Jun 13 2018, 1:37 AM

Jun 10 2018

Quuxplusone added inline comments to D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
Jun 10 2018, 7:25 PM

Jun 5 2018

Quuxplusone planned changes to D47360: Implement <memory_resource> as a copy of <experimental/memory_resource>..

Once the dependencies (D47111 and D47358) are merged, I need to update the unit tests in this patch to reflect the unit tests that were committed. Right now, the unit tests in this patch reflect an old, out-of-date snapshot of what had been in those patches a couple weeks ago.

Jun 5 2018, 9:45 PM
Quuxplusone updated the diff for D46806: Remove unused code from __functional_base. NFC..

Also, <experimental/memory_resource> doesn't need a full definition of std::tuple; just the forward declaration in <__tuple> will suffice.

Jun 5 2018, 9:37 PM

Jun 2 2018

Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
  • Split up the unit tests.
  • Refactor to shrink the memory layout of the resource object itself. Before this patch sizeof(unsynchronized_pool_resource)==56. After this patch sizeof(unsynchronized_pool_resource) == 40.
Jun 2 2018, 8:51 AM

May 29 2018

Quuxplusone added inline comments to D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
May 29 2018, 5:17 PM
Quuxplusone updated the diff for D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..

Rebase and update the diff.

May 29 2018, 5:16 PM

May 28 2018

Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Refactor to remove unused fields from the header structs.

May 28 2018, 10:35 PM
Quuxplusone updated the diff for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..

Add override; disintegrate the unit test; adopt some tests from Eric's D27402.
Also fix one QOI issue discovered by Eric's tests: if the user passes an initial_size to the constructor, then they are probably intending that our first upstream-allocation be big enough to serve at least initial_size 1-byte allocations (or one initial_size-byte allocation with a suitably small alignment). This is explicitly not mandated by the Standard (it merely requires that our next upstream-allocation be of size at least initial_size), but it's probably a healthy choice.

May 28 2018, 9:12 PM
Quuxplusone added inline comments to D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
May 28 2018, 7:05 PM

May 26 2018

Quuxplusone updated the summary of D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
May 26 2018, 9:48 PM
Quuxplusone added a dependent revision for D46806: Remove unused code from __functional_base. NFC.: D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
May 26 2018, 9:48 PM
Quuxplusone added a dependent revision for D47109: LWG 2969 "polymorphic_allocator::construct() shouldn't pass resource()": D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
May 26 2018, 9:48 PM
Quuxplusone added a dependent revision for D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()": D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource..
May 26 2018, 9:48 PM
Quuxplusone added a reviewer for D47360: Implement <memory_resource> as a copy of <experimental/memory_resource>.: mclow.lists.
May 26 2018, 9:48 PM
Quuxplusone added a dependent revision for D46806: Remove unused code from __functional_base. NFC.: D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
May 26 2018, 9:47 PM
Quuxplusone added a dependent revision for D47109: LWG 2969 "polymorphic_allocator::construct() shouldn't pass resource()": D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
May 26 2018, 9:47 PM
Quuxplusone updated the summary of D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
May 26 2018, 9:47 PM
Quuxplusone added a dependent revision for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource.: D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
May 26 2018, 9:47 PM
Quuxplusone added a dependent revision for D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()": D47358: <experimental/memory_resource>: Implement {un,}synchronized_pool_resource..
May 26 2018, 9:47 PM
Quuxplusone added a reviewer for D47344: LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()": mclow.lists.
May 26 2018, 9:47 PM
Quuxplusone added a reviewer for D47111: <experimental/memory_resource>: Implement monotonic_buffer_resource.: mclow.lists.
May 26 2018, 9:46 PM
Quuxplusone added a reviewer for D46806: Remove unused code from __functional_base. NFC.: mclow.lists.
May 26 2018, 9:46 PM

May 25 2018

Quuxplusone added a comment to D47067: Update NRVO logic to support early return.

Just commenting to say that this LGTM and I have no further nitpicks. I have verified that I cannot detect any change in the behavior of -Wpessimizing-move or -Wreturn-std-move due to this change (and I can successfully detect the additional copy-elision due to this change, hooray).

May 25 2018, 10:50 AM