Started 14 days ago
Took 1 hr 18 min on green-dragon-17

Success Build rL:363218 - C:363208 - #57473 (Jun 12, 2019 5:38:00 PM)

  • : 363218
  • : 363208
  • : 363167
  • : 362745
  • : 363177
  • : 363219
  • : 363150
  1. Make GCC in C++03 Unsupported

    This patch make G++03 explicitly unsupported with libc++, as discussed on the mailing lists.

    Below is the rational for this decision.

    libc++ claims to support GCC with C++03 ("G++03"), and this is a problem for our users.

    Our C++03 users are all using Clang. They must be.  Less than 9% of the C++03 tests pass with GCC [1][2]. No non-trivial C++ program could work.

    Attempting to support G++03 impacts our QoI considerably. Unlike Clang, G++03 offers almost no C++11 extensions. If we could remove all the fallbacks for G++03, it would mean libc++ could::

    * Improve Correctness:

    Every `#ifdef _LIBCPP_HAS_NO_<C++11-feature>` is a bug manifest. It exists to admit for deviant semantics.

    * Achieve ABI stability between C++03 and C++11

    Differences between our C++03 and C++Rest branches contain ABI bugs. For example `std::nullptr_t` and `std::function::operator()(...)` are currently incompatible between C++11 and C++03, but could be fixed.

    * Decrease Compile Times and Memory Usage:

    Writing efficient SFINAE requires C++11. Using alias templates, libc++ could reduce the number of instantiations it produces substantially.

    * Decrease Binary Size

    Similar to the last point, G++03 forces metaprogramming techniques that emit more debug information [3] [4]. Compared to libstdc++, debug information size increases of +10% are not uncommon.

    Reviewers: ldionne, mclow.lists, EricWF

    Reviewed By: ldionne, EricWF

    Subscribers: zoecarver, aprantl, dexonsmith, arphaman, libcxx-commits, #libc

    Differential Revision: (detail/ViewSVN)
    by ericwf

Started by an SCM change

This run spent:

  • 8.6 sec waiting;
  • 1 hr 18 min build duration;
  • 1 hr 18 min total from scheduled to completion.
LLVM/Clang Warnings: 1 warning.
    Test Result (no failures)