Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

jwakely (Jonathan Wakely)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 23 2017, 3:27 PM (348 w, 5 d)

Recent Activity

Mon, Sep 18

jwakely added a comment to D150866: [sanitizers] Do not define __has_feature in sanitizer/common_interface_defs.h.

Moved to https://github.com/llvm/llvm-project/pull/66628

Mon, Sep 18, 3:37 AM · Restricted Project, Restricted Project

Jun 27 2023

jwakely added a comment to D151952: [clang] adds `__type_pack_index` so we can get a type's parameter pack index.

Since we're doing this, it may also be worth checking that T1s... are unique in T2s..., which I'd intended to be a separate feature.

Jun 27 2023, 5:57 AM · Restricted Project, Restricted Project

Jun 22 2023

jwakely added a comment to D150610: [libc++] Fix the behavior of throwing `operator new` under -fno-exceptions.

Update with new approach that detects whether operator new has been overridden or not. This is a WIP for comments only.

Jun 22 2023, 7:09 AM · Restricted Project, Restricted Project, Restricted Project

Jun 5 2023

jwakely added inline comments to D151629: [libc++][ranges] Implement P2494R2 (Relaxing range adaptors to allow for move only types).
Jun 5 2023, 1:43 PM · Restricted Project, Restricted Project, Restricted Project

May 26 2023

