Page MenuHomePhabricator

zoecarver (Zoe Carver)
User

Projects

User does not belong to any projects.

User Details

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

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

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

Recent Activity

Today

zoecarver requested changes to D65161: [libc++] Implement LWG 2510.
Sun, Aug 18, 11:17 AM · Restricted Project
zoecarver added a comment to D62453: Regex backreference [3/3] Validate backreferences in the constructor..

After applying both this and D62451, the tests all passed. Does D62452 rely on / is relied on by any other patches?

Sun, Aug 18, 10:32 AM · Restricted Project

Yesterday

zoecarver added inline comments to D66301: [libcxx] __thread_id should be available when an external threading API is used..
Sat, Aug 17, 1:48 PM
zoecarver added a comment to D62453: Regex backreference [3/3] Validate backreferences in the constructor..

Thanks for fixing those issues :) Looking at it more, it looks like the whole patch wasn't applied. Lines 3555 and 3556 were not update based on the diff I downloaded. When was the last time you rebased off master? I will be on IRC for the next few minutes. Otherwise, my IRC bouncer will catch any messages you send me.

Sat, Aug 17, 1:16 PM · Restricted Project
zoecarver added inline comments to D62451: Regex backreference [1/3] Fixes backreferences for extended grammar..
Sat, Aug 17, 10:01 AM · Restricted Project
zoecarver added inline comments to D62453: Regex backreference [3/3] Validate backreferences in the constructor..
Sat, Aug 17, 9:55 AM · Restricted Project
zoecarver added inline comments to D62453: Regex backreference [3/3] Validate backreferences in the constructor..
Sat, Aug 17, 9:46 AM · Restricted Project

Thu, Aug 15

zoecarver added inline comments to D57778: std::abs should not return double (2735).
Thu, Aug 15, 9:30 AM
zoecarver updated the diff for D57778: std::abs should not return double (2735).
  • make test portable by checking size of R.
Thu, Aug 15, 9:30 AM
zoecarver added inline comments to D66262: Constrain tuple/unique_ptr move constructors (2899).
Thu, Aug 15, 9:07 AM

Wed, Aug 14

zoecarver added a comment to D66262: Constrain tuple/unique_ptr move constructors (2899).

It did not appear that <tuple> needed to be updated. Correct me if I am wrong.

Wed, Aug 14, 5:17 PM
zoecarver created D66262: Constrain tuple/unique_ptr move constructors (2899).
Wed, Aug 14, 5:09 PM
zoecarver committed rGa5f5aad568bb: This commit removes std::shared_ptr::make_shared and std::shared_ptr… (authored by zoecarver).
This commit removes std::shared_ptr::make_shared and std::shared_ptr…
Wed, Aug 14, 10:21 AM
zoecarver closed D66178: Remove std::shared_ptr::make_shared and std::shared_ptr::allocate_shared.

Tests pass in all versions. Committed as rL368885.

Wed, Aug 14, 10:21 AM
zoecarver committed rL368885: This commit removes std::shared_ptr::make_shared and std::shared_ptr….
This commit removes std::shared_ptr::make_shared and std::shared_ptr…
Wed, Aug 14, 10:18 AM

Tue, Aug 13

zoecarver abandoned D62233: General shared_ptr cleanup.

I am closing this patch in favor of D66177 and D66178. I may submit another patch for the remaining changes, but that is a much lower priority. I am leaving this patch intact for posterity.

Tue, Aug 13, 3:36 PM
zoecarver created D66178: Remove std::shared_ptr::make_shared and std::shared_ptr::allocate_shared.
Tue, Aug 13, 3:33 PM
zoecarver created D66177: Update shared_ptr's constructor .
Tue, Aug 13, 3:17 PM
zoecarver added a comment to D62233: General shared_ptr cleanup.

That is a completely valid concern. I will try to focus this patch more.

