mclow.lists (Marshall Clow)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 16 2012, 3:06 PM (309 w, 6 h)

Recent Activity

Thu, Jun 14

mclow.lists added a comment to D47987: Provide only one declaration of __throw_runtime_error.

I'm not really happy with gcc's redundant declaration warnings; I think they're "nannying" rather than useful.

Thu, Jun 14, 7:27 AM

Tue, May 29

mclow.lists added a comment to D41976: Low-hanging fruit optimization in string::__move_assign()..

Howard just pointed out to me that __clear_and_shrink should be noexcept - otherwise we get the generation of an exception table and a call to terminate in string's move assignment operator. Fixed in revision 333435.

Tue, May 29, 10:10 AM

May 18 2018

mclow.lists closed D46964: Implement class deduction guides for `std::array`.

Committed as revision 332768

May 18 2018, 2:05 PM
mclow.lists added inline comments to D46964: Implement class deduction guides for `std::array`.
May 18 2018, 2:02 PM

May 17 2018

mclow.lists updated the diff for D46975: Implement deduction guides for `std::deque`.

Added tests (and fix!) for the implicit deduction guides.

May 17 2018, 7:42 AM

May 16 2018

mclow.lists added a comment to D46975: Implement deduction guides for `std::deque`.

I should probably add some tests for the implicit deduction guides, too.

May 16 2018, 2:40 PM
mclow.lists created D46975: Implement deduction guides for `std::deque`.
May 16 2018, 1:55 PM
mclow.lists created D46964: Implement class deduction guides for `std::array`.
May 16 2018, 10:59 AM

May 15 2018

mclow.lists added a comment to D46558: Condition usage of locale stdlib functions on Android API version.

I'm fine with this, since it is localized (sorry) inside the Android bits.
I have no opinion on the >= 21 or >= 26 discussion.

May 15 2018, 11:45 AM
mclow.lists added inline comments to D41458: [libc++][C++17] Elementary string conversions for integral types.
May 15 2018, 10:37 AM
mclow.lists added a comment to D39308: [libcxx] Keep track of heap allocated regex states.

What we need to do here is to here is to add a new macro _LIBCPP_ABI_REGEX_MEMORY in <__config> (around line 89) and then make these changes available only when this macro is defined.

May 15 2018, 10:30 AM
mclow.lists accepted D41347: [libc++] Lift std::errc into a separated header.

Sorry this took so long. Please update test/libcxx/double_include.sh.cpp and commit.

May 15 2018, 10:25 AM
mclow.lists added a comment to D46845: [libcxx][c++17] P0083R5: Splicing Maps and Sets.

One way we could deal with this is by adding an attribute to the compiler to indicate "the const is a lie", that we can apply to std::pair::first, with the semantics being that a top-level const is ignored when determining the "real" type of the member (and so mutating the member after a const_cast has defined behavior). This would apply to all std::pairs, not just the node_handle case, but in practice we don't optimize on the basis of a member being declared const *anyway*, so this isn't such a big deal right now.

I'm a fan of this idea, this would also have the bonus of fixing some pre-existing type-punning between pair<const K, V> and pair<K, V> (see hash_value_type and value_type in <unordered_map> and <map>).

May 15 2018, 9:29 AM

May 1 2018

mclow.lists accepted D45470: Emit an error when include <atomic> after <stdatomic.h>.
May 1 2018, 9:37 AM

Apr 25 2018

mclow.lists added a comment to D45179: [libc++] Add _LIBCPP_FORCE_NODISCARD define to force-enable nodiscard in pre-C++17.

BTW, you can gang several failing tests together, and check all the error messages - see libcxx/test/libcxx/containers/unord/unord.set/missing_hash_specialization.fail.cpp for an example.

Apr 25 2018, 7:20 AM
mclow.lists added inline comments to D45179: [libc++] Add _LIBCPP_FORCE_NODISCARD define to force-enable nodiscard in pre-C++17.
Apr 25 2018, 7:19 AM
mclow.lists accepted D45294: [libcxx] [test] Remove non-portable assertions from filebuf tests.

This looks OK to me.

Apr 25 2018, 6:46 AM
mclow.lists added inline comments to D45179: [libc++] Add _LIBCPP_FORCE_NODISCARD define to force-enable nodiscard in pre-C++17.
Apr 25 2018, 6:44 AM

Apr 24 2018

mclow.lists added a comment to D41316: [libcxx] Allow random_device to be built optionally.

Yes, the standard says you're allowed to throw an exception from the random_device constructor, or use a PRNG with an arbitrary seed, or even just return zeros from operator(). But none of those behaviors are actually useful; the code will compile, but you won't get the expected randomness. So I prefer this solution, even if it isn't strictly standard-compliant.

