Page MenuHomePhabricator

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

thomasanderson (Tom Anderson)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 26 2017, 11:08 AM (327 w, 1 d)

Recent Activity

Jan 11 2021

thomasanderson added a comment to D35388: [libc++] Give extern templates default visibility on gcc.

We appear to still be carrying a patch for this in Chromium, so I think the issue still stands.
https://source.chromium.org/chromium/chromium/src/+/master:buildtools/third_party/libc++/BUILD.gn;drc=21272efa27e69622c6d174f29e4a73f1a6088cfc;l=135

Jan 11 2021, 6:47 PM · Restricted Project, Restricted Project

May 4 2020

thomasanderson added a comment to D79222: [lld] Avoid defining reserved symbols from depndent DSOs.

It's definitely odd that some (possibly indirect) dependency's exports has an effect on our own exports. But since bfd and gold have this behavior I guess changing it would have the potential to break things.

May 4 2020, 5:46 PM

Apr 30 2020

thomasanderson created D79222: [lld] Avoid defining reserved symbols from depndent DSOs.
Apr 30 2020, 5:38 PM

Jun 13 2019

thomasanderson committed rG2ce370c95729: [libc++] Fix build with gcc 4.8 (authored by thomasanderson).
[libc++] Fix build with gcc 4.8
Jun 13 2019, 3:27 PM
thomasanderson committed rL363333: [libc++] Fix build with gcc 4.8.
[libc++] Fix build with gcc 4.8
Jun 13 2019, 3:24 PM
thomasanderson closed D63296: [libc++] Fix build with gcc 4.8.
Jun 13 2019, 3:24 PM · Restricted Project, Restricted Project
thomasanderson added a comment to D63296: [libc++] Fix build with gcc 4.8.

To be clear, I didn't actually test on 4.9 or 5.1, so it's possibly broken there too. Anyway, landing this for now if only as a band-aid.

Jun 13 2019, 3:24 PM · Restricted Project, Restricted Project
thomasanderson created D63296: [libc++] Fix build with gcc 4.8.
Jun 13 2019, 1:13 PM · Restricted Project, Restricted Project

Apr 29 2019

thomasanderson accepted D61277: [PDB] Fix hash function used to write /src/headerblock.

lgtm!

Apr 29 2019, 3:15 PM · Restricted Project

Apr 18 2019

thomasanderson committed rG6ab51de08e7c: [libc++] Make __debug_less::operator() constexpr (authored by thomasanderson).
[libc++] Make __debug_less::operator() constexpr
Apr 18 2019, 5:56 PM
thomasanderson committed rL358725: [libc++] Make __debug_less::operator() constexpr.
[libc++] Make __debug_less::operator() constexpr
Apr 18 2019, 5:51 PM
thomasanderson committed rCXX358725: [libc++] Make __debug_less::operator() constexpr.
[libc++] Make __debug_less::operator() constexpr
Apr 18 2019, 5:51 PM
thomasanderson closed D60724: [libc++] Make __debug_less::operator() constexpr.
Apr 18 2019, 5:51 PM · Restricted Project
thomasanderson updated the diff for D60724: [libc++] Make __debug_less::operator() constexpr.

Address comments

Apr 18 2019, 5:49 PM · Restricted Project

Apr 16 2019

thomasanderson added a comment to D60724: [libc++] Make __debug_less::operator() constexpr.

We should apply this to both versions of __do_compare_assert and to the call operator taking non-const arguments as well.

Apr 16 2019, 11:55 AM · Restricted Project
thomasanderson updated the diff for D60724: [libc++] Make __debug_less::operator() constexpr.
Apr 16 2019, 11:55 AM · Restricted Project

Apr 15 2019

thomasanderson added a comment to D60592: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values instead of references.

This seems to have broken some CI because we're using aliases instead of typedefs and this file needs to work in C++03.

I'm working on a fix.

Should be fixed in r358433.

