Page MenuHomePhabricator

Quuxplusone (Arthur O'Dwyer)
Disabled

Projects

User does not belong to any projects.

User Details

User Since
Dec 27 2014, 8:52 PM (391 w, 5 d)
Roles
Disabled

Recent Activity

Mar 11 2022

Quuxplusone added inline comments to D120180: [libc++][ranges] Implement changes to reverse_iterator from One Ranges Proposal..
Mar 11 2022, 8:17 AM · Restricted Project, Restricted Project

Mar 10 2022

Quuxplusone added a comment to D120951: [libc++] Prepare string tests for constexpr.

Doesn't this change make all of the tests with functions decorated with TEST_CONSTEXPR_AFTER_CXX20 undefined behavior, since it's undefined to have constexpr on a function that is never constexpr?

@EricWF How could this be undefined bahavior? All the tests are templated on the string, so it's possible to give them a constexpr string.

Mar 10 2022, 2:01 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D119589: [libc++][ranges] Implement ranges::min.
Mar 10 2022, 1:56 PM · Restricted Project, Restricted Project
Quuxplusone added a comment to D121110: [libc++] Add tests for the content of <cstddef>.

LGTM

Mar 10 2022, 1:49 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121231: [libc++] Remove raw call to debug handler from __char_traits_length_checked.
Mar 10 2022, 1:48 PM · Restricted Project, Restricted Project
Quuxplusone accepted D118400: [libc++] Remove operator-> from iterator archetypes that don't need it.

LGTM % the check lambda stuff (which I won't insist on, anyway). Thanks!

Mar 10 2022, 9:26 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121110: [libc++] Add tests for the content of <cstddef>.
Mar 10 2022, 8:46 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121231: [libc++] Remove raw call to debug handler from __char_traits_length_checked.
Mar 10 2022, 8:37 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121231: [libc++] Remove raw call to debug handler from __char_traits_length_checked.
Mar 10 2022, 6:55 AM · Restricted Project, Restricted Project

Mar 9 2022

Quuxplusone requested changes to D116950: [libc++] Add the std::ranges::drop range adaptor object.
Mar 9 2022, 5:18 PM · Restricted Project, Restricted Project
Quuxplusone updated subscribers of D120637: [libc++][ranges] Implement ranges::minmax and ranges::minmax_element.
Mar 9 2022, 4:56 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121248: [libc++][ranges] Implement ranges::find{, _if, _if_not}.
Mar 9 2022, 3:38 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D119589: [libc++][ranges] Implement ranges::min.
Mar 9 2022, 3:31 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120684: [libc++] Define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER whenever we enable warnings in the test suite.
Mar 9 2022, 9:19 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121265: [libc++] [test] Add ranges_robust_against_copying_*.pass.cpp.
Mar 9 2022, 9:03 AM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D121265: [libc++] [test] Add ranges_robust_against_copying_*.pass.cpp.

Add libcpp-no-concepts. I'm surprised that there are platforms with libcpp-no-concepts yet without libcpp-has-no-incomplete-ranges! But OK.

Mar 9 2022, 9:01 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120637: [libc++][ranges] Implement ranges::minmax and ranges::minmax_element.
Mar 9 2022, 8:55 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121248: [libc++][ranges] Implement ranges::find{, _if, _if_not}.
Mar 9 2022, 8:43 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D119589: [libc++][ranges] Implement ranges::min.
Mar 9 2022, 8:11 AM · Restricted Project, Restricted Project
Quuxplusone added a comment to D121231: [libc++] Remove raw call to debug handler from __char_traits_length_checked.

Please don't change this. Google uses this hook to change the behavior of string_view internally. We're working to get rid of the patch, but this helper function was specifically put in place to allow for the patch.

Mar 9 2022, 6:36 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D118003: [libc++] Floyd's improvement to pop_heap.
Mar 9 2022, 6:28 AM · Restricted Project, Restricted Project
Quuxplusone added a comment to D121213: [libc++] Enable modernize-use-equals-delete.

@EricWF And in what scenario would that change the ABI? If there are no copy- or move-constructors, then all are deleted by definition, and if there is one it isn't trivial.

Mar 9 2022, 6:23 AM · Restricted Project, Restricted Project

Mar 8 2022

Quuxplusone added inline comments to D118003: [libc++] Floyd's improvement to pop_heap.
Mar 8 2022, 7:00 PM · Restricted Project, Restricted Project
Quuxplusone requested review of D121265: [libc++] [test] Add ranges_robust_against_copying_*.pass.cpp.
Mar 8 2022, 4:35 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121248: [libc++][ranges] Implement ranges::find{, _if, _if_not}.
Mar 8 2022, 4:03 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D117817: [libc++][ranges] Implement ranges::mismatch.
Mar 8 2022, 2:07 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120637: [libc++][ranges] Implement ranges::minmax and ranges::minmax_element.
Mar 8 2022, 1:43 PM · Restricted Project, Restricted Project
Quuxplusone requested changes to D120637: [libc++][ranges] Implement ranges::minmax and ranges::minmax_element.
Mar 8 2022, 1:42 PM · Restricted Project, Restricted Project
Quuxplusone updated subscribers of D121248: [libc++][ranges] Implement ranges::find{, _if, _if_not}.

Thanks, LGTM % comments. That was some quick turnaround time!

Mar 8 2022, 1:12 PM · Restricted Project, Restricted Project
Quuxplusone accepted D121244: [libc++] Don't manually override NDEBUG in the dylib build.

LGTM if CI is green. But do I understand correctly that this is still two orthogonal patches — one related to LIBCXX_ENABLE_ASSERTIONS, and one completely orthogonal to that in the benchmark code? Prefer to land in two separate git commits, just for hygiene.

Mar 8 2022, 12:45 PM · Restricted Project, Restricted Project
Quuxplusone accepted D120951: [libc++] Prepare string tests for constexpr.

LGTM%comments, and all the comments are pretty easy to deal with, I think.

Mar 8 2022, 12:42 PM · Restricted Project, Restricted Project
Quuxplusone updated subscribers of D121138: [libc++][format] Adds formatter<charT[N], charT>..
Mar 8 2022, 12:10 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121138: [libc++][format] Adds formatter<charT[N], charT>..
Mar 8 2022, 12:05 PM · Restricted Project, Restricted Project
Quuxplusone added a comment to D121241: [libc++] Enable format_to and vformat_to tests even outside of Debug mode.

it makes sense to run them even when the debug mode is disabled

Mar 8 2022, 11:59 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121213: [libc++] Enable modernize-use-equals-delete.
Mar 8 2022, 11:27 AM · Restricted Project, Restricted Project
Quuxplusone accepted D120996: [libc++] Remove extension to support allocator<const T>.
Mar 8 2022, 11:15 AM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D121154: [libc++] Add a test for std::ssize's SFINAE.

Try a .sh.cpp test. This might be ready for review, although I assume I'll have to UNSUPPORTED a few platforms depending on what CI says.

Mar 8 2022, 11:03 AM · Restricted Project, Restricted Project
Quuxplusone accepted D121231: [libc++] Remove raw call to debug handler from __char_traits_length_checked.

LGTM if CI is green!

Mar 8 2022, 10:42 AM · Restricted Project, Restricted Project
Quuxplusone updated subscribers of D107500: [libc++][ranges] Implement `lazy_split_view`..
Mar 8 2022, 10:29 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D97705: [libc++] Improve std::to_chars for base != 10..
Mar 8 2022, 9:50 AM · Restricted Project, Restricted Project
Quuxplusone accepted D121223: [libc++][NFC] Cleanups in <charconv>..

LGTM if CI is happy!

Mar 8 2022, 9:45 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121123: [libc++] Add a way to enable lightweight assertions independent of the debug mode.
Mar 8 2022, 8:20 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121216: [libc++] Enable modernize-loop-convert.
Mar 8 2022, 7:40 AM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D118003: [libc++] Floyd's improvement to pop_heap.

For now, skip asserting the number of comparisons in debug mode (attn @ldionne, this is relevant to your interests).
I think the GCC11 failure in https://buildkite.com/llvm-project/libcxx-ci/builds/9373 was a fluke, but let's see if it happens again.

Mar 8 2022, 7:20 AM · Restricted Project, Restricted Project

Mar 7 2022

Quuxplusone accepted D120180: [libc++][ranges] Implement changes to reverse_iterator from One Ranges Proposal..

I'm inclined to green-light this at this point. I haven't given it the fine-tooth-comb treatment this time, but it's been through enough rounds of review and I assume nothing that we covered earlier has regressed lately. However:

  • CI is red for apparently multiple reasons; please make sure it becomes green.
  • I'd like a second libc++ reviewer to take a look too.

Happy to take another look if anything major comes up in the second person's review.

Mar 7 2022, 9:04 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D118003: [libc++] Floyd's improvement to pop_heap.

Argh. Unsupport the new complexity test on C++11 because it lacks 1'000'000 literals, and I think the 's are nice enough that I don't feel like losing them. It seems unimaginable that C++03/11 would have different complexity characteristics from C++14/17/20/2b (and if they did, really, I'm not sure we'd care).

Mar 7 2022, 8:20 PM · Restricted Project, Restricted Project
Quuxplusone accepted D121003: [libcxx] [test] Fix the locale ctype widen tests on Windows.

Sure, LGTM in principle. Please make sure you get a green CI run (or two!) before actually landing this, though. As you say above, that might take a while.

Mar 7 2022, 2:17 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120802: [libcxx] [test] Fix the classic_table test on Windows.
Mar 7 2022, 2:15 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D118003: [libc++] Floyd's improvement to pop_heap.

Oops, also add a release note. @ldionne LGTY?

Mar 7 2022, 2:08 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D118003: [libc++] Floyd's improvement to pop_heap.

Add complexity.pass.cpp for sort_heap and also for make_heap, since I've got those numbers already.
I thought of trying to make the assertions "fuzzy," but couldn't see a mathematically justifiable way of doing that, and besides, these numbers should never change unless they're deliberately being changed by someone who cares about these numbers! (As in this PR.)

Mar 7 2022, 2:04 PM · Restricted Project, Restricted Project
Quuxplusone requested review of D121154: [libc++] Add a test for std::ssize's SFINAE.
Mar 7 2022, 1:05 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121123: [libc++] Add a way to enable lightweight assertions independent of the debug mode.
Mar 7 2022, 12:43 PM · Restricted Project, Restricted Project
Quuxplusone requested changes to D121138: [libc++][format] Adds formatter<charT[N], charT>..
Mar 7 2022, 12:30 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121130: [libc++] Make common_iterator's proxy types into aggregates.
Mar 7 2022, 10:46 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121129: [libc++] Remove workarounds for re-defining _LIBCPP_ASSERT in the test suite.
Mar 7 2022, 10:41 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D114382: [clang] Fix wrong -Wunused-local-typedef warning within a template function.
Mar 7 2022, 10:36 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D119589: [libc++][ranges] Implement ranges::min.
Mar 7 2022, 10:32 AM · Restricted Project, Restricted Project
Quuxplusone added a comment to D121123: [libc++] Add a way to enable lightweight assertions independent of the debug mode.

I have no particular opinion on whether this is a good direction that will eventually lead somewhere useful, or just a random walk. No particular objection, either.

Mar 7 2022, 10:24 AM · Restricted Project, Restricted Project
Quuxplusone updated the summary of D118003: [libc++] Floyd's improvement to pop_heap.
Mar 7 2022, 10:04 AM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D118003: [libc++] Floyd's improvement to pop_heap.

s/typedef/using/
s/_VSTD/std/
I claim this is ready to land. @ldionne?

Mar 7 2022, 10:03 AM · Restricted Project, Restricted Project
Herald added a project to D118003: [libc++] Floyd's improvement to pop_heap: Restricted Project.
Mar 7 2022, 10:01 AM · Restricted Project, Restricted Project
Quuxplusone abandoned D104172: [libc++] Remove some obsolete _LIBCPP_CXX03_LANG.
Mar 7 2022, 9:04 AM · Restricted Project, Restricted Project
Quuxplusone requested review of D121130: [libc++] Make common_iterator's proxy types into aggregates.
Mar 7 2022, 8:48 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120996: [libc++] Remove extension to support allocator<const T>.
Mar 7 2022, 7:58 AM · Restricted Project, Restricted Project
Quuxplusone requested changes to D121110: [libc++] Add tests for the content of <cstddef>.
Mar 7 2022, 7:50 AM · Restricted Project, Restricted Project
Quuxplusone accepted D121054: [libc++] Remove <utility> includes.

LGTM now FWIW.

Mar 7 2022, 7:38 AM · Restricted Project, Restricted Project

Mar 6 2022

Quuxplusone accepted D120633: [libc++] Better handling for zero-sized types.
Mar 6 2022, 8:54 PM · Restricted Project, Restricted Project
Quuxplusone requested changes to D121074: [libc++] Implement std::boyer_moore{, _horspool}_searcher.

Thanks for working on this! This will be super useful — not really to working programmers ;) but in terms of checking boxes for C++17 conformance and finally getting to remove the experimental versions!

Mar 6 2022, 11:50 AM · Restricted Project, Restricted Project
Quuxplusone updated subscribers of D120802: [libcxx] [test] Fix the classic_table test on Windows.
Mar 6 2022, 7:59 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120684: [libc++] Define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER whenever we enable warnings in the test suite.
Mar 6 2022, 7:25 AM · Restricted Project, Restricted Project
Quuxplusone accepted D117523: [libc++][ranges] Implement ranges::max_element.

LGTM % comments, and the only significant comment affects the already-committed test for ranges::min_element. I think this is good to go, to get min and max back into parity; but then after that, they should both get some improved tests.

Mar 6 2022, 7:06 AM · Restricted Project, Restricted Project
Quuxplusone requested changes to D119585: [libc++] Remove experimental/algorithm.

This is related to D119198: std::experimental::search works hand-in-hand with std::experimental::boyer_moore_searcher and company. We can't remove std::experimental::boyer_moore_searcher because we have not yet implemented C++17 std::boyer_moore_searcher
https://en.cppreference.com/w/cpp/utility/functional/boyer_moore_searcher
In this PR, @philnik observes that we could remove std::experimental::search, and just tell people to use std::experimental::boyer_moore_searcher with std::search instead.
In D119198, @jloser observed that we could remove std::experimental::default_searcher, and just tell people to use std::default_searcher with std::experimental::search instead.
But we can't remove all of the experimental searcher stuff in one fell swoop yet, because we haven't implemented the C++17 equivalents.

Mar 6 2022, 6:52 AM · Restricted Project, Restricted Project, Restricted Project

Mar 5 2022

Quuxplusone accepted D120996: [libc++] Remove extension to support allocator<const T>.

This is the sort of thing to alert libc++-vendors about, right?

Mar 5 2022, 6:43 PM · Restricted Project, Restricted Project
Quuxplusone accepted D120802: [libcxx] [test] Fix the classic_table test on Windows.

LGTM%comment, but I'll ask for a second approver too.

Mar 5 2022, 6:38 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120634: [Libcxx] Add <source_location> header..
Mar 5 2022, 5:37 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D114786: [libc++] Remove the ability to use the std::nullptr_t emulation in C++03 mode.
Mar 5 2022, 5:29 PM · Restricted Project, Restricted Project
Quuxplusone abandoned D100730: [libc++] Simplify debug iterators, and fix a couple of non-explicit constructors..

Abandoning: The explicit ctors landed in D119894 and D120937; I don't care enough about the _LIBCPP_DEBUG_LEVEL == 2 changes to keep the rest of this open.

Mar 5 2022, 7:14 AM · Restricted Project, Restricted Project

Mar 4 2022

Quuxplusone updated the diff for D120135: [libc++] Overhaul std::quoted; fix its relationship to character traits..

Undo a few diffs I'm not married to.

Mar 4 2022, 8:20 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D120135: [libc++] Overhaul std::quoted; fix its relationship to character traits..

Push a lot of the non-functional diffs (and the ADL-proofing) to main in small separate commits, and then rebase.

Mar 4 2022, 8:15 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120998: [libc++] Avoid using std::forward on things that aren't forwarding references. NFCI..
Mar 4 2022, 2:53 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D117656: [libc++] [ranges] Implement move_sentinel and C++20 move_iterator.

Rebase, coalesce some repeated ifdefs, use unadorned constexpr in C++20-only codepaths

Mar 4 2022, 2:26 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D120417: [libc++] [ranges] Fix `decltype(auto) ranges::iter_move`.

Fix GCC buildkite warning by removing unused typedefs.

Mar 4 2022, 12:01 PM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D119778: [clang] Add a note "deducing return type for 'foo'".

Rebased after landing D119184. I'm no longer necessarily trying to land this note (it's not directly relevant to my interests anymore), but I'd like to show its CI as green before I abandon it. @rsmith would you like me to do something other than abandon this?