Tue, Aug 13, 2:46 PM
zoecarver added a comment to D62233: General shared_ptr cleanup.

Could you please split this patch into one that removes the variadic stuff, and one that does the rest (so we can look at them separately). I think we can get rid of the variadic stuff because of Clang extensions, but it's not clear to me the rest is worth doing.

Tue, Aug 13, 9:08 AM

Mon, Aug 12

zoecarver updated the diff for D57778: std::abs should not return double (2735).
  • update the expected error from calling std::abs on unsigned char and short (does anyone know why those types got a specialization here?).
Mon, Aug 12, 2:26 PM
zoecarver updated the diff for D61170: Use std::move in numeric algorithms.

Revert the last diff. Wrong revision.

Mon, Aug 12, 2:25 PM
zoecarver updated the diff for D61170: Use std::move in numeric algorithms.
  • update the expected error from calling std::abs on unsigned char and short (does anyone know why those types got a specialization here?).
Mon, Aug 12, 2:07 PM
zoecarver added a comment to D62233: General shared_ptr cleanup.

Friendly ping @mclow.lists @EricWF and @ldionne. I would very much like to get this committed so that I can update my following patches. I know @EricWF has some patches that may conflict with this, I am happy to update based on those or help update those based on this. Regardless, getting this committed is a very high priority for me.

Mon, Aug 12, 1:50 PM
zoecarver created D66103: implement std::to_array (P0325R3).
Mon, Aug 12, 12:28 PM
zoecarver updated the diff for D65721: Make rotate a constexpr.
  • fix tests
  • make internal functions always constexpr
Mon, Aug 12, 11:18 AM
zoecarver added inline comments to D65721: Make rotate a constexpr.
Mon, Aug 12, 11:12 AM
zoecarver updated the diff for D65721: Make rotate a constexpr.
  • update constexpr tests (now they have full test coverage in a constexpr context)
  • add constexpr to internal functions
  • upgrade move functions to be constexpr
Mon, Aug 12, 11:09 AM
zoecarver added a comment to D65721: Make rotate a constexpr.

rotate and a bunch of other algorithms were made constexpr in P0202, adopted in ABQ.

We've done some of them already; we should do the rest.

Mon, Aug 12, 9:52 AM

Mon, Aug 5

zoecarver added inline comments to D60027: Add shift functions (P0769).
Mon, Aug 5, 7:59 PM
zoecarver added inline comments to D65721: Make rotate a constexpr.
Mon, Aug 5, 7:49 PM

Sun, Aug 4

zoecarver created D65721: Make rotate a constexpr.
Sun, Aug 4, 10:28 AM

Wed, Jul 31

zoecarver updated the diff for D60027: Add shift functions (P0769).

Fix the complexity of shift_right. The only case where this function is more complex than the standard (assuming shift_left is also updated) is when n is greater than std::distance(first, last) - n.

Wed, Jul 31, 9:39 PM

Sat, Jul 27

zoecarver updated the diff for D60027: Add shift functions (P0769).
  • valid constexpr
  • much simpler implementation
  • correct implementation (one that actually works)
  • one implementation for all iterators (including forward iterators)
  • tests that are more clear (correct on inspection)
Sat, Jul 27, 12:31 PM

Sat, Jul 20

zoecarver added a comment to D65041: Change requirements on linear_congruential_engine.

I think it may be good to remove Schrage's algorithm altogether and file an LWG issue for the remaining edge cases. It is very slow and feels out of place in LCG. Additionally, Schrage's algorithm introduces lot's of added complexity and space for bugs.

Sat, Jul 20, 4:17 PM
zoecarver created D65041: Change requirements on linear_congruential_engine.
Sat, Jul 20, 4:12 PM

Jul 15 2019

zoecarver closed D59344: Add contains method to map types.

Committed as rL366170.