Apr 15 2019, 11:10 AM · Restricted Project
thomasanderson created D60724: [libc++] Make __debug_less::operator() constexpr.
Apr 15 2019, 10:31 AM · Restricted Project
thomasanderson committed rG3c3ccc004950: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values… (authored by thomasanderson).
[libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values…
Apr 15 2019, 10:02 AM
thomasanderson committed rCXX358423: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values….
[libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values…
Apr 15 2019, 10:02 AM
thomasanderson committed rL358423: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values….
[libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values…
Apr 15 2019, 10:02 AM
thomasanderson closed D60592: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values instead of references.
Apr 15 2019, 10:02 AM · Restricted Project

Apr 12 2019

thomasanderson updated the diff for D60592: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values instead of references.
Apr 12 2019, 10:13 AM · Restricted Project

Apr 11 2019

thomasanderson created D60592: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values instead of references.
Apr 11 2019, 5:25 PM · Restricted Project
thomasanderson added a comment to D60592: [libc++] Fix build failure with _LIBCPP_DEBUG=0 when iterators return values instead of references.

@EricWF ptal. I think this regressed after https://reviews.llvm.org/rCXX355752

Apr 11 2019, 5:25 PM · Restricted Project

Mar 27 2019

thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

I mean would it be possible to call setlocale directly so it wouldn't have to deal with __libcpp_locale_guard. Also, do you know if that is equally as fast as calling __stdio_common_vsprintf?

Mar 27 2019, 11:51 AM · Restricted Project
thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

Thanks for explaining. Would it work to call setlocale() then add just use vsnprintf?

Mar 27 2019, 11:30 AM · Restricted Project
thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

What does __stdio_common_vsprintf give you that vsnprintf doesn't?

Mar 27 2019, 11:19 AM · Restricted Project
thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

Will D59572 fix the __libcpp_locale_guard performance issues?

Mar 27 2019, 11:09 AM · Restricted Project
thomasanderson committed rG24812d8ac42e: Fix and speedup __libcpp_locale_guard on Windows (authored by thomasanderson).
Fix and speedup __libcpp_locale_guard on Windows
Mar 27 2019, 11:08 AM
thomasanderson committed rL357104: Fix and speedup __libcpp_locale_guard on Windows.
Fix and speedup __libcpp_locale_guard on Windows
Mar 27 2019, 11:08 AM
thomasanderson committed rCXX357104: Fix and speedup __libcpp_locale_guard on Windows.
Fix and speedup __libcpp_locale_guard on Windows
Mar 27 2019, 11:08 AM
thomasanderson closed D59572: Fix and speedup __libcpp_locale_guard on Windows.
Mar 27 2019, 11:08 AM
thomasanderson added inline comments to D59572: Fix and speedup __libcpp_locale_guard on Windows.
Mar 27 2019, 11:06 AM
thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

@thomasanderson vsnprintf uses __stdio_common_vsprintf on MSVC. Is there a performance hit when only vsnprintf is used?

Mar 27 2019, 11:03 AM · Restricted Project

Mar 26 2019

thomasanderson added a comment to D59572: Fix and speedup __libcpp_locale_guard on Windows.

@mclow.lists does this lg to land?

Mar 26 2019, 4:05 PM
thomasanderson added inline comments to D59572: Fix and speedup __libcpp_locale_guard on Windows.
Mar 26 2019, 3:00 PM
thomasanderson updated the diff for D59572: Fix and speedup __libcpp_locale_guard on Windows.

Add comment suggested by smeenai@

Mar 26 2019, 1:12 PM
thomasanderson added inline comments to D59572: Fix and speedup __libcpp_locale_guard on Windows.
Mar 26 2019, 12:55 PM
thomasanderson committed rGd4d824a861b9: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small (authored by thomasanderson).
[libc++] Fix return value of snprintf_l() on Windows when buffer is too small
Mar 26 2019, 12:53 PM
thomasanderson committed rCXX357024: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.
[libc++] Fix return value of snprintf_l() on Windows when buffer is too small
Mar 26 2019, 12:52 PM
thomasanderson committed rL357024: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.
[libc++] Fix return value of snprintf_l() on Windows when buffer is too small
Mar 26 2019, 12:52 PM
thomasanderson closed D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.
Mar 26 2019, 12:52 PM · Restricted Project
thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

Removed !defined(__MINGW32__) in the latest patch. Thanks @smeenai and @mstorsjo ! Going to land with that latest change.

Mar 26 2019, 12:48 PM · Restricted Project
thomasanderson updated the diff for D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.
Mar 26 2019, 12:46 PM · Restricted Project
thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

OK, but can you open a bug that we need to find a better solution in the long run?

Mar 26 2019, 12:24 PM · Restricted Project
thomasanderson updated the diff for D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

Add FIXME and fix MINGW

Mar 26 2019, 12:23 PM · Restricted Project

Mar 22 2019

thomasanderson added a comment to D59572: Fix and speedup __libcpp_locale_guard on Windows.

That said, this feels like a POSIX-ism we're leaking into our Windows implementation. So I'm open to doing whatever is more Windows-like.

Mar 22 2019, 8:22 PM
thomasanderson added a comment to D59572: Fix and speedup __libcpp_locale_guard on Windows.

What happens here when the user has different locales for different categories?

Mar 22 2019, 7:36 PM
thomasanderson added a comment to D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.

I'm never comfortable using other STL's implementation details. When a user does that to libc++, we slap their hand.
And MSVC docs explicitly ask us not to use that here:
https://docs.microsoft.com/en-us/cpp/c-runtime-library/internal-crt-globals-and-functions?view=vs-2017

Is there any other paths forward?

Mar 22 2019, 5:10 PM · Restricted Project
thomasanderson updated the diff for D59572: Fix and speedup __libcpp_locale_guard on Windows.

Handle memory alloc failures

Mar 22 2019, 4:48 PM
thomasanderson created D59727: [libc++] Fix return value of snprintf_l() on Windows when buffer is too small.
Mar 22 2019, 4:17 PM · Restricted Project

Mar 21 2019

thomasanderson updated subscribers of D59572: Fix and speedup __libcpp_locale_guard on Windows.

+ @smeenai please review

Mar 21 2019, 11:55 AM
thomasanderson added a reviewer for D59572: Fix and speedup __libcpp_locale_guard on Windows: smeenai.
Mar 21 2019, 11:51 AM

Mar 19 2019

thomasanderson created D59572: Fix and speedup __libcpp_locale_guard on Windows.
Mar 19 2019, 6:17 PM
thomasanderson 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.

Why did you commit it?

Mar 19 2019, 1:46 PM · Restricted Project
thomasanderson committed rGa0feccdf5692: [libc++] Speed up certain locale functions on Windows (authored by thomasanderson).
[libc++] Speed up certain locale functions on Windows
Mar 19 2019, 1:31 PM
thomasanderson committed rCXX356512: [libc++] Speed up certain locale functions on Windows.
[libc++] Speed up certain locale functions on Windows
Mar 19 2019, 1:31 PM
thomasanderson committed rL356512: [libc++] Speed up certain locale functions on Windows.
[libc++] Speed up certain locale functions on Windows
Mar 19 2019, 1:31 PM
thomasanderson closed D59525: Speed up certain locale functions on Windows.
Mar 19 2019, 1:31 PM · Restricted Project
thomasanderson added a comment to D59525: Speed up certain locale functions on Windows.

LGTM, though you'll wanna update the commit message.

Mar 19 2019, 1:19 PM · Restricted Project
thomasanderson updated the diff for D59525: Speed up certain locale functions on Windows.
Mar 19 2019, 1:19 PM · Restricted Project
thomasanderson added inline comments to D59525: Speed up certain locale functions on Windows.
Mar 19 2019, 1:04 PM · Restricted Project
thomasanderson updated the diff for D59525: Speed up certain locale functions on Windows.
Mar 19 2019, 1:04 PM · Restricted Project

Mar 18 2019

thomasanderson updated the summary of D59525: Speed up certain locale functions on Windows.
Mar 18 2019, 5:44 PM · Restricted Project
thomasanderson created D59525: Speed up certain locale functions on Windows.
Mar 18 2019, 5:39 PM · Restricted Project

Mar 6 2019

thomasanderson committed rG516d07de0711: [libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1 (authored by thomasanderson).
[libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1
Mar 6 2019, 1:10 PM
thomasanderson committed rCXX355550: [libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1.
[libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1
Mar 6 2019, 1:09 PM
thomasanderson committed rL355550: [libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1.
[libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1
Mar 6 2019, 1:09 PM
thomasanderson closed D58926: [libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1.
Mar 6 2019, 1:09 PM · Restricted Project
thomasanderson updated the diff for D58926: [libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1.

Added test: crashes before change, passes after

Mar 6 2019, 12:49 PM · Restricted Project
thomasanderson abandoned D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.

Fix by EricWF: https://reviews.llvm.org/D58945

Mar 6 2019, 12:04 PM
thomasanderson added inline comments to D58945: Fix ABI compatibility of `<stdexcept>` with VCRuntime..
Mar 6 2019, 12:04 PM

Mar 4 2019

thomasanderson accepted D58945: Fix ABI compatibility of `<stdexcept>` with VCRuntime..

LGTM, thanks!

Mar 4 2019, 6:15 PM
thomasanderson created D58926: [libc++] Fix use-after-free when building with _LIBCPP_DEBUG=1.
Mar 4 2019, 3:04 PM · Restricted Project
thomasanderson added a comment to D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.

Looking at the rational for this change again, I'm not sure I understand:

MSVC doesn't provide definitions of functions like std::logic_error::logic_error(const char*), so they are implicitly generated by the compiler as inline function.

There shouldn't be any compiler magic here. Nothing should be implicitly generated. Could you dig up the MSVC source code that declares and defines these types?

Mar 4 2019, 12:00 PM
thomasanderson updated the summary of D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.
Mar 4 2019, 11:13 AM

Feb 25 2019

thomasanderson added a comment to D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.

Friendly ping

Feb 25 2019, 10:55 AM

Feb 19 2019

thomasanderson added a comment to D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.

But D57425 landed and this one didn't :-) Is the plan to land this and revert the other one then?

Feb 19 2019, 4:46 PM
thomasanderson added a comment to D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.

This was made obsolete by D57425, right?

Feb 19 2019, 4:18 PM

Feb 14 2019

thomasanderson added inline comments to D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.
Feb 14 2019, 12:48 PM
thomasanderson updated the diff for D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.
Feb 14 2019, 12:48 PM

Feb 13 2019

thomasanderson added a comment to D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.

hanks for looping me in. I'm working on a similar problem but with libstdc++.

I think the approach of creating specific visibility macros for the exception / runtime bits than need to be shared makes sense,
though the additional complexity is unfortunate.

Feb 13 2019, 4:24 PM
thomasanderson updated the diff for D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.
Feb 13 2019, 4:19 PM
thomasanderson created D58203: [libc++] Inline stdexcept constructors, destructors, and assignment operators when using MSVC ABI.
Feb 13 2019, 1:01 PM

Feb 1 2019

thomasanderson committed rLLDB352899: [lldb] Relax libc++ ABI version checking.
[lldb] Relax libc++ ABI version checking
Feb 1 2019, 11:10 AM
thomasanderson committed rL352899: [lldb] Relax libc++ ABI version checking.
[lldb] Relax libc++ ABI version checking
Feb 1 2019, 11:10 AM
thomasanderson closed D57466: [lldb] Relax libc++ ABI version checking.
Feb 1 2019, 11:10 AM · Restricted Project

Jan 30 2019

thomasanderson added a comment to D57466: [lldb] Relax libc++ ABI version checking.

As long as this doesn't break macOS, it's fine. (just run the tests and watch the bots).

Jan 30 2019, 5:22 PM · Restricted Project
thomasanderson updated the diff for D57466: [lldb] Relax libc++ ABI version checking.
Jan 30 2019, 5:17 PM · Restricted Project
thomasanderson created D57466: [lldb] Relax libc++ ABI version checking.
Jan 30 2019, 12:37 PM · Restricted Project
thomasanderson committed rL352648: [libc++] Explicitly initialize std::nothrow.
[libc++] Explicitly initialize std::nothrow
Jan 30 2019, 11:09 AM
thomasanderson committed rCXX352648: [libc++] Explicitly initialize std::nothrow.
[libc++] Explicitly initialize std::nothrow
Jan 30 2019, 11:09 AM
thomasanderson closed D57351: [libc++] Explicitly initialize std::nothrow.
Jan 30 2019, 11:09 AM
thomasanderson committed rL352647: [libc++] Don't define operator new/delete when using vcruntime.
[libc++] Don't define operator new/delete when using vcruntime
Jan 30 2019, 11:08 AM
thomasanderson committed rCXX352647: [libc++] Don't define operator new/delete when using vcruntime.
[libc++] Don't define operator new/delete when using vcruntime
Jan 30 2019, 11:08 AM
thomasanderson closed D57362: [libc++] Don't define operator new/delete when using vcruntime.
Jan 30 2019, 11:08 AM
thomasanderson committed rL352646: [libc++] Don't define exception destructors when using vcruntime.
[libc++] Don't define exception destructors when using vcruntime
Jan 30 2019, 11:07 AM
thomasanderson committed rCXX352646: [libc++] Don't define exception destructors when using vcruntime.
[libc++] Don't define exception destructors when using vcruntime
Jan 30 2019, 11:07 AM
thomasanderson closed D57425: [libc++] Don't define exception destructors when using vcruntime.
Jan 30 2019, 11:07 AM