Page MenuHomePhabricator

zoecarver (Zoe Carver)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 28 2019, 10:13 PM (103 w, 3 d)

Email: zoe@zoecarver.com
Username: zoecarver (slack, IRC, github, stackoverflow)

I mostly work on libc++. Feel free to contact me above.

Recent Activity

Tue, Jan 19

zoecarver added a comment to D62641: Support arrays in make_shared and allocate_shared (P0674R1).

@ldionne this is ready for re-review when you're ready to re-review it :)

Tue, Jan 19, 2:15 PM · Restricted Project
zoecarver added inline comments to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Tue, Jan 19, 2:15 PM · Restricted Project
zoecarver updated the diff for D62641: Support arrays in make_shared and allocate_shared (P0674R1).
  • Add SFINAE tests.
  • Remove "no_unique_address".
Tue, Jan 19, 2:15 PM · Restricted Project
zoecarver added a comment to D93912: [libc++][P1679] add string contains.

It's unclear to me if I should add noexcept to the const char* overloads.

Tue, Jan 19, 9:13 AM · Restricted Project

Mon, Jan 18

zoecarver added inline comments to D93912: [libc++][P1679] add string contains.
Mon, Jan 18, 12:51 PM · Restricted Project
zoecarver added inline comments to D93912: [libc++][P1679] add string contains.
Mon, Jan 18, 12:19 PM · Restricted Project
zoecarver accepted D94544: [libc++] NFCI: Refactor allocator_traits.

Thanks again for the cleanup!

Mon, Jan 18, 12:04 PM · Restricted Project
zoecarver added inline comments to D94544: [libc++] NFCI: Refactor allocator_traits.
Mon, Jan 18, 12:03 PM · Restricted Project

Wed, Jan 13

zoecarver added inline comments to D75960: [libc++] Implement C++20's P0476r2: std::bit_cast.
Wed, Jan 13, 11:12 PM · Restricted Project
zoecarver added inline comments to D75960: [libc++] Implement C++20's P0476r2: std::bit_cast.
Wed, Jan 13, 9:37 PM · Restricted Project

Tue, Jan 12

zoecarver added inline comments to D75960: [libc++] Implement C++20's P0476r2: std::bit_cast.
Tue, Jan 12, 3:19 PM · Restricted Project
zoecarver added a comment to D94544: [libc++] NFCI: Refactor allocator_traits.

Thanks for the cleanup, this is much improved!

Tue, Jan 12, 2:55 PM · Restricted Project
zoecarver added inline comments to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Tue, Jan 12, 2:08 PM · Restricted Project
zoecarver added inline comments to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Tue, Jan 12, 1:08 PM · Restricted Project
zoecarver updated the diff for D62641: Support arrays in make_shared and allocate_shared (P0674R1).
  • Format
Tue, Jan 12, 1:06 PM · Restricted Project
zoecarver updated the diff for D62641: Support arrays in make_shared and allocate_shared (P0674R1).
  • Add static size control block
  • fix based on review
Tue, Jan 12, 1:06 PM · Restricted Project
zoecarver added inline comments to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Tue, Jan 12, 12:58 PM · Restricted Project
zoecarver accepted D90968: Fix for the Bug 41784.
Tue, Jan 12, 9:34 AM · Restricted Project

Mon, Jan 11

zoecarver added a comment to D93562: [libc++] Add a missing `<_Compare>` template argument..

I think this makes sense, especially given that most other related algorithms also do this, and that __inplace_merge (__buffered_inplace_merge's only user) also specifies the template argument.

Mon, Jan 11, 5:33 PM · Restricted Project
zoecarver added a comment to D93912: [libc++][P1679] add string contains.

A few small comments. This is looking really good :)

Mon, Jan 11, 5:22 PM · Restricted Project
zoecarver accepted D93819: [libc++] Implement [P0769] "Add shift to algorithm" (shift_left, shift_right).

@Quuxplusone I like this patch a lot better than mine. It seems like this implementation is essentially following the sample in the paper. I was meaning to update mine to use that approach but didn't find the time/remember. Anyway, this looks good to me, thanks!

Mon, Jan 11, 5:11 PM · Restricted Project
zoecarver abandoned D60027: Add shift functions (P0769).
Mon, Jan 11, 5:08 PM · Restricted Project
zoecarver accepted D90968: Fix for the Bug 41784.

This LGTM other than the small note.

Mon, Jan 11, 5:06 PM · Restricted Project
zoecarver accepted D92044: Implement P0655R1 visit<R>: Explicit Return Type for visit.

Didn't read it too carefully, but this looks good to me.

Mon, Jan 11, 4:55 PM · Restricted Project
zoecarver updated the diff for D62641: Support arrays in make_shared and allocate_shared (P0674R1).
  • Add more multidimensional throwing tests.