Jul 15 2019, 8:25 PM
zoecarver committed rGa17b1aed6ab2: Add contains method to associative containers. This patch implements P0458R2… (authored by zoecarver).
Add contains method to associative containers. This patch implements P0458R2…
Jul 15 2019, 8:23 PM
zoecarver committed rL366170: Add contains method to associative containers. This patch implements P0458R2….
Add contains method to associative containers. This patch implements P0458R2…
Jul 15 2019, 8:21 PM

Jul 14 2019

zoecarver updated the diff for D59344: Add contains method to map types.
  • split tests up into four files
Jul 14 2019, 11:59 AM

Jul 7 2019

zoecarver updated the diff for D59344: Add contains method to map types.
  • remove templated contains methods (we will implement those in D59886)
Jul 7 2019, 9:10 PM
zoecarver updated the diff for D59344: Add contains method to map types.
  • rebase off master
Jul 7 2019, 8:59 PM

Jul 5 2019

zoecarver closed D64234: Make swap functions constexpr.

Committed as rL365238.

Jul 5 2019, 1:15 PM
zoecarver committed rG28e0187175ce: This patch makes swap functions constexpr. Both swap overloads, swap_ranges and… (authored by zoecarver).
This patch makes swap functions constexpr. Both swap overloads, swap_ranges and…
Jul 5 2019, 1:14 PM
zoecarver committed rL365238: This patch makes swap functions constexpr. Both swap overloads, swap_ranges and….
This patch makes swap functions constexpr. Both swap overloads, swap_ranges and…
Jul 5 2019, 1:13 PM

Jul 4 2019

zoecarver created D64234: Make swap functions constexpr.
Jul 4 2019, 9:33 PM

Jul 1 2019

zoecarver updated the diff for D63230: Add observer_ptr.
  • add more constexpr tests
Jul 1 2019, 8:22 PM

Jun 30 2019

zoecarver added a comment to D60666: Fix some constexpr members in array<T, 0>.

I think it would be good to have an LWG issue that says something along the lines of, 22.3.7.5 is updated to say:

array shall provide support for the special case N == 0.
In the case that N == 0, begin() == end() == unique value. All member functions remain constexpr.
No element access members shall participate in overload resolution.
Member function swap() shall have a non-throwing exception specification.

Thoughts?

Jun 30 2019, 1:06 PM
zoecarver updated the diff for D63230: Add observer_ptr.
  • updated based on your comments
  • added a few constexpr tests
Jun 30 2019, 12:35 PM
zoecarver added inline comments to D63230: Add observer_ptr.
Jun 30 2019, 12:23 PM
zoecarver added inline comments to D63230: Add observer_ptr.
Jun 30 2019, 12:09 PM

Jun 23 2019

zoecarver added a comment to D63230: Add observer_ptr.

I am so glad you like it :) thanks for the review @EricWF! I will add constexpr tests and fix the comments.

Jun 23 2019, 8:21 PM

Jun 22 2019

zoecarver added inline comments to D59886: Heterogeneous lookup for unordered containers (P0919R3).
Jun 22 2019, 10:48 AM
zoecarver added a comment to D58879: Implement uses-allocator (P0591R4).

Please make sure that you implement LWG 3185 as part of this patch

Jun 22 2019, 10:48 AM

Jun 15 2019

zoecarver added inline comments to D60666: Fix some constexpr members in array<T, 0>.
Jun 15 2019, 11:57 AM

Jun 13 2019

zoecarver updated the diff for D63230: Add observer_ptr.
  • new header things
Jun 13 2019, 11:52 PM
zoecarver updated the diff for D63230: Add observer_ptr.
  • fix overload resolution
Jun 13 2019, 7:02 PM

Jun 12 2019

zoecarver updated the diff for D62454: SFINAE on pair/tuple assignment operators 2729.
  • change name of helper struct
  • update constness and value type of type trait
Jun 12 2019, 5:43 PM
zoecarver created D63230: Add observer_ptr.
Jun 12 2019, 3:30 PM
zoecarver added a comment to D63154: Make GCC in C++03 Unsupported.

