Page MenuHomePhabricator

mclow.lists (Marshall Clow)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 16 2012, 3:06 PM (378 w, 2 d)

Recent Activity

Fri, Oct 11

mclow.lists accepted D68623: Optimize and fix basic_string move assignment operator.

I'm fine with incremental changes.
It would be nice to have a test case for a allocator that throws on move-assignment, though.

Fri, Oct 11, 11:46 AM · Restricted Project
mclow.lists added a comment to D68623: Optimize and fix basic_string move assignment operator.

Thinking about this some more, I agree with your analysis about the move assignment throwing.

Fri, Oct 11, 10:33 AM · Restricted Project

Thu, Oct 10

mclow.lists added a comment to D68837: [libc++][P0202] Marked algorithms copy/copy_n/copy_if/copy_backward constexpr..

Nice use of __libcpp_is_constant_evaluated(), but how will that play for C++03?

Thu, Oct 10, 8:49 PM · Restricted Project
mclow.lists added a comment to D68623: Optimize and fix basic_string move assignment operator.

This looks ok to me. If you're concerned about performance, you might want to split this into two routines, one for the case were the allocators are equal, and one for the case where they're not (and skip the whole allocator dance for the equal case.)

Thu, Oct 10, 8:43 PM · Restricted Project

Mon, Oct 7

mclow.lists added a comment to D68623: Optimize and fix basic_string move assignment operator.

I'm wondering where you are seeing getting this codegen from.

Mon, Oct 7, 7:00 PM · Restricted Project
mclow.lists added a comment to D68617: partially inline copy constructor basic_string(const basic_string&[, allocator]).

A couple of things:

  1. Can you give your patches a better title? "Optimize copy constructor" is not very informative. Which copy constructor?
  2. What does this do it the dylib - where basic_string<char> and basic_string<wchar_t> are externally instantiated?
Mon, Oct 7, 6:25 PM · Restricted Project

Thu, Oct 3

mclow.lists added a comment to D68364: Prototype implementation of P0784R7: mark all members of std::allocator and std::allocator_traits as constexpr..

Thanks for doing this, Richard.
A few things:

  • Needs tests (as you said)
  • The config macro stuff is all wrong (we build that file from a template)
  • Use __libcpp_is_constant_evaluated instead of __builtin_is_constant_evaluated because it doesn't have to be #ifdefed. (see r364873 and r364884)
  • If we're in a consteval block, we shouldn't be testing for exceptions being disabled, right?
Thu, Oct 3, 7:52 AM · Restricted Project, Restricted Project
mclow.lists added a comment to D68269: [libc++abi] Do not define new/delete by default.

If the Android and FreeBSD folks are ok with this, I'm fine with it

Thu, Oct 3, 6:43 AM · Restricted Project

Thu, Sep 26

mclow.lists added a comment to D68075: Do not #error if no OS is #defined.

Hi @ldionne – That's a good question and I don't know the answer. If it's okay with you, I'd like to keep this change request narrowly focused on getting libcxx to work at all with freestanding environments.

Thu, Sep 26, 9:56 AM · Restricted Project, Restricted Project
mclow.lists added a comment to D68075: Do not #error if no OS is #defined.

This is unfortunate and unnecessary. In particular, this breaks two clang tests if clang is configured to use libcxx as the default C++ standard library.

Thu, Sep 26, 9:56 AM · Restricted Project, Restricted Project

Wed, Sep 25

mclow.lists committed rGe3f89a989a23: Add a missing default parameter to regex::assign. This is LWG3296; reviewed as… (authored by mclow.lists).
Add a missing default parameter to regex::assign. This is LWG3296; reviewed as…
Wed, Sep 25, 9:42 AM
mclow.lists closed D67944: Implement LWG 3296.
Wed, Sep 25, 9:42 AM · Restricted Project
mclow.lists accepted D67944: Implement LWG 3296.