Mon, Jan 11, 11:29 AM · Restricted Project

Sun, Jan 10

zoecarver added inline comments to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Sun, Jan 10, 10:57 PM · Restricted Project
zoecarver updated the diff for D62641: Support arrays in make_shared and allocate_shared (P0674R1).

Fix based on review.

Sun, Jan 10, 10:54 PM · Restricted Project
zoecarver added a comment to D62641: Support arrays in make_shared and allocate_shared (P0674R1).

Thanks for those suggestions, Louis! Going to add some more tests over the next few days.

Sun, Jan 10, 10:53 PM · Restricted Project

Fri, Jan 8

zoecarver added a comment to D94343: [libc++] NFC: Document the Differential queries to avoid duplicating work.

I don't think you need to add this to the docs, but just so people know, you can also search reviews.llvm.org.

Fri, Jan 8, 2:29 PM · Restricted Project
zoecarver accepted D94343: [libc++] NFC: Document the Differential queries to avoid duplicating work.

@ldionne thank you for adding this much-needed bit of documentation.

Fri, Jan 8, 2:28 PM · Restricted Project
zoecarver accepted D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.

This looks great. Thanks for spending so much time iterating on this patch!

Fri, Jan 8, 9:18 AM · Restricted Project

Thu, Jan 7

zoecarver added inline comments to D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.
Thu, Jan 7, 2:52 PM · Restricted Project
zoecarver added inline comments to D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.
Thu, Jan 7, 2:45 PM · Restricted Project

Wed, Jan 6

zoecarver added inline comments to D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.
Wed, Jan 6, 4:52 PM · Restricted Project

Sat, Dec 26

zoecarver accepted D93815: [libc++] [P1065] Constexpr invoke, reference_wrapper, mem_fn, not_fn..

This LGTM. Thanks. Looking forward to using this in my bind_front patch ;)

Sat, Dec 26, 7:32 PM · Restricted Project
zoecarver added inline comments to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Sat, Dec 26, 4:26 PM · Restricted Project
zoecarver added a comment to D62641: Support arrays in make_shared and allocate_shared (P0674R1).

This is now ready for review (cc @ldionne).

Sat, Dec 26, 4:22 PM · Restricted Project
zoecarver updated the diff for D62641: Support arrays in make_shared and allocate_shared (P0674R1).
  • Resolve TODOs and finish implementing.
Sat, Dec 26, 4:18 PM · Restricted Project

Dec 19 2020

zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

We could probably do something like what this patch is doing and determine whether a class can be passed in registers based on whether its subobjects can be passed in registers. If all of the subobjects can be passed in registers, the current class can be passed in registers too unless something declared in the current class forces it to be passed indirectly (e.g., a virtual function is declared).

Dec 19 2020, 11:27 AM · Restricted Project

Dec 18 2020

zoecarver added inline comments to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Dec 18 2020, 12:14 PM · Restricted Project
zoecarver planned changes to D62641: Support arrays in make_shared and allocate_shared (P0674R1).
Dec 18 2020, 12:12 PM · Restricted Project
zoecarver updated the diff for D62641: Support arrays in make_shared and allocate_shared (P0674R1).
  • Rebase & re-write patch to add a new control block: "__shared_ptr_array"
Dec 18 2020, 12:12 PM · Restricted Project

Dec 17 2020

zoecarver abandoned D62760: allocate_shared should call allocator_traits::construct.
Dec 17 2020, 4:39 PM · Restricted Project
zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

@ahatanak this patch should now be a nfc for types that don't have anything to do with the trivial-abi attribute.

Dec 17 2020, 3:47 PM · Restricted Project
zoecarver updated the diff for D92361: [trivial-abi] Support types without a copy or move constructor..
  • Fix base-derived case.
  • Rebase.
Dec 17 2020, 3:46 PM · Restricted Project
zoecarver accepted D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.
Dec 17 2020, 3:20 PM · Restricted Project
zoecarver added a comment to D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.

This LGTM. Not only to fix the LWG issue, but this is a great cleanup to this part of the codebase. So, thanks Louis.

Dec 17 2020, 3:18 PM · Restricted Project
zoecarver added inline comments to D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.
Dec 17 2020, 2:54 PM · Restricted Project
zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

I think that as long as the class leaves a copy/move constructor defaulted, there's no need for a new trivial_abi attribute.

Sorry, I'm not sure I follow. Could you elaborate a bit or provide an example? What do you mean by "new" trivial_abi attribute?

Sorry, I mean that I think Akira's example should be passed directly. It shouldn't require its own trivial_abi attribute in order to get the treatment.

Dec 17 2020, 10:04 AM · Restricted Project

Dec 16 2020

zoecarver added inline comments to D92361: [trivial-abi] Support types without a copy or move constructor..
Dec 16 2020, 9:11 PM · Restricted Project
zoecarver added inline comments to D92361: [trivial-abi] Support types without a copy or move constructor..
Dec 16 2020, 8:36 PM · Restricted Project
zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