Apr 24 2018, 11:11 AM
mclow.lists added inline comments to D45179: [libc++] Add _LIBCPP_FORCE_NODISCARD define to force-enable nodiscard in pre-C++17.
Apr 24 2018, 11:08 AM
mclow.lists added a comment to D45179: [libc++] Add _LIBCPP_FORCE_NODISCARD define to force-enable nodiscard in pre-C++17.

So you're happy with this opt-in version?

Apr 24 2018, 10:56 AM
mclow.lists added a comment to D45179: [libc++] Add _LIBCPP_FORCE_NODISCARD define to force-enable nodiscard in pre-C++17.

Is Marshall arguing that the standard doesn't allow compilers to warn about failing to use these function results prior to C++17? Because I don't think that's true; warnings are thoroughly non-normative.

Apr 24 2018, 10:29 AM
mclow.lists accepted D34331: func.wrap.func.con: Unset function before destroying anything.

Please move the tests into test/std and commit.

Apr 24 2018, 9:13 AM
mclow.lists added inline comments to D45470: Emit an error when include <atomic> after <stdatomic.h>.
Apr 24 2018, 9:00 AM
mclow.lists accepted D45715: [libcxx] [test] Remove nonportable that errc::is_a_directory produces "Is a directory" from ios_base::failure tests.
Apr 24 2018, 8:55 AM

Apr 23 2018

mclow.lists accepted D41148: [libcxx] implement <experimental/simd> declarations based on P0214R7..

This looks ready to land to me.

Apr 23 2018, 11:05 AM
mclow.lists added a comment to D45715: [libcxx] [test] Remove nonportable that errc::is_a_directory produces "Is a directory" from ios_base::failure tests.

I'm fine with this change, but I'm wondering:

  • if there are similar tests in the filesystem test suite, and you haven't tripped over them because you spelled your error message the same as we did.
  • Should part of this test be moved into test/libcxx
Apr 23 2018, 11:02 AM

Apr 4 2018

mclow.lists added inline comments to D41148: [libcxx] implement <experimental/simd> declarations based on P0214R7..
Apr 4 2018, 3:54 PM
mclow.lists added a comment to D41148: [libcxx] implement <experimental/simd> declarations based on P0214R7..

When you add a new header file to libc++, you have to update two additional files:

Apr 4 2018, 2:19 PM

Apr 2 2018

mclow.lists added a comment to D41316: [libcxx] Allow random_device to be built optionally.

[rand.device]/2 seems to be the authoritative word here:

If implementation limitations prevent generating nondeterministic random numbers, the implementation may employ a random number engine.
Apr 2 2018, 2:53 PM
mclow.lists added a comment to D45163: [Sema] -Wunused-value: diagnose unused std::move() call results..

So.
https://bugs.llvm.org/show_bug.cgi?id=10011 was resolved by https://wg21.link/P0600 (which added [[nodiscard]] to string.empty()

Apr 2 2018, 11:07 AM

Mar 27 2018

mclow.lists added a comment to D44945: Always have std::condition_variable wait on CLOCK_MONOTONIC on Android.

My first response (based on looking at the patch, and doing a bit of research) is:

  • This is needed
  • I'm not sure this is quite the right approach.
Mar 27 2018, 1:22 PM

Mar 26 2018

mclow.lists requested changes to D44823: [libcxx] Improving std::vector<char> and std::deque<char> perfomance.

Please don't commit this.

Mar 26 2018, 9:59 AM

Mar 21 2018

mclow.lists added a comment to D41148: [libcxx] implement <experimental/simd> declarations based on P0214R7..

I'm going to stop here, because all the things I've noted are ticky-tack; formatting and minor changes.
More substantial comments coming soon.

Mar 21 2018, 3:51 PM
mclow.lists added a comment to D34331: func.wrap.func.con: Unset function before destroying anything.

A few small comments...

Mar 21 2018, 2:17 PM
mclow.lists added a comment to D41458: [libc++][C++17] Elementary string conversions for integral types.

Sorry I've let this lie fallow for so long.

Mar 21 2018, 12:05 PM

Mar 19 2018

mclow.lists added a comment to D40775: [libcxx] Add underscores to win32 locale headers..

We don't usually do this in source files, because they don't get included in people's builds - just the library build.

Mar 19 2018, 8:47 PM

Mar 8 2018

mclow.lists added a comment to D41976: Low-hanging fruit optimization in string::__move_assign()..
In D41976#1031674, @vsk wrote:

@mclow.lists is this still fine to commit? I can land it and watch the bots, if you'd like.

Mar 8 2018, 11:02 AM
mclow.lists created D44263: Implement LWG 2221 - No formatted output operator for nullptr.
Mar 8 2018, 10:34 AM

Mar 7 2018

mclow.lists updated the diff for D37994: Implement LWG2946: More ambiguity in `string` vs. `string_view`.

Added the proposed resolution for https://wg21.link/lwg3075 as well, and some deduction guide tests for string_view

Mar 7 2018, 2:04 PM

Mar 6 2018

mclow.lists closed D41958: Create a deduction guide for basic_string.

This was landed as r324619

Mar 6 2018, 8:10 AM

Mar 1 2018

mclow.lists updated the diff for D43773: Implement the container bits of P0805R1.

Add the tuple bits. Regularize the equality comparisons of the containers; i.e, don't try to be clever - let the compiler be clever.

Mar 1 2018, 12:08 PM

Feb 26 2018

mclow.lists added a comment to D43773: Implement the container bits of P0805R1.

I can certainly make them all the same.

Feb 26 2018, 5:22 PM
mclow.lists added a comment to D43773: Implement the container bits of P0805R1.

Is there a subtle reason for this inconsistency that I'm not seeing?

Feb 26 2018, 5:22 PM
mclow.lists updated the diff for D43773: Implement the container bits of P0805R1.

forgot to include the changes for <forward_list> in the diff.

Feb 26 2018, 11:50 AM
mclow.lists created D43773: Implement the container bits of P0805R1.
Feb 26 2018, 11:43 AM

Feb 24 2018

mclow.lists accepted D43273: [libcxx] [test] Fix MSVC warnings and errors..

LGTM - thanks!

Feb 24 2018, 8:18 AM

Feb 21 2018

mclow.lists added inline comments to D43579: [libcxx] Do not include the C math.h header before __config.
Feb 21 2018, 3:25 PM
mclow.lists accepted D43579: [libcxx] Do not include the C math.h header before __config.

This LGTM.

Feb 21 2018, 8:39 AM

Feb 19 2018

mclow.lists added inline comments to D43273: [libcxx] [test] Fix MSVC warnings and errors..
Feb 19 2018, 7:41 PM

Feb 17 2018

mclow.lists accepted D41629: [libcxx] Improve accuracy of complex asinh and acosh.

LGTM. Do you need me to commit this?

Feb 17 2018, 6:06 PM

Feb 15 2018

mclow.lists added a comment to D43273: [libcxx] [test] Fix MSVC warnings and errors..

The <cassert> bit is fine.
The veryLarge is "ok".
The rest of them are just bogus.

Feb 15 2018, 9:50 AM
mclow.lists added a comment to D43226: __threading_support: Remove (void) in favor of ()..

Which clang-tidy module generates this warning, and what is the actual warning?

Feb 15 2018, 9:43 AM

Feb 14 2018

mclow.lists added a comment to rL323490: libcxx: Move #include_next <math.h> out of header guard in wrapper header..

If we *have* to do this (and we still need to have that discussion), I think something like this would be better

Feb 14 2018, 2:00 PM
mclow.lists added a comment to D42403: libcxx: Move #include_next <math.h> out of header guard in wrapper header..

A couple of points to consider here:

  • "Windows users expect" is not a compelling argument.
  • If done, this behavior should be windows-specific.
  • You should include <__config> before anything else.
Feb 14 2018, 12:01 PM
mclow.lists added a comment to D43277: limits: Use `false` instead of `type(0)`..

I see no benefit to this change. bool(0) is false.

Feb 14 2018, 11:48 AM

Feb 13 2018

mclow.lists accepted D43167: Fix incorrect indentation..

This is fine.

Feb 13 2018, 6:12 AM

Feb 7 2018

mclow.lists requested changes to D26596: [RFC] Add _LIBCPP_NO_DISCARD and apply it to `Container::empty()`, `unique_ptr<T>::release()`, and `Lockable::try_lock()` .

Since we've implemented P0600, I believe that this patch is out of date.
The correct macro is _LIBCPP_NODISCARD_AFTER_CXX17, and I think that several of these cases are now handled.

Feb 7 2018, 3:43 PM
mclow.lists accepted D41992: [libcxx] Avoid spurious construction of valarray elements.

This LGTM.

Feb 7 2018, 10:07 AM
mclow.lists added a comment to D41629: [libcxx] Improve accuracy of complex asinh and acosh.

This all looks good to me.
I think that one more test should be added - and that's one that tests __sqr directly.
Since that's not a public routine, the test should go in "test/libcxx/numerics/complex.number"

