# Projects

User does not belong to any projects.

# User Details

User Since
Jul 16 2012, 3:06 PM (352 w, 4 d)

# Yesterday

mclow.lists added inline comments to D56500: [libcxx] Fix order checking in unordered_multiset tests..
mclow.lists added inline comments to D56500: [libcxx] Fix order checking in unordered_multiset tests..

# Wed, Apr 17

I have no problem with this.

Wed, Apr 17, 2:52 PM · Restricted Project

# Tue, Apr 16

Add tests for stability to list::sort and forward_list::sort. Thanks to…
Fix list/forward_list implementations of remove_if and unique to deal with…
mclow.lists added a comment to D60743: Allow building without threads in standalone builds.

Why is this necessary? I just grepped the libc++abi sources, and I see no only two references to _LIBCPP_HAS_NO_THREADS, and they're both in comments (which should be fixed, btw, but that's neither here nor there).

Tue, Apr 16, 12:44 PM · Restricted Project
mclow.lists added a comment to D60717: [libc++] Remove old workaround for buildit.

This looks ok to me.

Tue, Apr 16, 12:43 PM · Restricted Project, Restricted Project

# Mon, Apr 15

mclow.lists added a comment to D60371: Add lerp function to cmath (P0811R3).

The paper suggests an implementation like this:

mclow.lists requested changes to D60371: Add lerp function to cmath (P0811R3).

This is too simplistic.

# Thu, Apr 4

mclow.lists added a comment to D58332: Erase-Like Algorithms Should Return size_type (P0646R1).

A meta-question:
Why does list<_Tp, _Alloc>::remove(const value_type& __x) gather all the deleted nodes into a separate list, while
list<_Tp, _Alloc>::remove_if(_Pred __pred) and list<_Tp, _Alloc>::unique() just delete them as they go?