I think that as long as the class leaves a copy/move constructor defaulted, there's no need for a new trivial_abi attribute.

Dec 16 2020, 8:36 PM · Restricted Project

Dec 14 2020

zoecarver added a comment to D91201: [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared.

Let me start by saying that I haven't spent a lot of time looking at it but I really like this implementation.

Dec 14 2020, 4:54 PM · Restricted Project
zoecarver added inline comments to D93153: [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI.
Dec 14 2020, 2:47 PM · Restricted Project
zoecarver added inline comments to D93153: [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI.
Dec 14 2020, 1:57 PM · Restricted Project
zoecarver added inline comments to D93153: [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI.
Dec 14 2020, 1:57 PM · Restricted Project

Dec 11 2020

zoecarver added a comment to D92790: [libc++][P0053R7] Add <syncstream> header and implement std::basic_syncbuf.

Hey @abrachet. Thanks for the patch. Just FYI, I've got D67086 which also implements syncbuf. Maybe we can coordinate on how to merge these patches.

Dec 11 2020, 1:13 PM · Restricted Project

Dec 10 2020

zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

Sorry for the slow update. This patch now implements the suggested change (to "inherit" the trivial-abi attribute if there are no user-defined special members and its copy/move constructor is deleted solely because of a subobject with the attribute). Let me know what you think/if there are any other review comments.

Dec 10 2020, 11:22 PM · Restricted Project
zoecarver updated the diff for D92361: [trivial-abi] Support types without a copy or move constructor..
  • Add lots of tests for S0.
  • Implement discussed change for handling S0.
  • Update docs to reflect change.
Dec 10 2020, 11:18 PM · Restricted Project
zoecarver accepted D93071: [libc++] NFCI: Implement make_shared as allocate_shared with std::allocator.

Thanks for the cleanup. This LGTM!

Dec 10 2020, 4:58 PM · Restricted Project

Dec 9 2020

zoecarver added a comment to D75960: [libc++] Implement C++20's P0476r2: std::bit_cast.

This approach may be frowned upon because std::bit_cast is implemented with __builtin_bit_cast but, I think you could actually use __builtin_bit_cast to write the comparison function you want for the tests:

template<class T> struct Buff { char buff[sizeof(T)]; };
Dec 9 2020, 12:49 PM · Restricted Project

Dec 8 2020

zoecarver added inline comments to D90968: Fix for the Bug 41784.
Dec 8 2020, 9:45 AM · Restricted Project

Dec 7 2020

zoecarver added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

If the implementation-specific builtins don't match on these, then maybe they should have different names, is his argument I think.

Dec 7 2020, 7:48 PM · Restricted Project
zoecarver added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

Are they actually the same, with the same handling of corner cases like unions and tail padding?
There's more to this than just the name, and if they aren't the same, it seems better to have two names.

They are both implementing the same C++ feature, with the same desired semantics of zeroing out any bits in the object representation that aren't in the value representation. If they differ, one or the other would have a bug.

Dec 7 2020, 7:21 PM · Restricted Project

Dec 4 2020

zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

I think perhaps we are talking past each other and have reached the limits of what this sub-thread can hope to achieve.

Dec 4 2020, 11:40 AM · Restricted Project
zoecarver accepted D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.

I'm good with landing this now. I would kind of like to make the tests a little less complicated, but I think they're OK as-is.

Dec 4 2020, 11:05 AM · Restricted Project

Dec 3 2020

zoecarver updated subscribers of D87974: [Builtin] Add __builtin_zero_non_value_bits..

So, it looks like GCC already uses __builtin_clear_padding and MSVC already uses __builtin_zero_non_value_bits. This patch (obviously) is currently implementing __builtin_zero_non_value_bits but, I had planned to update it to use __builtin_clear_padding. Maybe that's not the best course of action, though.

Dec 3 2020, 6:15 PM · Restricted Project
zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

@rjmccall Thanks for all that information. You're right; thinking about it in the context of four value operations is helpful.

Dec 3 2020, 6:01 PM · Restricted Project
zoecarver added inline comments to D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.
Dec 3 2020, 2:06 PM · Restricted Project
zoecarver added inline comments to D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.
Dec 3 2020, 1:57 PM · Restricted Project
zoecarver added a comment to D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.

Thanks for all the test overhaul! Probably better done as a follow-up patch, but this format will make it easier to add move-only tests.

Dec 3 2020, 12:50 PM · Restricted Project

Dec 2 2020

zoecarver committed rG644f68ed4d74: [libc++] Add slice_array operator= valarray overload. (authored by zoecarver).
[libc++] Add slice_array operator= valarray overload.
Dec 2 2020, 10:50 AM
zoecarver closed D58735: Add slice_array operator= valarray overload.
Dec 2 2020, 10:49 AM · Restricted Project

Dec 1 2020

zoecarver added a comment to D92361: [trivial-abi] Support types without a copy or move constructor..

If it is not possible to copy or move the type at all, it is not possible to copy or move it trivially.

Dec 1 2020, 9:27 PM · Restricted Project
zoecarver updated the diff for D92361: [trivial-abi] Support types without a copy or move constructor..
  • Add comment in SemaDeclCXX.
  • Add tests for non-trivial bases/members.
Dec 1 2020, 10:11 AM · Restricted Project
zoecarver added inline comments to D92361: [trivial-abi] Support types without a copy or move constructor..
Dec 1 2020, 9:55 AM · Restricted Project
zoecarver added inline comments to D92361: [trivial-abi] Support types without a copy or move constructor..
Dec 1 2020, 9:41 AM · Restricted Project

Nov 30 2020

zoecarver updated the diff for D92361: [trivial-abi] Support types without a copy or move constructor..
  • Update wording in AttrDocs
Nov 30 2020, 9:07 PM · Restricted Project
zoecarver added inline comments to D92361: [trivial-abi] Support types without a copy or move constructor..
Nov 30 2020, 9:06 PM · Restricted Project
zoecarver updated the diff for D92361: [trivial-abi] Support types without a copy or move constructor..
  • Fix wording in AttrDocs
  • Add more tests
Nov 30 2020, 8:45 PM · Restricted Project
zoecarver added inline comments to D92361: [trivial-abi] Support types without a copy or move constructor..
Nov 30 2020, 8:33 PM · Restricted Project
zoecarver added inline comments to D92361: [trivial-abi] Support types without a copy or move constructor..
Nov 30 2020, 8:17 PM · Restricted Project
zoecarver updated the summary of D92361: [trivial-abi] Support types without a copy or move constructor..
Nov 30 2020, 8:16 PM · Restricted Project
zoecarver requested review of D92361: [trivial-abi] Support types without a copy or move constructor..
Nov 30 2020, 8:12 PM · Restricted Project

Nov 29 2020

zoecarver updated the diff for D60368: Add bind_front function (P0356R5).
  • Use new status format
  • Rebase on master
Nov 29 2020, 9:38 AM · Restricted Project
zoecarver added inline comments to D60368: Add bind_front function (P0356R5).
Nov 29 2020, 9:26 AM · Restricted Project

Nov 28 2020

zoecarver added inline comments to D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.
Nov 28 2020, 1:33 PM · Restricted Project
zoecarver added inline comments to D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.
Nov 28 2020, 12:47 PM · Restricted Project
zoecarver added inline comments to D90968: Fix for the Bug 41784.
Nov 28 2020, 11:47 AM · Restricted Project
zoecarver added inline comments to D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.
Nov 28 2020, 11:18 AM · Restricted Project

Nov 27 2020

zoecarver added inline comments to D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge.
Nov 27 2020, 9:36 PM · Restricted Project
zoecarver added a comment to D60368: Add bind_front function (P0356R5).

@ldionne ping.

Nov 27 2020, 1:25 PM · Restricted Project
zoecarver added a comment to D58735: Add slice_array operator= valarray overload.

Can we use the same trick here and enable the tests in C++03? I think it would be good for consistency.

Nov 27 2020, 1:20 PM · Restricted Project
zoecarver updated the diff for D58735: Add slice_array operator= valarray overload.
  • Rebase off master
  • Support template.pass.cpp in C++03 mode
Nov 27 2020, 1:19 PM · Restricted Project
zoecarver committed rGb2943765e72e: [libc++] Use std::move in numeric algorithms (P0616R0). (authored by zoecarver).
[libc++] Use std::move in numeric algorithms (P0616R0).
Nov 27 2020, 11:17 AM
zoecarver closed D61170: Use std::move in numeric algorithms.
Nov 27 2020, 11:17 AM · Restricted Project

Nov 25 2020

zoecarver added a comment to D58735: Add slice_array operator= valarray overload.

By the way, I had to disable the added tests in C++03 mode.

Nov 25 2020, 11:29 AM · Restricted Project
zoecarver updated the diff for D58735: Add slice_array operator= valarray overload.
  • Rebase off master
  • Split into two tests
Nov 25 2020, 11:28 AM · Restricted Project
zoecarver updated the diff for D61170: Use std::move in numeric algorithms.
  • Rebase to trigger CI
Nov 25 2020, 11:11 AM · Restricted Project

Nov 23 2020

zoecarver committed rG0a20660c8fcb: [libcxx] Resolve LWG 2724 protected -> private. (authored by zoecarver).
[libcxx] Resolve LWG 2724 protected -> private.
Nov 23 2020, 2:27 PM