Mar 4 2022, 11:57 AM · Restricted Project, Restricted Project
Quuxplusone added a comment to D120417: [libc++] [ranges] Fix `decltype(auto) ranges::iter_move`.

https://reviews.llvm.org/harbormaster/unit/view/2832828/ — filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104792 for what I consider a bogus GCC warning, but will fix anyway.

Mar 4 2022, 11:08 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D121009: [libc++] Simplify how __format_spec::_Flags is packed on AIX.
Mar 4 2022, 10:23 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120802: [libcxx] [test] Fix the classic_table test on Windows.
Mar 4 2022, 8:34 AM · Restricted Project, Restricted Project
Quuxplusone added a reviewer for D120979: [libcxx] [test] Skip the get/put long_double_ru_RU tests on Glibc < 2.27: ldionne.
Mar 4 2022, 8:20 AM · Restricted Project, Restricted Project
Quuxplusone accepted D120796: [libcxx] Fix the ctype `is` (pointer version) function for Windows.

LGTM % nit: remove the word "proper", mainly for unnecessary-editorializing but also because I think the editorializing is wrong? Seems to me like the C locale "properly" shouldn't be using Unicode interpretations! :)

Mar 4 2022, 8:18 AM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120996: [libc++] Remove extension to support allocator<const T>.
Mar 4 2022, 8:13 AM · Restricted Project, Restricted Project
Quuxplusone updated the diff for D119184: [clang] [concepts] Check constrained-auto return types for void-returning functions.