A few things:

  • Can / should we update lit or the lit config?
  • When I run the tests in gnu++03 mode, I don't get error "libc++ does not support using GCC with C++03. Please enable C++11". Maybe I am doing something wrong, though.
  • In all fairness, the reason (most of) the tests fail is not because of g++03 but because they are disabled for c++03 and not gnu++03.
Jun 12 2019, 10:02 AM · Restricted Project

Jun 10 2019

zoecarver added a comment to D61878: Change how containers are compared .

Also, here are some more benchmarks because I technically changed the comparison function (and also, why not?):

-------------------------------------------------------------------------------------
Benchmark                                          Time             CPU   Iterations
-------------------------------------------------------------------------------------
initialize_data                                0.000 ns        0.000 ns            0
test_old/OLD_compare_small_set                 72746 ns        72391 ns        10212
test_new/NEW_compare_small_set                 27201 ns        27132 ns        24270
test_old/OLD_compare_similar_set              100853 ns       100354 ns         7101
test_new/NEW_compare_similar_set               22151 ns        22101 ns        28880
test_old/OLD_compare_big_set                85456872 ns     85059167 ns            6
test_new/NEW_compare_big_set                78148398 ns     78032222 ns            9
test_old/OLD_compare_big_set_different      80389034 ns     80301000 ns            9
test_new/NEW_compare_big_set_different      76252136 ns     76169200 ns           10
test_old/OLD_compare_oposite_order_set     338906270 ns    338359500 ns            2
test_new/NEW_compare_oposite_order_set     308761215 ns    308473500 ns            2
test_old/OLD_compare_random_set             11021038 ns     11011500 ns           56
test_new/NEW_compare_random_set              3717716 ns      3710818 ns          192
test_old/OLD_compare_random_set_different       2720 ns         2718 ns       261663
test_new/NEW_compare_random_set_different       2674 ns         2671 ns       260192
test_old/OLD_compare_short_string            2381223 ns      2377644 ns          295
test_new/NEW_compare_short_string             680146 ns       679617 ns          991
test_old/OLD_compare_long_string            19782950 ns     19765727 ns           33
test_new/NEW_compare_long_string             2370050 ns      2367704 ns          301
test_old/OLD_compare_different_strings          2068 ns         2064 ns       343178
test_new/NEW_compare_different_strings          2046 ns         2043 ns       346945

and (to be fair to the times this function was slower):

-------------------------------------------------------------------------------------
Benchmark                                          Time             CPU   Iterations
-------------------------------------------------------------------------------------
initialize_data                                0.000 ns        0.000 ns            0
test_old/OLD_compare_small_set                 72221 ns        71934 ns         8892
test_new/NEW_compare_small_set                 30014 ns        29660 ns        25674
test_old/OLD_compare_similar_set              107336 ns       106814 ns         6611
test_new/NEW_compare_similar_set               23795 ns        23757 ns        29510
test_old/OLD_compare_big_set                87814006 ns     87564750 ns            8
test_new/NEW_compare_big_set                77258477 ns     77124000 ns            9
test_old/OLD_compare_big_set_different      86371487 ns     86087222 ns            9
test_new/NEW_compare_big_set_different      79709931 ns     79506000 ns            8
test_old/OLD_compare_oposite_order_set     351100203 ns    349060500 ns            2
test_new/NEW_compare_oposite_order_set     312774516 ns    312366000 ns            2
test_old/OLD_compare_random_set             11675568 ns     11655017 ns           58
test_new/NEW_compare_random_set              3614458 ns      3611199 ns          196
test_old/OLD_compare_random_set_different       2807 ns         2802 ns       229585
test_new/NEW_compare_random_set_different       3031 ns         3022 ns       241292
test_old/OLD_compare_short_string            2557198 ns      2545343 ns          274
test_new/NEW_compare_short_string             739160 ns       736574 ns          976
test_old/OLD_compare_long_string            17619450 ns     17561594 ns           32
test_new/NEW_compare_long_string             2347907 ns      2343063 ns          284
test_old/OLD_compare_different_strings           134 ns          133 ns      5265256
test_new/NEW_compare_different_strings           147 ns          146 ns      4736707
Jun 10 2019, 8:47 PM
zoecarver updated the diff for D61878: Change how containers are compared .
  • updated based on Eric's suggestions