jwakely added a comment to D150896: [libc++] Apply _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION only in classes that we have instantiated externally.
  • or we drop the guarantee that users can do explicit instantiations on GCC (or if they do, then we don't guarantee ABI stability for them)
May 26 2023, 1:03 PM · Restricted Project, Restricted Project

May 18 2023

jwakely requested review of D150866: [sanitizers] Do not define __has_feature in sanitizer/common_interface_defs.h.
May 18 2023, 5:49 AM · Restricted Project, Restricted Project

May 16 2023

jwakely added a comment to D150610: [libc++] Fix the behavior of throwing `operator new` under -fno-exceptions.

Also, @jwakely I'd like to know how you feel about the fact that new(size_t, nothrow_t) aborts instead of returning nullptr when the shared library is built using -fno-exceptions. Is that a concious choice you made in libstdc++, and if so, what's the rationale?

May 16 2023, 2:34 AM · Restricted Project, Restricted Project, Restricted Project

May 8 2023

jwakely added a comment to D149868: [libc++][format][chrono] Fix incorrect subsecond part of `duration` in format string "%S".

(I think using microseconds does not give the proper resolution, but that's easier to validate with tests and the CI.)

May 8 2023, 7:19 AM · Restricted Project, Restricted Project

Feb 27 2023

jwakely added a comment to D135248: [libc++] implement move_iterator<T*> should be a random access iterator .

@jwakely Does libstdc++ implement P2520R0 in C++20 as a DR too?

Feb 27 2023, 10:56 AM · Restricted Project, Restricted Project, Restricted Project

Dec 12 2022

jwakely resigned from D135911: [N4917] Add freestanding C++ support for libc++ for support C++23 freestanding.

I already said I'm not interested in reviewing this, stop asking me to.

Dec 12 2022, 8:20 AM · Restricted Project

Nov 30 2022

jwakely added inline comments to D124516: [libc++] Implement `std::expected` P0323R12.
Nov 30 2022, 1:23 AM · Restricted Project, Restricted Project

Nov 23 2022

jwakely added inline comments to D124516: [libc++] Implement `std::expected` P0323R12.
Nov 23 2022, 11:17 AM · Restricted Project, Restricted Project

Nov 1 2022

jwakely added inline comments to D124516: [libc++] Implement `std::expected` P0323R12.
Nov 1 2022, 6:47 AM · Restricted Project, Restricted Project
jwakely added inline comments to D124516: [libc++] Implement `std::expected` P0323R12.
Nov 1 2022, 3:26 AM · Restricted Project, Restricted Project

Oct 17 2022

jwakely added inline comments to D135548: [libc++][LWG 2996] Implement c++20 shared_ptr rvalue overloads..
Oct 17 2022, 2:18 PM · Restricted Project, Restricted Project

Oct 13 2022

jwakely added a comment to D135911: [N4917] Add freestanding C++ support for libc++ for support C++23 freestanding.

I will ask libstdc++ dev Jonathan Wakely for helping reviewing this patch. Thank you

Oct 13 2022, 1:21 PM · Restricted Project
jwakely added a comment to D135911: [N4917] Add freestanding C++ support for libc++ for support C++23 freestanding.

What exactly is the problem you are trying to solve? libc++ is used in lots of embedded environments, just with parts that aren't possible to implement in that environment disabled.

To allow libcxx to build without libc and to satisfy ISO C++ standard.

Oct 13 2022, 1:20 PM · Restricted Project

Oct 6 2022

jwakely added inline comments to D135238: [clang] adds copy-constructible type-trait builtins.
Oct 6 2022, 2:52 PM · Restricted Project, Restricted Project

Sep 30 2022

jwakely added a comment to D134943: [libc++] Fix ADL for `make_error_{code,condition}`.

I've just noticed the summary says "The function names by the using declaration" which should be _named_ not names.

Sep 30 2022, 7:30 AM · Restricted Project, Restricted Project
jwakely added a comment to D134943: [libc++] Fix ADL for `make_error_{code,condition}`.

I assume this is okay with you.

Sep 30 2022, 7:28 AM · Restricted Project, Restricted Project
jwakely added inline comments to D131963: [libc++] Add custom clang-tidy checks.
Sep 30 2022, 4:55 AM · Restricted Project, Restricted Project, Restricted Project
jwakely added a comment to D130718: [compiler-rt] [builtins] Detect _Float16 support at compile time.

The problem that x86_64 builds fail by default on non-gcc compilers still stands.

Sep 30 2022, 3:24 AM · Restricted Project, Restricted Project
jwakely updated the summary of D134943: [libc++] Fix ADL for `make_error_{code,condition}`.
Sep 30 2022, 2:54 AM · Restricted Project, Restricted Project
jwakely updated the summary of D134943: [libc++] Fix ADL for `make_error_{code,condition}`.
Sep 30 2022, 2:54 AM · Restricted Project, Restricted Project
jwakely requested review of D134943: [libc++] Fix ADL for `make_error_{code,condition}`.
Sep 30 2022, 2:53 AM · Restricted Project, Restricted Project
jwakely added inline comments to D132796: [libc++][PMR] Implement pmr::memory_resource.
Sep 30 2022, 2:51 AM · Restricted Project, Restricted Project

Sep 29 2022

jwakely added a comment to D130631: [libc++] Implement P0288R9 (move_only_function).
  1. Survey other implementations and also other open source projects to see what approach they've taken.
Sep 29 2022, 11:19 AM · Restricted Project, Restricted Project

Sep 25 2022

jwakely added inline comments to D131963: [libc++] Add custom clang-tidy checks.
Sep 25 2022, 9:42 AM · Restricted Project, Restricted Project, Restricted Project

Jun 7 2022

jwakely added a comment to D127033: [libc++] Define ostream nullptr inserter for >= C++17 only.

I've done some digging. It looks like ostream support for nullptr_t was discussed in August 2011 (thread beginning at c++std-lib-30987) and the outcome was "not a defect, wait for a new standard". That supports my feeling that it never should have been handled as a library issue.

Jun 7 2022, 7:40 AM · Restricted Project, Restricted Project
jwakely added a comment to D127033: [libc++] Define ostream nullptr inserter for >= C++17 only.

Normally, we do apply LWG issues retroactively, so I wouldn't change this. @jwakely @STL_MSFT Any insight as to why your respective standard libraries guarded this with C++17?

Jun 7 2022, 7:30 AM · Restricted Project, Restricted Project

May 19 2022

jwakely added inline comments to D125634: [libc++] Use _LIBCPP_ASSERT by default for _PSTL_ASSERTions.
May 19 2022, 12:03 PM · Restricted Project, Restricted Project

May 18 2022

jwakely added a comment to D122570: [libcxx] [test] Include header for strverscmp.

I don't have commit access, could somebody push this on behalf of Jonathan Wakely <jwakely@redhat.com> please?

May 18 2022, 3:02 AM · Restricted Project, Restricted Project
jwakely added a comment to D122571: [libcxx] [test] Add missing header for std::numeric_limits.

I don't have commit access, could somebody push this on behalf of Jonathan Wakely <jwakely@redhat.com> please?

May 18 2022, 3:02 AM · Restricted Project, Restricted Project

Apr 16 2022

jwakely added a comment to D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.

Jonathan Wakely <jwakely@redhat.com>

Apr 16 2022, 4:16 PM · Restricted Project, Restricted Project

Apr 12 2022

jwakely added a comment to D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.

Yes please, I don't have commit access.

Apr 12 2022, 2:24 AM · Restricted Project, Restricted Project

Mar 28 2022

jwakely added inline comments to D122570: [libcxx] [test] Include header for strverscmp.
Mar 28 2022, 2:00 PM · Restricted Project, Restricted Project
jwakely updated the diff for D122570: [libcxx] [test] Include header for strverscmp.

Add comment to #include (with the right attachment t his time!)

Mar 28 2022, 1:59 PM · Restricted Project, Restricted Project
jwakely updated the diff for D122570: [libcxx] [test] Include header for strverscmp.

Add comment to #include

Mar 28 2022, 1:58 PM · Restricted Project, Restricted Project
jwakely updated the diff for D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.

Reverse conditions in test/std/re/re.const/re.synopt/syntax_option_type.pass.cpp as requested by Louis.

Mar 28 2022, 1:52 PM · Restricted Project, Restricted Project
jwakely updated the diff for D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.

Update to use LIBCPP_ASSERT as suggested by @philnik

Mar 28 2022, 7:46 AM · Restricted Project, Restricted Project
jwakely added inline comments to D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.
Mar 28 2022, 7:37 AM · Restricted Project, Restricted Project
jwakely updated the summary of D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.
Mar 28 2022, 4:50 AM · Restricted Project, Restricted Project
jwakely added inline comments to D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.
Mar 28 2022, 4:49 AM · Restricted Project, Restricted Project
jwakely requested review of D122574: [libcxx] [test] Use LIBCPP_ASSERT for libc++-specific checks.
Mar 28 2022, 4:47 AM · Restricted Project, Restricted Project
jwakely requested review of D122571: [libcxx] [test] Add missing header for std::numeric_limits.
Mar 28 2022, 4:15 AM · Restricted Project, Restricted Project
jwakely requested review of D122570: [libcxx] [test] Include header for strverscmp.
Mar 28 2022, 4:13 AM · Restricted Project, Restricted Project

Feb 23 2022

jwakely added a comment to D120417: [libc++] [ranges] Fix `decltype(auto) ranges::iter_move`.

The GCC bug mentions Fixed for 10.2 and we use GCC 11 in our CI.

Feb 23 2022, 9:35 AM · Restricted Project, Restricted Project
jwakely added inline comments to D119589: [libc++][ranges] Implement ranges::min.
Feb 23 2022, 8:30 AM · Restricted Project, Restricted Project

Feb 11 2022

jwakely added inline comments to D119056: add sysroot/include/c++/version/${TARGET} to wasm32-wasi.
Feb 11 2022, 3:55 AM · Restricted Project
jwakely resigned from D119056: add sysroot/include/c++/version/${TARGET} to wasm32-wasi.
Feb 11 2022, 1:49 AM · Restricted Project

Feb 8 2022

jwakely added a comment to D112906: [PowerPC] Emit warning for ieeelongdouble on older GNU toolchain.

Is that because clang lacks something required by this feature? (for example. clang-12 doesn't have __ibm128 and many builtins) If so, clang-14 should have these fixed.

Feb 8 2022, 8:51 AM · Restricted Project, Restricted Project
jwakely added a comment to D112906: [PowerPC] Emit warning for ieeelongdouble on older GNU toolchain.

GCC 12 should have proper support for IEEE-754 compliant 128-bit floating point in libstdc++.

Feb 8 2022, 5:33 AM · Restricted Project, Restricted Project

Feb 2 2022

jwakely added a comment to D118134: [libc++] Fix TOCTOU issue with std::filesystem::remove_all.

Thanks for pinging us on this. After taking a look at the AIX test failure, and dumping the error_code we get back from the new implementation, I think this is actually due to some ambiguity in the expected errno when the combination of O_DIRECTORY and O_NOFOLLOW is used and the path is a symlink.

Feb 2 2022, 1:39 AM · Restricted Project

Jan 26 2022

jwakely added inline comments to D117240: [libc++] Fix bug in ranges::advance and refactor the tests.
Jan 26 2022, 8:18 AM · Restricted Project

Jan 4 2022

jwakely accepted D116598: Document __builtin_trap and __builtin_debugtrap.

Not a reviewer, but LGTM, thanks.

Jan 4 2022, 7:15 AM · Restricted Project

Nov 29 2021

jwakely updated subscribers of D40319: [libcxx] Support getentropy as a source of randomness for std::random_device.
Nov 29 2021, 12:02 PM

Nov 25 2021

jwakely added inline comments to D40319: [libcxx] Support getentropy as a source of randomness for std::random_device.
Nov 25 2021, 7:06 AM
jwakely added inline comments to D40319: [libcxx] Support getentropy as a source of randomness for std::random_device.
Nov 25 2021, 7:02 AM

Nov 3 2021

jwakely added a comment to D112990: Fix building with GCC 12.

N.B. the libstdc++ regression that caused this to fail has been fixed now.

Nov 3 2021, 9:52 AM · Restricted Project

Nov 2 2021

jwakely added a comment to D112990: Fix building with GCC 12.

I think the C++ standard says this code should work, despite being stupid. But the const should be there anyway, because it doesn't modify anything.

Nov 2 2021, 2:48 AM · Restricted Project

May 22 2021

jwakely accepted D102936: [CUDA] Work around compatibility issue with libstdc++ 11.1.0.

LGTM

May 22 2021, 3:01 AM · Restricted Project

May 21 2021

jwakely requested changes to D102936: [CUDA] Work around compatibility issue with libstdc++ 11.1.0.

You can't use __GLIBCXX__ this way. It will be different for different snapshots from the gcc-11 branch. Some distros are already shipping gcc-11 snapshots with later dates.

May 21 2021, 2:02 PM · Restricted Project

May 12 2021

jwakely added a comment to D102328: [libc++] Fix __bitop_unsigned_integer, rename to __is_unsigned_integer, and fix constexprness of std::countr_zero(__uint128_t).

FWIW

May 12 2021, 1:08 PM · Restricted Project
jwakely added a comment to D102327: [pstl] Use logical operator for loop condition in tests.

No, I don't have commit access, so that would be great. Thanks, Zoe.

May 12 2021, 1:02 PM · Restricted Project
jwakely added inline comments to D102328: [libc++] Fix __bitop_unsigned_integer, rename to __is_unsigned_integer, and fix constexprness of std::countr_zero(__uint128_t).
May 12 2021, 10:39 AM · Restricted Project
jwakely added inline comments to D102328: [libc++] Fix __bitop_unsigned_integer, rename to __is_unsigned_integer, and fix constexprness of std::countr_zero(__uint128_t).
May 12 2021, 10:35 AM · Restricted Project
jwakely added inline comments to D102328: [libc++] Fix __bitop_unsigned_integer, rename to __is_unsigned_integer, and fix constexprness of std::countr_zero(__uint128_t).
May 12 2021, 8:29 AM · Restricted Project
jwakely requested review of D102328: [libc++] Fix __bitop_unsigned_integer, rename to __is_unsigned_integer, and fix constexprness of std::countr_zero(__uint128_t).
May 12 2021, 7:23 AM · Restricted Project
jwakely requested review of D102327: [pstl] Use logical operator for loop condition in tests.
May 12 2021, 7:18 AM · Restricted Project

Apr 28 2021

jwakely added inline comments to D101464: [clang] Add -stdlib=libstdc++ support for webassembly.
Apr 28 2021, 9:15 AM · Restricted Project

Apr 16 2021

jwakely added a comment to D100465: clang: Remove __atomic libstdc++ hack.

Not sure if I should have "accepted" this, I'm not an approver.

Apr 16 2021, 10:32 AM · Restricted Project
jwakely accepted D100465: clang: Remove __atomic libstdc++ hack.

I don't even remember those namespaces existing, but I don't think it's reasonable to expect current clang to support ancient (and broken) headers.

Apr 16 2021, 10:23 AM · Restricted Project

Mar 23 2021

jwakely added inline comments to D93377: [Clang] Add __ibm128 type to represent ppc_fp128.
Mar 23 2021, 4:06 AM · Restricted Project

Mar 13 2021

jwakely added inline comments to D93377: [Clang] Add __ibm128 type to represent ppc_fp128.
Mar 13 2021, 11:18 AM · Restricted Project
jwakely added a comment to D97846: Allow __ieee128 as an alias to __float128 on ppc.

I'm open to suggestion on how to implement that behavior in clang though :-)

Mar 13 2021, 12:29 AM · Restricted Project
jwakely added a comment to D97846: Allow __ieee128 as an alias to __float128 on ppc.

GCC doesn't seem to implement this as a keyword?

namespace Q { int __ieee128; } // compiles
Mar 13 2021, 12:14 AM · Restricted Project

Mar 12 2021

jwakely added inline comments to D93377: [Clang] Add __ibm128 type to represent ppc_fp128.
Mar 12 2021, 11:58 PM · Restricted Project

Mar 5 2021

jwakely added a comment to D97846: Allow __ieee128 as an alias to __float128 on ppc.

GCC only defines __ieee128 for 64-bit power, and libstdc++ only uses it for 64-bit power if the C library supports it.

Mar 5 2021, 5:38 AM · Restricted Project

Mar 3 2021

jwakely accepted D97808: [pstl] Fix broken policy_traits and clean up unused code.

LGTM

Mar 3 2021, 2:27 AM · Restricted Project

Jan 25 2021

jwakely added a comment to D95251: Remove noexcept from basic_string::find and implementation functions..

So (again, if I understand correctly), I think all of these have a wide contract and should either be expected to throw or be marked noexcept.

Jan 25 2021, 2:20 AM · Restricted Project
jwakely added a comment to D95251: Remove noexcept from basic_string::find and implementation functions..

It's probably a wide vs. narrow contract thing. The find overloads that take const char*, for example, have a precondition that the pointer is non-null. Under the so-called "Lakos rule" they would/could/should be "Throws: Nothing" but not noexcept.

Jan 25 2021, 2:13 AM · Restricted Project

Dec 8 2020

jwakely added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

Of course if it's already publicly documented for you the horse has presumably already left the barn which makes the discussion moot?

Dec 8 2020, 11:02 AM · Restricted Project, Restricted Project
jwakely added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

Are they actually the same, with the same handling of corner cases like unions and tail padding?
There's more to this than just the name, and if they aren't the same, it seems better to have two names.

They are both implementing the same C++ feature, with the same desired semantics of zeroing out any bits in the object representation that aren't in the value representation. If they differ, one or the other would have a bug.

Dec 8 2020, 12:53 AM · Restricted Project, Restricted Project

Dec 7 2020

jwakely added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

The name MSFT is already shipping in production is __builtin_zero_non_value_bits. If gcc is already shipping another name in production I think clang is stuck supporting both names, if gcc has not yet shipped their implementation perhaps we can choose one. That seems to be more on gcc than it is on clang given clang's desire to be more or less a drop in replacement for either gcc or msvc.

Dec 7 2020, 10:35 AM · Restricted Project, Restricted Project

Nov 27 2020

jwakely added a comment to D91992: [libc++] Add an extension to allow constructing std::thread from native handles.

Right, thanks for these thoughts -- I agree that adding a public constructor taking int is not ideal.

Nov 27 2020, 9:23 AM · Restricted Project

Nov 24 2020

jwakely added a comment to D91992: [libc++] Add an extension to allow constructing std::thread from native handles.

This reminds me of an often-requested extension to std::fstream to allow it to take ownership of a FILE* or unix file descriptor. In libstdc++ we do support that, but only by using a non-standard filebuf type, __gnu_cxx::stdio_filebuf. It's not available for std::basic_filebuf. Doing that would be an alternative design for this (that is, a non-standard native_thread type that you'd use instead of std::thread). That wouldn't be interchangeable with std::thread though, so I can see why you want to extend the existing type.

Nov 24 2020, 4:00 AM · Restricted Project

Nov 20 2020

jwakely added a comment to D87974: [Builtin] Add __builtin_zero_non_value_bits..

As of a few hours ago, GCC has __builtin_clear_padding, see https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fclear_005fpadding for the docs.

Nov 20 2020, 7:02 AM · Restricted Project, Restricted Project

Sep 25 2020

jwakely added a comment to D68364: Implement C++20's P0784 (More constexpr containers).

Is there a recommended way for working around this? We're using GCC 10.2.1. Thanks.

Sep 25 2020, 3:27 AM · Restricted Project, Restricted Project

Sep 22 2020

jwakely added inline comments to D68364: Implement C++20's P0784 (More constexpr containers).
Sep 22 2020, 6:19 AM · Restricted Project, Restricted Project
jwakely added inline comments to D68364: Implement C++20's P0784 (More constexpr containers).
Sep 22 2020, 6:17 AM · Restricted Project, Restricted Project
jwakely added inline comments to D68364: Implement C++20's P0784 (More constexpr containers).
Sep 22 2020, 6:15 AM · Restricted Project, Restricted Project

Aug 11 2020

jwakely added a comment to D84049: Disable use of _ExtInt with '__atomic' builtins.
In D84049#2182370, @jfb wrote:

We can ping @jwakely for libstdc++ 😃

Aug 11 2020, 2:20 PM · Restricted Project, Restricted Project

Jun 17 2020

jwakely added inline comments to D81348: [compiler-rt][builtins] Add tests for atomic builtins support functions.
Jun 17 2020, 12:24 PM · Restricted Project

Jun 15 2020

jwakely resigned from D81846: [libc++] Allow specifying custom Lit config files.

I don't think this impacts anything I do with lit (which isn't very much anyway).

Jun 15 2020, 4:35 PM · Restricted Project

Apr 14 2020

jwakely added a comment to D78154: [WIP][libc++] Link c++experimental.a into libc++.dylib when enabled.

@jwakely , how does libstdc++ ship experimental features? Does it ship them in its shared library?

Apr 14 2020, 4:20 PM · Restricted Project

Feb 27 2020

jwakely added a comment to D75199: Build fix: Turn off _GLIBCXX_DEBUG on gcc 9.

P.S. you could use _GLIBCXX_ASSERTIONS instead for affected versions of libstdc++. That is a subset of _GLIBCXX_DEBUG that has far fewer checks, but is still much better than not checking anything at all.

Feb 27 2020, 2:45 AM · Restricted Project
jwakely added a comment to D75199: Build fix: Turn off _GLIBCXX_DEBUG on gcc 9.

I think this affects the versions of std::min(std::initializer_list) and std::max(std::initializer_list), and std::{min,max,minmax}_element. It's already fixed for GCC 10.

Feb 27 2020, 1:25 AM · Restricted Project

Sep 25 2019

jwakely resigned from D67944: Implement LWG 3296.

Note that MS-STL already has this behavior, while libstdc++ does not.

Sep 25 2019, 5:33 AM · Restricted Project

Aug 15 2019

jwakely added a comment to D66259: Migrate llvm::make_unique to std::make_unique.

FWIW I think this particular bug was https://gcc.gnu.org/PR65942

Aug 15 2019, 12:55 PM · Restricted Project
jwakely added a comment to D66259: Migrate llvm::make_unique to std::make_unique.

It looks like this breaks building with gcc5.1:

Aug 15 2019, 10:17 AM · Restricted Project