Rebased, poke CI one last time.
If this is green, imma land it.

Mar 4 2022, 7:45 AM · Restricted Project, Restricted Project
Quuxplusone requested review of D120998: [libc++] Avoid using std::forward on things that aren't forwarding references. NFCI..
Mar 4 2022, 7:39 AM · Restricted Project, Restricted Project

Mar 3 2022

Quuxplusone requested changes to D119628: [libc++] Don't return alloc_size - 1 in __recommend to add 1 when allocating.
Mar 3 2022, 3:30 PM · Restricted Project, Restricted Project
Quuxplusone requested changes to D120684: [libc++] Define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER whenever we enable warnings in the test suite.
Mar 3 2022, 3:24 PM · Restricted Project, Restricted Project
Quuxplusone accepted D120889: [libcxx] [test] Fix the get/put long_double_zh_CN tests on Windows.

LGTM

Mar 3 2022, 3:15 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120925: [libc++] Enable more clang-tidy checks and list potential candidates.
Mar 3 2022, 1:56 PM · Restricted Project, Restricted Project
Quuxplusone requested review of D120937: [libc++] Mark __wrap_iter's private constructors as explicit.
Mar 3 2022, 12:47 PM · Restricted Project, Restricted Project
Quuxplusone added inline comments to D120921: [libc++][format] Adds a formattable concept..
Mar 3 2022, 10:57 AM · Restricted Project, Restricted Project
Quuxplusone accepted D120799: [libcxx] [test] Fix get_string_en_US, get_long_double_en_US for Windows.
Mar 3 2022, 10:27 AM · Restricted Project, Restricted Project
Quuxplusone added a comment to D120896: [libc++] Remove _LIBCXX_MODULES_BUILD and ext/ headers from header tests.

I'd want to avoid that, because after removing <experimental/algorithm> we could mechanically check for #include <algorithm> to make sure no one's going to include it directly again.

Mar 3 2022, 8:04 AM · Restricted Project, Restricted Project
Quuxplusone requested changes to D120889: [libcxx] [test] Fix the get/put long_double_zh_CN tests on Windows.
Mar 3 2022, 8:00 AM · Restricted Project, Restricted Project