From: Douglas Gregor Date: Fri, 5 Feb 2010 23:51:14 +0000 (+0000) Subject: Update Clang C++ status, with a more project-centric focus. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=57f1a00bf28e32a10414bb383e1cfc8dce3f0462;p=clang Update Clang C++ status, with a more project-centric focus. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95455 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/UsersManual.html b/docs/UsersManual.html index 13e0209414..41715bb2ac 100644 --- a/docs/UsersManual.html +++ b/docs/UsersManual.html @@ -789,14 +789,12 @@ definition.

C++ Language Features

-

At this point, Clang C++ is not generally useful. However, Clang C++ support +

At this point, Clang C++ is not production-quality and is not recommended for use beyond experimentation. However, Clang C++ support is under active development and is progressing rapidly. Please see the C++ Status page for details or ask on the mailing list about how you can help.

-

Note that the clang driver will refuse to even try to use clang to compile -C++ code unless you pass the -ccc-clang-cxx option to the driver. If -you really want to play with Clang's C++ support, please pass that flag.

+

Note that released Clang compilers will refuse to even try to use clang to compile C++ code unless you pass the -ccc-clang-cxx option to the driver. To turn on Clang's C++ support, please pass that flag. Clang compilers built from the Subversion trunk enable C++ support by default, and do not require the -ccc-clang-cxx flag.

Objective C++ Language Features

diff --git a/www/comparison.html b/www/comparison.html index 2462b89da2..0a6a7c8e00 100644 --- a/www/comparison.html +++ b/www/comparison.html @@ -51,8 +51,7 @@
  • GCC supports languages that clang does not aim to, such as Java, Ada, FORTRAN, etc.
  • GCC front-ends are very mature and already support C++. - clang's support for C++ is nowhere near - what GCC supports.
  • + clang's support for C++ is further behind.
  • GCC supports more targets than LLVM.
  • GCC is popular and widely adopted.
  • GCC does not require a C++ compiler to build it.
  • diff --git a/www/cxx_status.html b/www/cxx_status.html index a10eb8f95d..6277ce08cf 100644 --- a/www/cxx_status.html +++ b/www/cxx_status.html @@ -26,9 +26,75 @@

    Last updated: $Date$

    -

    -This page tracks the status of C++ support in Clang.
    -Clang implements the majority of C++ features, although there are many bugs remaining and Clang is not yet generally useful as a C++ compiler. If you are looking to get involved with Clang development to help work on support for C++, please also look at our Open Projects page and the LLVM bug tracker for some specific ideas.

    +

    Clang C++ Status

    + + + +

    Clang currently implements nearly all of the ISO C++ 1998 standard +(including the defects addressed in the ISO C++ 2003 standard), with +the few notable exceptions listed below. However, the implementation +of Clang C++ is still quite immature, with many remaining bugs that +are likely to cause compiler crashes, erroneous errors and warnings, +and miscompiled code. The LLVM bug +tracker contains a Clang C++ component that tracks known Clang C++ +bugs.

    + +

    Clang is currently missing implementations of the following C++98/03 features and common extensions:

    + + +

    Projects Building with Clang

    + +

    Clang is now capable of compiling some language C++ projects, or +large pieces of such projects. The following table describes various +projects that we have attempted to compile with Clang along with the results of that attempt.

    + +

    At this point in time, each new C++ project typically uncovers +new bugs. We keep track of these in the LLVM bug tracker via tracking bugs, +which are used to relate all of the bugs known to affect that +particular project. Introducing a new project in this list typically requires a liason familiar with LLVM or Clang development, who is able to provide detailed bug reports and track progress for the particular project.

    + + + + + + + + + + + + + + + + + + + + +
    ProjectStatusLast TestedTracking Bug
    Clang and LLVMSuccessful self-hosting achievedContinually
    BoostSome libraries (e.g., Boost.MPL) successfully build and pass regression tests, the majority still fail.February 5, 2010PR6023
    + +

    Implementation Status by Section

    -

    Clang is still under heavy development. Clang is considered to be - a production quality C and Objective-C compiler when targetting X86-32 and X86-64 - (other targets may have caveats, but are usually easy to fix). If you are - looking for source - analysis or source-to-source transformation tools, clang is probably - a great solution for you. If you are interested in C++, - full support is still way off.

    +

    Clang is still under heavy development. Clang is considered to + be a production quality C and Objective-C compiler when targetting + X86-32 and X86-64 (other targets may have caveats, but are usually + easy to fix). If you are looking for source analysis or + source-to-source transformation tools, clang is probably a great + solution for you. Clang's C++ support is currently alpha quality + at best, but is evolving rapidly: see the C++ status page for more + information.

    Get it and get involved!