Committed as revision 372896

Wed, Sep 25, 9:42 AM · Restricted Project

Tue, Sep 24

mclow.lists accepted D65161: [libc++] Implement LWG 2510.

this looks fine to me now (with a nit).

Tue, Sep 24, 12:36 PM · Restricted Project, Restricted Project
mclow.lists added a comment to D67944: Implement LWG 3296.

Can you use clang-format instead of custom formatting?

Tue, Sep 24, 11:10 AM · Restricted Project

Mon, Sep 23

mclow.lists added inline comments to D67944: Implement LWG 3296.
Mon, Sep 23, 6:07 PM · Restricted Project
mclow.lists created D67944: Implement LWG 3296.
Mon, Sep 23, 6:07 PM · Restricted Project

Sun, Sep 22

mclow.lists committed rGab8f77a73e54: Revert "Extension: Mark the default constructor of chrono::duration as… (authored by mclow.lists).
Revert "Extension: Mark the default constructor of chrono::duration as…
Sun, Sep 22, 11:18 PM
mclow.lists committed rGd8ac51ab8fde: Extension: Mark the default constructor of chrono::duration as conditionally… (authored by mclow.lists).
Extension: Mark the default constructor of chrono::duration as conditionally…
Sun, Sep 22, 9:20 PM

Sep 13 2019

mclow.lists committed rG7b81a13bfcd1: Only initialize the streams cout/wcout/cerr/wcerr etc once, rather than any… (authored by mclow.lists).
Only initialize the streams cout/wcout/cerr/wcerr etc once, rather than any…
Sep 13 2019, 8:28 AM

Sep 12 2019

mclow.lists added inline comments to D66262: Constrain tuple/unique_ptr move constructors (2899).
Sep 12 2019, 8:37 AM · Restricted Project
mclow.lists requested changes to D66103: implement std::to_array (P0325R3).
Sep 12 2019, 8:19 AM · Restricted Project
mclow.lists abandoned D65895: Fix a layering violation in mutex - prep for fixing PR42918.

This has been landed, and the breakage has been fixed.

Sep 12 2019, 7:04 AM
mclow.lists accepted D65232: [libc++] Implement LWG 3158.

This looks fine to me; please update www/cxx2a_status.html when you commit.

Sep 12 2019, 7:03 AM · Restricted Project, Restricted Project
mclow.lists accepted D66611: Mark issue 2587 resolved by issue 2567..

LGTM

Sep 12 2019, 7:03 AM · Restricted Project

Sep 11 2019

mclow.lists added a comment to D67466: [libcxx] Annotate unique_lock and shared_lock with thread annotations.

It would be nice to have a test (in test/libcxx) to check that these annotations are in the expected places.

Sep 11 2019, 7:38 PM
mclow.lists accepted D65260: [libc++] Consolidate swap, swap_ranges, and iter_swap in <type_traits>. NFC..

With the comment change I suggested, I am fine with this.

Sep 11 2019, 10:17 AM
mclow.lists added inline comments to D67086: Implement syncstream (p0053).
Sep 11 2019, 10:00 AM · Restricted Project
mclow.lists added a comment to D65260: [libc++] Consolidate swap, swap_ranges, and iter_swap in <type_traits>. NFC..

zoecarver accepted this revision

@zoecarver is not an approver for libc++.

Sep 11 2019, 9:52 AM
mclow.lists added a comment to D62451: Regex backreference [1/3] Fixes backreferences for extended grammar..

I'm not a big fan of duplicated code; but especially in this case, since in D62453 you edit the duplicated code to add a throw; but you have to do it twice - once in __parse_backref and once in the new code. Why is that preferable?

Sep 11 2019, 9:34 AM · Restricted Project
mclow.lists added inline comments to D67086: Implement syncstream (p0053).
Sep 11 2019, 8:54 AM · Restricted Project
mclow.lists added inline comments to D67086: Implement syncstream (p0053).
Sep 11 2019, 8:29 AM · Restricted Project