Jun 10 2019, 8:42 PM
zoecarver added inline comments to D61878: Change how containers are compared .
Jun 10 2019, 8:36 PM
zoecarver added inline comments to D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.
Jun 10 2019, 8:23 PM · Restricted Project
zoecarver added inline comments to D63053: Add nullptr output operator overload (2221).
Jun 10 2019, 7:59 PM
zoecarver updated the diff for D63053: Add nullptr output operator overload (2221).
  • update status
  • fix operator implementation
Jun 10 2019, 7:59 PM
zoecarver updated the diff for D63053: Add nullptr output operator overload (2221).
  • fix inlining
  • fix visibility
  • fix "nullptr" output value
  • update tests
Jun 10 2019, 11:47 AM
zoecarver added inline comments to D63053: Add nullptr output operator overload (2221).
Jun 10 2019, 8:06 AM

Jun 9 2019

zoecarver added a comment to D44865: [libc++] Implement P0608R3 - A sane variant converting constructor.

A few minor things:

  • the spacing is different from the rest of libc++ (a lot of it was that way before).
  • since this is a paper it should probably be guarded with #if _LIBCPP_STD_VER > 17
  • update the status in www.
Jun 9 2019, 8:54 PM · Restricted Project

Jun 8 2019

zoecarver created D63053: Add nullptr output operator overload (2221).
Jun 8 2019, 4:35 PM
zoecarver created D63051: Test regex match ambiguity (2273).
Jun 8 2019, 2:18 PM
zoecarver added a comment to D63050: Test that correct value category is used in scoped_allocator_adaptor::construct.

It doesn't compile because Alloc1 is convertible to Alloc2, and when it makes the conversion it can turn into either value category (thanks to Eric for explaining). Anyhow, given that bit of information I do not see how the pair portion of this issue can be tested (or how the change matters for pairs).

Jun 8 2019, 1:56 PM
zoecarver added a comment to D63047: [libc++] Fix leading zeros in std::to_chars.

The example in the bug doesn't work: std::to_chars(buf, buf + 100, (unsigned long)0xffffffff).

Edit: it outputs 0004294967295.

Hi,

Hmm, are you sure?
I've just tested fixed version of std::to_chars and std::to_chars(buf, buf + 100, (unsigned long)0xffffffff) produces 4294967295 as expected.

May be you didn't recompile implementation before run lit tests?

Jun 8 2019, 1:50 PM · Restricted Project
zoecarver added a comment to D63047: [libc++] Fix leading zeros in std::to_chars.

The example in the bug doesn't work: std::to_chars(buf, buf + 100, (unsigned long)0xffffffff).

Jun 8 2019, 10:55 AM · Restricted Project
zoecarver created D63050: Test that correct value category is used in scoped_allocator_adaptor::construct.
Jun 8 2019, 10:28 AM
zoecarver added a comment to D63050: Test that correct value category is used in scoped_allocator_adaptor::construct.

