History log of /external/libcxx/www/debug_mode.html
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
90dc8dd841b975fccfa4a278b9b44065d3644839 26-Aug-2014 Dan Albert <danalbert@google.com> Update to upstream r216384.

This rebase skips the following patches in upstream:

+ 37025e1b32d44751243257975b9e3d45b2873266
Make the helper routines in string really be constexpr. This required a
bit of refacoring in algorithm as well. Give them better names while
we're at it. All of these are internal rotines; no visible functionality
change.

+ 164b297099f486abe42122fe1aefe7eb741b7acf
Implement string_view from the library fundamentals TS (n4023). Also
works in C++11 and 03, with reduced functionality (mostly in the area of
constexpr)

+ e4694b41295484e5c521d2c281de9330c6d60c79
Formatting improvements in the <string_view> synopsis suggested by
RSmith. No functionality change.

+ 3a61b30f3affb1ba9412793a0a570ac87e6d26b3
Minor cleanup for string_view; mostly from suggestions by Richard Smith.
Also, make the tests pass under c++03

+ 484728789ed4aee35e62c031cb3392a5982a5d0f
string_view enhancements. Move to the correct namespace. Better
constexpr support (thanks to Richard for the suggestions). Update the
tests to match this. Add <experimental/__config for experimental
macros/etc to live.

+ b1a40264dcb88479e9227faaeb015da8e51fbe79
[libcxx] Add <experimental/utility> header for LFTS.

+ 3ee7233c8072ef912e249e391b35168f559bb239
[libcxx] expose experimental::erased_type for all standard versions.

+ 67740670f980cf43bbc2daf352dff89fd6771008
NFC. Remove trailing whitespace and tabs.

+ b9536101dcc36995794ea81a4f74b5f132211142
NFC. Move definition of _LIBCPP_ASSERT into __debug header and remove
external include guards.

+ 98c4e404ca8c524c54b4e7ede97b807355422b53.
Revert "Turn off extern templates for most uses."

Bug: 17255369
Change-Id: I629ff16275d50e4cc8767b253a2c0542468348d8
/external/libcxx/www/debug_mode.html
5e57142c5902c3f73a6fdcb8cab55e88ffb43a56 23-Aug-2013 Howard Hinnant <hhinnant@apple.com> Rename _LIBCPP_DEBUG2 to _LIBCPP_DEBUG.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
824c19963e0263366047787b024a992afc2b1c54 02-Aug-2013 Howard Hinnant <hhinnant@apple.com> debug mode for unordered_map. Also picked up a missing check and test in unordered_multimap. This wraps up debug mode for the unordered containers.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
8b00e6c96091c828b40ac410b6f123c7429a653d 02-Aug-2013 Howard Hinnant <hhinnant@apple.com> Ok, 3 major changes for debug mode in one commit:

1. I had been detecting and trapping iterator == and \!= among iterators
in different containers as an error. But the trapping itself is actually
an error.

Consider:

#include <iostream>
#include <vector>
#include <algorithm>

template <class C>
void
display(const C& c)
{
std::cout << "{";
bool first = true;
for (const auto& x : c)
{
if (\!first)
std::cout << ", ";
first = false;
std::cout << x;
}
std::cout << "}\n";
}

int
main()
{
typedef std::vector<int> V;
V v1 = {1, 3, 5};
V v2 = {2, 4, 6};
display(v1);
display(v2);
V::iterator i = std::find(v1.begin(), v1.end(), 1);
V::iterator j = std::find(v2.begin(), v2.end(), 2);
if (*i == *j)
i = j; // perfectly legal
// ...
if (i \!= j) // the only way to check
v2.push_back(*i);
display(v1);
display(v2);
}

It is legal to assign an iterator from one container to another of the
same type. This is required to work. One might want to test whether or
not such an assignment had been made. The way one performs such a check
is using the iterator's ==, \!= operator. This is a logical and necessary
function and does not constitute an error.

2. I had a header circular dependence bug when _LIBCPP_DEBUG2 is defined.
This caused a problem in several of the libc++ tests.
Fixed.

3. There is a serious problem when _LIBCPP_DEBUG2=1 at the moment in that
std::basic_string is inoperable. std::basic_string uses __wrap_iterator
to implement its iterators. __wrap_iterator has been rigged up in debug
mode to support vector. But string hasn't been rigged up yet. This means
that one gets false positives when using std::string in debug mode. I've
upped std::string's priority in www/debug_mode.html.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
0bb0a7c9ea7dc2852c9bfb38584f4673ada25e2a 29-Jul-2013 Howard Hinnant <hhinnant@apple.com> Debug mode for unordered_multiset. The exercise spotted a few places I had missed on unordered_set, so I picked those up as well.

There are actually two debug modes:

1. -D_LIBCPP_DEBUG2 or -D_LIBCPP_DEBUG2=1
This is a relatively expensive debug mode, but very thorough. This is normally what you want to debug with, but may turn O(1) operations into O(N) operations.

2. -D_LIBCPP_DEBUG2=0
This is "debug lite." Only preconditions that can be checked with O(1) expense are checked. For example range checking on an indexing operation. But not iterator validity.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
2062f377728e6c2a77842ca5b2c6428aab605ebc 16-Apr-2013 Howard Hinnant <hhinnant@apple.com> I believe this finishes up debug mode for list. The testing is a little weak, but I believe all of the functionality is there. Certainly enough for people to checkout and start beating up on.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@179632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
302fa82a1cb1c1070a869e7ca6103d737b93a9ed 28-Mar-2013 Howard Hinnant <hhinnant@apple.com> I believe debug mode for vector<T> (T != bool) is complete. If anyone sees anything more they would like to see on it, please let me know. Debug mode is activated by compiling with -D_LIBCPP_DEBUG2=1. Eventually _LIBCPP_DEBUG2 will be renamed to just _LIBCPP_DEBUG.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@178288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html
c7cbe502dbf62acc4168b511d51eb181492950ba 14-Mar-2013 Howard Hinnant <hhinnant@apple.com> Some forward-looking and optimistic documentation.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@177093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/libcxx/www/debug_mode.html