Sep 10 2019

mclow.lists added inline comments to D62778: [1/2] Add a benchmark for map operations..
Sep 10 2019, 4:49 PM · Restricted Project
mclow.lists added a comment to D67086: Implement syncstream (p0053).

Maybe I'm missing something, but I don't see any synchronization between two syncstreams wrapping the same stream.

Sep 10 2019, 10:40 AM · Restricted Project
mclow.lists added a comment to D67086: Implement syncstream (p0053).

A general comment about the tests: You've got a bunch of methods marked "noexcept", but nowhere to I see ASSERT_NOEXCEPT or ASSERT_NOT_NOEXCEPT in the tests to check that.

Sep 10 2019, 10:03 AM · Restricted Project

Sep 7 2019

mclow.lists accepted D67316: Remove ::gets for FreeBSD 13 and later.

LGTM with the one change I suggested.

Sep 7 2019, 12:53 PM · Restricted Project
mclow.lists added a comment to D67316: Remove ::gets for FreeBSD 13 and later.
Sep 7 2019, 8:18 AM · Restricted Project
mclow.lists added a comment to D67316: Remove ::gets for FreeBSD 13 and later.

I'm wondering if this has become complicated enough that we should define a _LIBCPP_C_HAS_NO_GETS config macro.

Sep 7 2019, 6:57 AM · Restricted Project

Sep 5 2019

mclow.lists added inline comments to D66262: Constrain tuple/unique_ptr move constructors (2899).
Sep 5 2019, 10:15 AM · Restricted Project

Sep 4 2019

mclow.lists committed rGb7ebdbdb357f: Reformat the beginning of the testing doc to make clear how to run all the… (authored by mclow.lists).
Reformat the beginning of the testing doc to make clear how to run all the…
Sep 4 2019, 5:38 PM
mclow.lists added inline comments to D66262: Constrain tuple/unique_ptr move constructors (2899).
Sep 4 2019, 11:28 AM · Restricted Project
mclow.lists added a comment to D66970: [libc++] Explicitly provide a list of exported symbols for libc++.

I see maintaining an explicit list of exports as an ongoing time sink - are you sure this is the the direction that we want to take?

Sep 4 2019, 7:56 AM · Restricted Project
mclow.lists added a comment to D66614: Add inline to uflow and underflow.

I only intend to inline uflow and underflow.

Sep 4 2019, 7:53 AM

Sep 3 2019

mclow.lists added a comment to D67052: Add reference type transformation builtins.

If you're going to do __add__lvalue_reference, __add_rvalue_reference, and __remove_reference, why not go all the way and add __is_reference, __is_lvalue_reference and __is_rvalue_reference?

Sep 3 2019, 1:40 PM · Restricted Project, Restricted Project

Aug 26 2019

mclow.lists added inline comments to D62889: rvalue stream operators (1203 and 2534).
Aug 26 2019, 4:16 PM · Restricted Project

Aug 23 2019

mclow.lists added a comment to D66614: Add inline to uflow and underflow.

The templates basic_streambuf<char> and basic_streambuf<wchar> are externally instantiated in the libc++.dylib.
Marking them as inline would remove them from the dylib, breaking any existing binaries that refer to them.

Aug 23 2019, 6:30 PM

Aug 21 2019

mclow.lists accepted D66518: [libcxx] Only declare contents of threading API when _LIBCPP_HAS_THREAD_API_EXTERNAL is not defined..

This seems to work for me (pthreads and nothreads).
In general, I think we're playing "whack-a-mole' with this chunk of code, and I've become fairly unhappy with it.

Aug 21 2019, 8:20 AM · Restricted Project, Restricted Project
mclow.lists added inline comments to D62451: Regex backreference [1/3] Fixes backreferences for extended grammar..
Aug 21 2019, 7:57 AM · Restricted Project