For the pair section of the issue, I ran into a few problems. The genesis of the problem is the fact that this compiles (and I can't figure out why):

Jun 8 2019, 10:28 AM
zoecarver added inline comments to D58879: Implement uses-allocator (P0591R4).
Jun 8 2019, 9:10 AM

Jun 7 2019

zoecarver added inline comments to D58879: Implement uses-allocator (P0591R4).
Jun 7 2019, 5:21 PM
zoecarver added a comment to D58879: Implement uses-allocator (P0591R4).

As I have worked through fixing all the issues around this patch, I think I have come to the two root problems. First, using forward_as_tuple makes it so that the tuple cannot be copied (rightfully so) and are therefore useless in make_from_tuple. Here is an example. This should probably be fixed with an LWG issue (either to change what tuples can be copied or update make_from_tuple). Second, and more important, the expression forward_as_tuple(move(p).second) is unable to preserve rvalueness of a type. Here is an example. I think the paper either needs to be updated or an issue needs to be presented to fix this (I am happy to write that issue). What are your thoughts @mclow.lists, @EricWF, and @Quuxplusone?

Jun 7 2019, 5:08 PM

Jun 6 2019

zoecarver abandoned D60371: Add lerp function to cmath (P0811R3).

Already implemented (better) by Marshall.

Jun 6 2019, 8:16 PM
zoecarver abandoned D60032: Add execution header.

@ldionne's got this :)

Jun 6 2019, 8:15 PM
zoecarver abandoned D57403: Extending make_shared to Support Arrays (Partially) - P0674R1.

Abandoned in favor of D62641

Jun 6 2019, 8:09 PM
zoecarver planned changes to D58879: Implement uses-allocator (P0591R4).
Jun 6 2019, 8:09 PM
zoecarver added inline comments to D58879: Implement uses-allocator (P0591R4).
Jun 6 2019, 8:06 PM
zoecarver added inline comments to D62259: shared_ptr changes from library fundamentals (P0414R2).
Jun 6 2019, 8:01 PM
zoecarver updated the diff for D62259: shared_ptr changes from library fundamentals (P0414R2).
  • fix test issues
  • fix diff issues
  • fix void issues
Jun 6 2019, 8:01 PM
zoecarver added inline comments to D62259: shared_ptr changes from library fundamentals (P0414R2).
Jun 6 2019, 7:39 PM
zoecarver added a comment to D62641: Support arrays in make_shared and allocate_shared (P0674R1).

I think D62760 is a good stepping stone for this patch because of the implementation similarities. Once it has been reviewed, I can update this patch with the changes.

Jun 6 2019, 6:45 PM
zoecarver updated the diff for D62103: Update shared_ptr tests to match the standard.
  • update tests based on the review
  • general test fixes
Jun 6 2019, 6:38 PM
zoecarver added inline comments to D62103: Update shared_ptr tests to match the standard.
Jun 6 2019, 6:35 PM
zoecarver added a comment to D61878: Change how containers are compared .

Any more thoughts on this? Friendly ping if you have time to look over it again.

Jun 6 2019, 6:13 PM
zoecarver updated the diff for D61170: Use std::move in numeric algorithms.
  • general fixes
  • update test versions
  • update c++03 issue
Jun 6 2019, 6:13 PM
zoecarver added a comment to D60666: Fix some constexpr members in array<T, 0>.

@EricWF do you still have issues with this patch?

Jun 6 2019, 5:41 PM

Jun 5 2019

zoecarver added inline comments to D62928: Constrain function assignment operator (2574).
Jun 5 2019, 2:51 PM
zoecarver added a comment to D62932: Update status.

@ldionne I talked with @mclow.lists about this because I was wondering the same thing. He is looking into it.

Jun 5 2019, 2:45 PM
zoecarver updated the diff for D62932: Update status.
  • mark another issue complete
Jun 5 2019, 2:43 PM
zoecarver added inline comments to D62928: Constrain function assignment operator (2574).
Jun 5 2019, 2:34 PM
zoecarver updated the diff for D62932: Update status.
  • updated wrong issue (oops)
Jun 5 2019, 2:27 PM
zoecarver created D62932: Update status.
Jun 5 2019, 2:23 PM
zoecarver added inline comments to D62928: Constrain function assignment operator (2574).
Jun 5 2019, 12:55 PM