Feb 7 2018, 9:56 AM

Feb 6 2018

mclow.lists added a comment to D42987: [libc++abi] fix compilation in C++17 mode.

I'm fine with this, though I wonder if using the more specific _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS might be a better thing to define.

Feb 6 2018, 9:42 PM
mclow.lists closed D42945: [libc++] Fix misleading indentation..
Feb 6 2018, 11:02 AM
mclow.lists accepted D42945: [libc++] Fix misleading indentation..

Committed as revision 324378

Feb 6 2018, 11:02 AM
mclow.lists added a comment to D42945: [libc++] Fix misleading indentation..

The second change is not quite right. There's a couple of lines that need indentation changes.
Phab is not really good about changes like this. "This file was changed only by adding or removing whitespace"

Feb 6 2018, 10:37 AM

Jan 30 2018

mclow.lists added a comment to D42693: [libcxx] Handle invalid escaped characters in POSIX regex.

I like this. One nit and a question.

Jan 30 2018, 11:15 AM
mclow.lists accepted D40259: [libcxx] LWG2993: reference_wrapper<T> conversion from T&&.

Please be sure to update www/cxx2a_status.html to mark 2993 as "Complete".
Other than that, looks good to me! Thanks!

Jan 30 2018, 6:45 AM

Jan 25 2018

mclow.lists accepted D42518: Fix the BinaryPredicate form of std::is_permutation to not rely on operator==.

Looks good to me. Thanks!

Jan 25 2018, 9:19 PM
mclow.lists added a comment to D42354: Fix libcxx MSVC C++17 redefinition of 'align_val_t'.

I'm pretty sure I don't want to know what MSFT is doing putting align_val_t in *that* header file.

Jan 25 2018, 6:58 PM
mclow.lists accepted D42518: Fix the BinaryPredicate form of std::is_permutation to not rely on operator==.

This LGTM. Sorry for the breakage.
Clearly we need a test with a non op== BinaryPredicate

Jan 25 2018, 6:11 AM
mclow.lists added inline comments to D42518: Fix the BinaryPredicate form of std::is_permutation to not rely on operator==.
Jan 25 2018, 6:11 AM
mclow.lists added inline comments to D42518: Fix the BinaryPredicate form of std::is_permutation to not rely on operator==.
Jan 25 2018, 6:08 AM

Jan 23 2018

mclow.lists closed D35472: Implement P0463R1: "Endian just Endian".

Committed as revision 323296

Jan 23 2018, 5:55 PM
mclow.lists added inline comments to D42357: Under limitation of allocated buffer, inplace_merge() does NOT take usage of partial allocated buffer but applies native rotate directly..
Jan 23 2018, 10:43 AM
mclow.lists accepted D42405: libcxx: Rename vasprintf function to __libcpp_vasprintf..

This looks fine to me.

Jan 23 2018, 10:23 AM
mclow.lists updated the diff for D42242: Make libc++abi work with gcc's ARM unwind library.

Find *all* the places that we are using exception_class and wrap them in helper routines.

Jan 23 2018, 10:08 AM

Jan 22 2018

mclow.lists updated the diff for D35472: Implement P0463R1: "Endian just Endian".

Update macro checks.

Jan 22 2018, 5:39 PM
mclow.lists added inline comments to D42357: Under limitation of allocated buffer, inplace_merge() does NOT take usage of partial allocated buffer but applies native rotate directly..
Jan 22 2018, 9:39 AM

Jan 21 2018

mclow.lists added a comment to D41976: Low-hanging fruit optimization in string::__move_assign()..

Since __clear_and_shrink() is private

Jan 21 2018, 11:13 AM
mclow.lists added a comment to D41976: Low-hanging fruit optimization in string::__move_assign()..

I don't have commit access myself so I've added the test to the diff.

Jan 21 2018, 10:09 AM
mclow.lists added a comment to D42344: [libc++] Use multi-key tree search for {map, set}::{count, equal_range}.
In D42344#983265, @ng wrote:

Shouldn't there be tests for multimap and multiset, too?

Sure; will the same tests as for map/set be alright?

Jan 21 2018, 9:27 AM
mclow.lists added a comment to D42344: [libc++] Use multi-key tree search for {map, set}::{count, equal_range}.
Jan 21 2018, 9:21 AM
mclow.lists added a comment to D42344: [libc++] Use multi-key tree search for {map, set}::{count, equal_range}.

Sometimes you get lucky ;-)
I have a task for next week that says "The transparent lookup stuff in the associative containers needs tests", and here is this patch.

Jan 21 2018, 9:18 AM