Aug 20 2019

mclow.lists committed rG4f41779cca7d: Add a missing _VSTD:: before a call to merge. Fixes PR43034. Checked the rest… (authored by mclow.lists).
Add a missing _VSTD:: before a call to merge. Fixes PR43034. Checked the rest…
Aug 20 2019, 3:25 PM
mclow.lists committed rG7fa686539269: Fix a couple of unguarded operator, calls in algorithm. Fixes PR#43063. Updated… (authored by mclow.lists).
Fix a couple of unguarded operator, calls in algorithm. Fixes PR#43063. Updated…
Aug 20 2019, 2:33 PM
mclow.lists accepted D65105: [libc++] Implement LWG 3199.

LGTM.

Aug 20 2019, 10:27 AM · Restricted Project, Restricted Project
mclow.lists committed rG696630eaf283: Fix availability of __thread_id on builds with external threading. Reviewed as… (authored by mclow.lists).
Fix availability of __thread_id on builds with external threading. Reviewed as…
Aug 20 2019, 9:17 AM
mclow.lists closed D66480: Fix unavailability of __thread_id on external builds.

Committed as revision 369399.

Aug 20 2019, 9:15 AM · Restricted Project
mclow.lists added a comment to D66480: Fix unavailability of __thread_id on external builds.

This is an alternative to D66301

Aug 20 2019, 8:48 AM · Restricted Project
mclow.lists added a comment to D66301: [libcxx] __thread_id should be available when an external threading API is used..

I put an alternate solution up as D66480

Aug 20 2019, 8:48 AM
mclow.lists accepted D57778: std::abs should not return double (2735).

LGTM.

Aug 20 2019, 8:33 AM
mclow.lists created D66480: Fix unavailability of __thread_id on external builds.
Aug 20 2019, 8:24 AM · Restricted Project

Aug 19 2019

mclow.lists added inline comments to D57778: std::abs should not return double (2735).
Aug 19 2019, 6:15 PM
mclow.lists added a comment to D66301: [libcxx] __thread_id should be available when an external threading API is used..

Yes. Because then it would be in the global namespace.

Aug 19 2019, 7:27 AM

Aug 16 2019

mclow.lists added inline comments to D65667: [libcxx] Avoid destructor call for error_category singletons.
Aug 16 2019, 4:03 PM · Restricted Project
mclow.lists added inline comments to D65667: [libcxx] Avoid destructor call for error_category singletons.
Aug 16 2019, 2:49 PM · Restricted Project
mclow.lists added inline comments to D65667: [libcxx] Avoid destructor call for error_category singletons.
Aug 16 2019, 2:47 PM · Restricted Project
mclow.lists added inline comments to D63284: [libc++] Keep __regex_word in sync with ctype_base.
Aug 16 2019, 7:53 AM · Restricted Project, Restricted Project

Aug 15 2019

mclow.lists added a comment to D65895: Fix a layering violation in mutex - prep for fixing PR42918.

The move of thread_id to <threading_support> has caused a build error for us when _LIBCPP_HAS_THREAD_API_EXTERNAL is true

Aug 15 2019, 12:07 PM
mclow.lists added inline comments to D57778: std::abs should not return double (2735).
Aug 15 2019, 8:15 AM

Aug 14 2019

mclow.lists committed rG2e80d01fa7dc: Fix thread comparison by making sure we never pass our special 'not a thread'… (authored by mclow.lists).
Fix thread comparison by making sure we never pass our special 'not a thread'…
Aug 14 2019, 1:59 PM
mclow.lists committed rG2b1d42541f20: Rework recursive_timed_mutex so that it uses __thread_id instead of using the… (authored by mclow.lists).
Rework recursive_timed_mutex so that it uses __thread_id instead of using the…
Aug 14 2019, 9:24 AM
mclow.lists added a comment to D65895: Fix a layering violation in mutex - prep for fixing PR42918.