they're all the same operation under the hood.
[ I know you didn't create this difference. ]

mclow.lists added a comment to D58332: Erase-Like Algorithms Should Return size_type (P0646R1).

A meta-question:
Why does list<_Tp, _Alloc>::remove(const value_type& __x) gather all the deleted nodes into a separate list, while
list<_Tp, _Alloc>::remove_if(_Pred __pred) and list<_Tp, _Alloc>::unique() just delete them as they go?

mclow.lists added a comment to D58332: Erase-Like Algorithms Should Return size_type (P0646R1).

Ok, so your update and my comments passed in flight. I'll try again :-)

mclow.lists added inline comments to D58332: Erase-Like Algorithms Should Return size_type (P0646R1).

I think I'd like to see the actual error messages.

Thu, Apr 4, 6:35 AM · Restricted Project

# Wed, Apr 3

mclow.lists added a comment to D60246: [libc++] Simple contains for associative containers.

How does this compare to D59344 ?

Wed, Apr 3, 8:59 PM · Restricted Project

Thanks for doing all this. I'm not really ignoring these, it just seems like it. :-(

Wed, Apr 3, 4:44 PM · Restricted Project

I think we're way, way out on the bell curve here.
People who are building their own libc++ and statically linking it with libc++abi and using the sanitizers.
Those people (I believe) will be able to set a CMake flag.

Wed, Apr 3, 4:38 PM · Restricted Project

Thanks for debugging that. I didn't realize it didn't try to inline on purpose.
Maybe we just need to mark the function as inline, even if we also have the extern template instantiation.

Wed, Apr 3, 11:17 AM · Restricted Project

I'm a bit worried about nodiscard_extensions.pass.cpp, because lit by default does not show warnings; just "N warnings in tests" in the summary.

(That would apply to the previous version of the test too, right?)

lit prints this for me (note -Werror):

[snip]

I'm a bit worried about nodiscard_extensions.pass.cpp, because lit by default does not show warnings; just "N warnings in tests" in the summary.

# Tue, Apr 2

mclow.lists requested changes to D58332: Erase-Like Algorithms Should Return size_type (P0646R1).

You're going to have to find a different approach here.
Traversing the list to see how the size has changed is not acceptable.

mclow.lists committed rG0583d9ea8d5e: Fix backwards test that I committed yesterday. Sigh (authored by mclow.lists).
Fix backwards test that I committed yesterday. Sigh

The test is obviously incomplete.

Obviously.

I'm OK with this. I think, strictly speaking, that libc++ is following the standard, and everyone else is not - but what everyone else is doing makes sense.

Tue, Apr 2, 1:30 PM · Restricted Project, Restricted Project
mclow.lists added inline comments to D60097: Fix implementation of ::abs and std::abs LWG 2192..
Special case some duration arithmetic for GCC and PPC because their long double…
Fix typo that I introduced in r357413. Thanks to ensadc@mailnesia.com for the…
mclow.lists added inline comments to D59839: Open fstream files in O_CLOEXEC mode when possible..
Tue, Apr 2, 6:41 AM · Restricted Project

# Mon, Apr 1

mclow.lists added a comment to D60105: Fix vector<bool>::const_reference to be 'bool'..

See https://stackoverflow.com/questions/31974237/why-is-libcs-vectorboolconst-reference-not-bool/31974238#31974238 for Howard's explanation of vector<bool>::const_reference

Other than those nits, this looks fine to me.

mclow.lists added a comment to D60097: Fix implementation of ::abs and std::abs LWG 2192..

I like the tests. Still looking at the code.

Do we have to worry about other pointer types than id?

Mon, Apr 1, 12:07 PM · Restricted Project
Fix PR#41323 'Race condition in steady_clock::now for _LIBCPP_WIN32API'. thanks…

I committed the tests and an alternate fix in r357410

Mon, Apr 1, 9:45 AM · Restricted Project
Fix PR41130 - 'operator/ of std::chrono::duration and custom type'. Thanks to…

I'm less enthusiastic about this change than the one for PR39871, because there we were being inconsistent with ourselves.
However, my lack of enthusiasm is no reason not to land this.

Mon, Apr 1, 9:30 AM · Restricted Project
mclow.lists added a comment to D60069: Declare std::tuple_element as struct instead of class.

Right, there shouldn't be any inheritance. Some of the public: access specifications are now redundant, though.

Mon, Apr 1, 9:16 AM · Restricted Project
mclow.lists added a comment to D60069: Declare std::tuple_element as struct instead of class.

Did you check the places that inherit from tuple_element? The public/private bits change between class and struct.

Mon, Apr 1, 8:56 AM · Restricted Project
mclow.lists added a comment to D60069: Declare std::tuple_element as struct instead of class.

Did you check the places that inherit from tuple_element? The public/private bits change between class and struct.

Mon, Apr 1, 8:50 AM · Restricted Project

# Sat, Mar 30

mclow.lists requested changes to D60027: Add shift functions (P0769).

I don't think that this is right. All advance does is update an iterator. No data is being moved here.

I think we're going to get this from the work that @ldionne and Thomas Rodgers are doing on the pstl project. You should check with them.

mclow.lists added inline comments to D59099: Integer and pointer types of 'midpoint' from P0811.

# Fri, Mar 29

Landed as r356162

So, Roman and I did some playing around with compiler explorer, and we discovered that if you define _LIBCPP_DISABLE_EXTERN_TEMPLATE so that you're not using the string code that's in the dylib, then you get the benefits of this patch w/o any code changes.

Fri, Mar 29, 1:17 PM · Restricted Project

I don't know about how much this will improve performance (there should be, as Roman says, before/after IR to verify this), but I'm satisfied with the correctness of this patch.

Fri, Mar 29, 12:40 PM · Restricted Project

# Wed, Mar 27

Reworked all the utilities/meta tests to use ASSERT_SAME_TYPE instead of…

And it is part of C++20, so it's not final anyway.

Wed, Mar 27, 5:18 PM · Restricted Project
mclow.lists added a comment to D59659: Direction for a fix of PR 41130.

We should just fix common type in C++03.

Did you commit your fix to common_type? I think this would indeed solve this whole issue, right? If so, we should only commit the tests added by this patch.

Does this make sense @mclow.lists ?

Wed, Mar 27, 2:14 PM · Restricted Project

# Tue, Mar 26

mclow.lists added a comment to D59839: Open fstream files in O_CLOEXEC mode when possible..

I'm mostly worried about the change in behavior breaking existing programs.

Tue, Mar 26, 7:18 PM · Restricted Project
mclow.lists added inline comments to D59572: Fix and speedup __libcpp_locale_guard on Windows.
mclow.lists added inline comments to D59572: Fix and speedup __libcpp_locale_guard on Windows.
mclow.lists added a comment to D59839: Open fstream files in O_CLOEXEC mode when possible..

How did you decide which modes fell into "when possible"?

Tue, Mar 26, 2:53 PM · Restricted Project
mclow.lists added inline comments to D59178: [libc++] Speedup to_string and to_wstring for integers using stack buffer and SSO.
Tue, Mar 26, 10:22 AM · Restricted Project

Hi, Marshall.

I've started implementing and testing to_string via to_chars and realized that to_chars doesn't support wchar_t unlike to_wstring.
I'm going to extend __to_chars_itoa implementation in order to support wchar_t and reuse those internal template function.

Could you please confirm that this way is ok in order not to through away the third attempt on completion.

Tue, Mar 26, 9:34 AM · Restricted Project

# Mon, Mar 25

This is good by me (but you should address Marshall's comment about the tests). Cool trick with the macro for variadic templates.

Mon, Mar 25, 10:42 AM · Restricted Project
Cleaup of requirements for optional. While researching LWG3196, I realized that…

# Fri, Mar 22

Fix a minor bug with std::next and prev not and negative numbers. In particular…

# Thu, Mar 21

Thu, Mar 21, 8:21 PM · Restricted Project
Thu, Mar 21, 6:24 PM · Restricted Project
mclow.lists added a comment to D59678: Make common_type's implementation common .

Very impressive. Still looking.

Thu, Mar 21, 5:58 PM · Restricted Project
Fix a vector test to not use a local type as a template parameter. This causes…
Thu, Mar 21, 11:35 AM · Restricted Project

# Mar 20 2019

Mark <charconv> tests as unsupported for C++11 and C++14 if you're not testing…

Now that revision 356585 has landed, we can use std::to_chars to implement to_string

Mar 20 2019, 11:20 AM · Restricted Project
Make to_chars/from_chars work back to C++11. This means that we can use them to…
mclow.lists added a comment to D59598: Make the <charconv> header usable with C++11.

This is one acceptable reason to backport functionality to C++03 IMO. I'd rather have it be implementation details using reserved names, but this would add a lot of complexity.

In general, I'm not happy with this direction.
I think it is unwise to have two different implementations of "integer to string" functionality in the library, doing the same thing.
I'm happy with the idea of making to_string faster, but not this way.

Mar 20 2019, 6:57 AM · Restricted Project

# Mar 19 2019

mclow.lists added a comment to D59525: Speed up certain locale functions on Windows.

I'm happy to not accept diffs in libc++ directly anymore and instead comment something like "LGTM, but wait for one of @mclow.lists, @EricWF, or @ldionne to review as well", but that seems like a pretty heavy handed policy for changes like this. I'm also curious if you have any specific issues with this diff, or if it's just a general principle.

Mar 19 2019, 3:10 PM · Restricted Project
mclow.lists added a comment to D59525: Speed up certain locale functions on Windows.

Thomas - reviews for libc++ must be approved by either @EricWF, @ldionne or myself. None of them approved this.

Mar 19 2019, 1:37 PM · Restricted Project

# Mar 18 2019

Mark 'front()' and 'back()' as noexcept for array/deque/string/string_view.
Herald added a project to D40181: [libcxx] Allow to set locale on Windows.: Restricted Project.

I have a bug report - https://bugs.llvm.org/show_bug.cgi?id=41131 - that says that we can reduce the number of calls in __libcpp_locale_guard from 10 to 2 by calling:

Mar 18 2019, 5:02 PM · Restricted Project

# Mar 15 2019

mclow.lists committed rG2fa901c4716f: Update a deque test with more assertions. NFC (authored by mclow.lists).
Update a deque test with more assertions. NFC

# Mar 14 2019

Mark vector::operator[] and front/back as noexcept. We already do this for…
mclow.lists requested changes to D59166: Remove exception throwing debug mode handler support..

I have marked test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp and libcxx/containers/sequences/array/array.zero/db_indexing.pass.cpp because I marked operator[] and front and back as noexcept.

XFAIL this debug-mode test that I just broke. Eric has a patch out for review…
Add noexcept to operator[] for array and deque. This is an extension. We…
Reorg the midpoint pointer test into runtime and constexpr tests; comment out…
Fix two of the three bot failures for midpoint; the ones regarding the lack of…
Add std::midpoint for integral and poiner types. Described in P0811, reviewed…

# Mar 13 2019

mclow.lists added a comment to D59344: Add contains method to map types.

We don't usually gang tests for multiple containers together - one/container is more common,

# Mar 12 2019

Now that we have to_chars, can we use those facilities for to_string? (rather than duplicate them?)

Mar 12 2019, 4:17 PM · Restricted Project
mclow.lists added inline comments to D59178: [libc++] Speedup to_string and to_wstring for integers using stack buffer and SSO.
Mar 12 2019, 3:46 PM · Restricted Project

Now that we have to_chars, can we use those facilities for to_string? (rather than duplicate them?)
[ Ok, we don't have \to_chars for FP yet ]

Mar 12 2019, 3:42 PM · Restricted Project
mclow.lists updated the diff for D59099: Integer and pointer types of 'midpoint' from P0811.

Remove all the explicit template lists from the tests.
Add a couple more failing pointer tests.

mclow.lists added inline comments to D59099: Integer and pointer types of 'midpoint' from P0811.

Go for it. I'm curious to see how it works out :-)

Mar 12 2019, 11:11 AM · Restricted Project
mclow.lists added a comment to D58679: Update operator+ for basic_string (P1165R1).

How do the tests look? Do they need updating to ensure that we have the (new) correct behavior?

I see no tests here.

Mar 12 2019, 7:48 AM · Restricted Project, Restricted Project, Restricted Project

# Mar 11 2019

I'm fine with this.

Mar 11 2019, 8:15 AM · Restricted Project

# Mar 8 2019

So basically the contents of the file were deleted but the file itself wasn't removed

Mar 8 2019, 2:36 PM · Restricted Project

It was added as part of https://reviews.llvm.org/D17416, and that is all it's ever been.

Mar 8 2019, 9:23 AM · Restricted Project

# Mar 7 2019

mclow.lists added inline comments to D59093: [libc++] Mark <filesystem> as unavailable on Apple platforms.

I don't like how intrusive and pervasive this is.

# Mar 6 2019

mclow.lists added inline comments to D59063: Unbork std::memory_order ABI..
mclow.lists added a comment to D58987: Make underlying_type SFINAE-friendly.

You should probably have at least one (and probably several) simple tests that underlying_type<non enum type> is a valid type.

using Int = std::underlying_type<int>;
using Float = std::underlying_type<float>;`