Jan 19 2018

mclow.lists accepted D42291: [libcxx] Correctly handle invalid regex character class names.

This looks fine to me. Thanks!

Jan 19 2018, 12:37 PM
mclow.lists added a comment to D42225: libcxx: Provide overloads for basic_filebuf::open() et al that take wchar_t* filenames on Windows..

Can we avoid the _WIN32 usage please? We spent some effort to avoid it, and have _LIBCPP_WIN32API to indicate that we want the Win32 API. I know that Marshall had some strong opinions on avoiding the _WIN32 usage, but, beyond that, I think that this is a completely reasonable thing to provide.

Jan 19 2018, 12:16 PM
mclow.lists accepted D41976: Low-hanging fruit optimization in string::__move_assign()..

This looks good to me.
Please add a test in test/libcxx/strings/string.modifiers and commit.

Jan 19 2018, 12:09 PM

Jan 18 2018

mclow.lists created D42242: Make libc++abi work with gcc's ARM unwind library.
Jan 18 2018, 7:13 AM

Jan 17 2018

mclow.lists added a comment to D42220: libcxx: Use vcruntime declarations for typeinfo on Windows..

I'd like to call attention to http://libcxxabi.llvm.org, specifically the FAQ entry: Why are the destructors for the standard exception classes defined in libc++abi? They're just empty, can't they be defined inline?

Jan 17 2018, 5:46 PM
mclow.lists accepted D42146: libcxx: Disable CFI in function std::get_temporary_buffer..

I think that there needs to be more docs on the CFI checking; https://clang.llvm.org/docs/ControlFlowIntegrity.html is about using it, not about the design, goals, and implementation.

Jan 17 2018, 11:04 AM

Jan 16 2018

mclow.lists added a comment to D41976: Low-hanging fruit optimization in string::__move_assign()..

I'm a bit leery of this patch. Not because of what it's trying to do, but rather, the introduction of a method __clear_and_shrink that leaves the string in an invalid state. For all the uses that you put it to, I don't think that's a problem (though I'm still working through the failure possibilities), but I can see other people attempting to use this method - and not realizing that you have to "put the string back together" afterwards.

Jan 16 2018, 6:51 AM

Jan 13 2018

mclow.lists added a comment to D41976: Low-hanging fruit optimization in string::__move_assign()..

Can you share your benchmark results, please?

Jan 13 2018, 8:01 AM

Jan 11 2018

mclow.lists created D41958: Create a deduction guide for basic_string.
Jan 11 2018, 11:40 AM
mclow.lists closed D28217: [libc++] Overallocation of am_pm array in locale.cpp.

Committed as r322295

Jan 11 2018, 9:18 AM
mclow.lists accepted D41830: [libc++] Fix PR#35780 - make std::experimental::filesystem::remove and remove_all return false or 0 if the file doesn't exist.

Do you need me to commit this?

Jan 11 2018, 8:38 AM
mclow.lists added inline comments to D41830: [libc++] Fix PR#35780 - make std::experimental::filesystem::remove and remove_all return false or 0 if the file doesn't exist.
Jan 11 2018, 7:28 AM
mclow.lists accepted D40677: [libcxx] Make std::basic_istream::get 0-terminate input array in case of error..

Please make the formatting match the rest of the file.

Jan 11 2018, 7:22 AM
mclow.lists added a comment to D40677: [libcxx] Make std::basic_istream::get 0-terminate input array in case of error..

A couple of nits, but other than that, looks fine.

Jan 11 2018, 6:53 AM

Jan 10 2018

mclow.lists added inline comments to D41830: [libc++] Fix PR#35780 - make std::experimental::filesystem::remove and remove_all return false or 0 if the file doesn't exist.
Jan 10 2018, 9:17 PM
mclow.lists added inline comments to D41830: [libc++] Fix PR#35780 - make std::experimental::filesystem::remove and remove_all return false or 0 if the file doesn't exist.
Jan 10 2018, 4:36 PM
mclow.lists added a comment to D41830: [libc++] Fix PR#35780 - make std::experimental::filesystem::remove and remove_all return false or 0 if the file doesn't exist.

I like the fact that you've removed the extra test that you've added.
However, I think that modifying the tests as you've done is more work than is needed.
I *suspect* that all you need to do is to move a couple of test cases from the "calls which should fail" to the "calls that should succeed" list (and adjust for the fact that the calls return false even though they succeed)

Jan 10 2018, 4:05 PM
mclow.lists accepted D41892: libcxx: Stop providing a definition of __GLIBC_PREREQ..

LGTM

Jan 10 2018, 6:53 AM