Committed as revision 368867. I made Louis' suggested change (reset --> __reset) but somehow that didn't make it into the commit. I will fix that.

Aug 14 2019, 9:24 AM

Aug 13 2019

mclow.lists added inline comments to D65339: Implement std::condition_variable via pthread_cond_clockwait() where available.
Aug 13 2019, 10:17 AM

Aug 8 2019

mclow.lists added inline comments to D65895: Fix a layering violation in mutex - prep for fixing PR42918.
Aug 8 2019, 8:59 AM
mclow.lists updated the diff for D65895: Fix a layering violation in mutex - prep for fixing PR42918.

Re-gen diff with more context. No other changes.

Aug 8 2019, 8:56 AM
mclow.lists committed rGfde236b1f719: Implement hh_mm_ss from P1466R3. Reviewed as https://reviews.llvm.org/D65365. (authored by mclow.lists).
Implement hh_mm_ss from P1466R3. Reviewed as https://reviews.llvm.org/D65365.
Aug 8 2019, 7:39 AM
mclow.lists closed D65365: Implement `hh_mm_ss` from P1466R3.

Committed as revision 368299

Aug 8 2019, 7:38 AM

Aug 7 2019

mclow.lists created D65895: Fix a layering violation in mutex - prep for fixing PR42918.
Aug 7 2019, 12:15 PM
mclow.lists added inline comments to D65895: Fix a layering violation in mutex - prep for fixing PR42918.
Aug 7 2019, 12:15 PM
mclow.lists added a comment to D65667: [libcxx] Avoid destructor call for error_category singletons.

Hubert - I'm not following what you're saying.
Where did error_code come from? As far as I can tell, your comment is the first mention of error_code in this conversation.

Yes, you're correct it is. We encountered this lifetime issue in an application where the reference to the out-of-lifetime object was the cat_ exposition-only member of error_code. The status quo with libc++ is that error_codes are likely unsafe to use during program termination.

Aug 7 2019, 8:29 AM · Restricted Project
mclow.lists added a comment to D65667: [libcxx] Avoid destructor call for error_category singletons.

To chime in from the sidelines: We strive to have zero code that runs before main in Chromium, so we're not excited about a patch that adds more such code to libc++. (In fact, we're hoping to contribute a build mode that removes the existing static initializer for cin/cout/cerr as well.)

Aug 7 2019, 8:25 AM · Restricted Project

Aug 6 2019

mclow.lists added inline comments to D65365: Implement `hh_mm_ss` from P1466R3.
Aug 6 2019, 2:14 PM
mclow.lists added inline comments to D65365: Implement `hh_mm_ss` from P1466R3.
Aug 6 2019, 2:14 PM
mclow.lists added inline comments to D65721: Make rotate a constexpr.
Aug 6 2019, 10:01 AM
mclow.lists added a comment to D65721: Make rotate a constexpr.

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

Aug 6 2019, 9:56 AM
mclow.lists added a comment to D65667: [libcxx] Avoid destructor call for error_category singletons.

Hubert - I'm not following what you're saying.
Where did error_code come from? As far as I can tell, your comment is the first mention of error_code in this conversation.

Aug 6 2019, 9:25 AM · Restricted Project

Aug 5 2019

mclow.lists updated the diff for D65365: Implement `hh_mm_ss` from P1466R3.

More tests, also removed a couple tabs.

Aug 5 2019, 9:37 PM
mclow.lists added a comment to D65365: Implement `hh_mm_ss` from P1466R3.

The __pow10 and __width routines are only called at compile-time; no run-time code at all.
We have a "power of 10" table in charconv, but I don't think that coupling <chrono> and <charconv> is worth the benefit of removing this small routine.

Aug 5 2019, 9:37 PM
mclow.lists added inline comments to D65365: Implement `hh_mm_ss` from P1466R3.
Aug 5 2019, 2:46 PM
mclow.lists added a comment to D65667: [libcxx] Avoid destructor call for error_category singletons.

The good news is that the constructor of the singleton object in libc++ is under your control. It can be constructed whenever you choose, just by calling generic_category().

Aug 5 2019, 10:54 AM · Restricted Project
mclow.lists added a comment to D65667: [libcxx] Avoid destructor call for error_category singletons.

When a handle to an error_category singleton object is used during the termination phase of a program, the destruction of the error_category object may have occurred prior to execution of the current destructor or function registered with atexit, because the singleton object may have been constructed after the corresponding initialization or call to atexit.

Aug 5 2019, 10:28 AM · Restricted Project

Aug 3 2019

mclow.lists added a comment to D65667: [libcxx] Avoid destructor call for error_category singletons.

@EricWF pointed out to me that it is UB to access standard library objects of static storage duration from an atexit handler: http://eel.is/c++draft/basic.start.term#6

Aug 3 2019, 8:26 AM · Restricted Project

Jul 29 2019

mclow.lists added a comment to D59999: Allow the compiler to optimize `string == "literal string"`..

@EricWF asked me:

Can you restate your concern over bypassing char_traits?

Jul 29 2019, 9:35 AM · Restricted Project

Jul 26 2019

mclow.lists created D65365: Implement `hh_mm_ss` from P1466R3.
Jul 26 2019, 7:46 PM
Herald added a project to D47384: Remove dependency from Host to clang: Restricted Project.
Jul 26 2019, 10:09 AM · Restricted Project
mclow.lists committed rG736e8aa8ed48: Fix a bug in std::chrono::abs where it would fail when the duration's period… (authored by mclow.lists).
Fix a bug in std::chrono::abs where it would fail when the duration's period…
Jul 26 2019, 8:11 AM

Jul 24 2019

mclow.lists committed rGdb99d3a2a238: Implement change #4 of P1466: Change weekday to accept both 0 and 7 as Sunday. (authored by mclow.lists).
Implement change #4 of P1466: Change weekday to accept both 0 and 7 as Sunday.
Jul 24 2019, 8:29 PM

Jul 22 2019

mclow.lists committed rG30f12a42474f: Implement most of P1612R1: Relocate endian. Moves the std::endian… (authored by mclow.lists).
Implement most of P1612R1: Relocate endian. Moves the std::endian…
Jul 22 2019, 9:23 PM
mclow.lists committed rG6e9dfc499dde: Update c++2a status page with post-Cologne information (authored by mclow.lists).
Update c++2a status page with post-Cologne information
Jul 22 2019, 8:14 AM

Jul 18 2019

mclow.lists accepted D64941: [libc++] Fix link error with _LIBCPP_HIDE_FROM_ABI_PER_TU and std::string.

The first three removals are fine.
I don't remember why I put the last two in, but I guess I'm OK with them.

Jul 18 2019, 3:04 PM · Restricted Project, Restricted Project

Jul 11 2019

mclow.lists committed rGf3b851f0b8b6: Reorganize the 'bit' header to make most of the facilities available for… (authored by mclow.lists).
Reorganize the 'bit' header to make most of the facilities available for…
Jul 11 2019, 6:05 PM
mclow.lists abandoned D64530: Reorganize the `bit` header to make the facilities available (internally) before C++20.
Jul 11 2019, 6:04 PM

Jul 10 2019

mclow.lists created D64530: Reorganize the `bit` header to make the facilities available (internally) before C++20.
Jul 10 2019, 1:51 PM

Jul 8 2019

mclow.lists added a comment to D64378: [libcxx] Use C11 thread API on Fuchsia.

None of these calls (__libcpp_tls_create, for instance) are templates, or marked as inline candidates.
Should they be in a source file, and baked into the dylib instead of a header file?
(like we do in support/win32/thread_win32.cpp, for example)

Jul 8 2019, 6:26 PM