1. ff92677 Provide a way to disable use of extern templates in libc++. This is intended for the clients of libc++, not the libc++ build. The dylib should always contain the extern templates. To disable the client needs to put -D'_LIBCPP_EXTERN_TEMPLATE(...)=' on the command line. by Howard Hinnant · 12 years ago
  2. 73c85c7 peek should set eofbit if sgetc() returns eof. by Howard Hinnant · 12 years ago
  3. 4af2cf3 Richard Smith: This fixes a problem in std::is_constructible for incomplete types, and those types with a user-defined operator,(). by Howard Hinnant · 12 years ago
  4. 9c0df14 Rename uses of _ and __ because these are getting stepped on by macros from other system code. by Howard Hinnant · 12 years ago
  5. eac2a01 Add an entry in CREDITS.TXT by Argyrios Kyrtzidis · 12 years ago
  6. 1c0be38 Use traits_type::to_int_type in basic_streambuf<_CharT, _Traits>::xsputn when calling overflow to correctly handle negative signed character types. This fixes http://llvm.org/bugs/show_bug.cgi?id=14074. by Howard Hinnant · 12 years ago
  7. 999fc97 Dimitry Andric: FreeBSD only: Add the C11 aligned_alloc to <cstdlib> and adjust the inclusion of quick_exit. by Howard Hinnant · 12 years ago
  8. 1dc6f7a Don't neglect to "return *this". by Argyrios Kyrtzidis · 12 years ago
  9. 75536ba Holger Arnold: Correct the use and testing of __GNUC__ and __GNUC_MINOR__ in <__config>. by Howard Hinnant · 12 years ago
  10. 95c0e9f Make vector::iterator and string::iterator more resilient against overly generic relational operators. by Howard Hinnant · 12 years ago
  11. 155ff6e Due to a mistake on my own part, I need to burn some version numbers. This does not impact any of the implementation of libc++, and does not impact the ABI in any way. by Howard Hinnant · 12 years ago
  12. 8d36c43 Bump _LIBCPP_VERSION to 1002 by Howard Hinnant · 12 years ago
  13. c25d158 Apply the emulated nullptr_t with constexpr. This is an unusual configuration that would take advantage of this. But it has popped up in the wild and does no harm to support it. by Howard Hinnant · 12 years ago
  14. c004e2e Updating email address by Marshall Clow · 12 years ago
  15. 3c6fefd Fix installheaders target to do what it did prior to r161760. rdar://12348765 by Bob Wilson · 12 years ago
  16. 2d3f4ee Add overflow check to tanh(complex) and reduce to finite answer. Fixes http://llvm.org/bugs/show_bug.cgi?id=13874 by Howard Hinnant · 12 years ago
  17. a585de6 Overloaded __pad_and_output on ostreambuf_iterator and in this overload call sputn instead of dereferencing the iterator which calls sputc. This is intended to be purely a performance optimization, especially for clients who may have overloaded the virtual function xsputn. by Howard Hinnant · 12 years ago
  18. 7eb9f1e Align <atomic> with clang r163964 which disallows const _Atomic types. by Howard Hinnant · 12 years ago
  19. 6cb977b Update CREDITS.TXT by Howard Hinnant · 12 years ago
  20. 33be35e Dimitry Andric: many visibility fixes. Howard: Much appreciated. Can you send me a patch to CREDITS.TXT? by Howard Hinnant · 12 years ago
  21. 5c90cba Dimitry Andric: FreeBSD porting tweaks for PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER by Howard Hinnant · 12 years ago
  22. 460b4ca Some minor mingw64 porting tweaks from Glen. by Howard Hinnant · 12 years ago
  23. cf115d2 Change sleep_for, sleep_until, and the condition_variable timed wait by Howard Hinnant · 12 years ago
  24. c417a80 Hyeon-bin Jeong: libc++ fails to create any classes inherit from basic_ios if they by Howard Hinnant · 12 years ago
  25. 70e441a Update CREDITS.TXT by Howard Hinnant · 12 years ago
  26. a516028 Michel Morin: My previous fix for C++03 was incomplete. by Howard Hinnant · 12 years ago
  27. 3882d39 Wrap throw in _LIBCPP_NO_EXCEPTIONS in debug.cpp. Calls abort if can't throw an exception. Fixes http://llvm.org/bugs/show_bug.cgi?id=13082. by Howard Hinnant · 12 years ago
  28. 37bdf0e Have basic_istream seekg, putback and unget first clear eofbit. Fixes http://llvm.org/bugs/show_bug.cgi?id=13089. by Howard Hinnant · 12 years ago
  29. d57de09 Add Hyeon-bin Jeong to CREDITS.TXT by Howard Hinnant · 12 years ago
  30. d305d3c Hyeon-Bin Jeong: 1. sync() should reset it’s external buffer pointers. by Howard Hinnant · 12 years ago
  31. ec423cb Fix basic_filebuf's internal buffer is shrinking when using with some codecvt. http://llvm.org/bugs/show_bug.cgi?id=13602 by Howard Hinnant · 12 years ago
  32. e7d59f2 Fixed order of calling use_facet vs setbuf in basic_filebuf default constructor. by Howard Hinnant · 12 years ago
  33. 8540d4c basic_filebuf needs to delay obtaining a codecvt facet from the global locale to give the client a chance to imbue the proper locale. Fixes http://llvm.org/bugs/show_bug.cgi?id=13663. by Howard Hinnant · 12 years ago
  34. 08a0b48 Fix a typo in the docs by Marshall Clow · 12 years ago
  35. ffab058 In C++03 mode add an explicit conversion from int to the emulated class enum. Fixes a problem reported by C. Bergström. by Howard Hinnant · 12 years ago
  36. 96c60b4 Patch contributed by Dev Dude for mingw64 port. by Howard Hinnant · 12 years ago
  37. a0852ff Apply patches supplied by Michel Morin in http://llvm.org/bugs/show_bug.cgi?id=13601 to correct bugs in is_convertible for the case that the intrinsic __is_convertible_to is not available. by Howard Hinnant · 12 years ago
  38. 4ae952a Consistently label __bit_array as a struct, not a class. by Howard Hinnant · 12 years ago
  39. 364e945 Remove obsolete do-installhdrs target (again). by Howard Hinnant · 12 years ago
  40. 2a03b71 Remove obsolete do-installhdrs target. by Howard Hinnant · 12 years ago
  41. e87514a Patch constributed by Michel Moren in http://llvm.org/bugs/show_bug.cgi?id=13592 . Fixes is_convertible<From, To> when To is an abstract type. by Howard Hinnant · 12 years ago
  42. 4490c4a Change size of reference count field in __libcpp_nmstr from 32 bits to 64 bits for 64 bit targets. This is controls the data layout of all exceptions defined in <stdexcept>. This aligns the ABI with that of gcc-4.2. by Howard Hinnant · 12 years ago
  43. 584db42 std::equal operating on non-const __bit_iterators was not working. This fixes it. by Howard Hinnant · 12 years ago
  44. e103a3d Andrew Morrow: The current CMake setup for libc++ incorrectly uses the variable by Howard Hinnant · 12 years ago
  45. 6886dd1 Loosen up the timing requirements on 4 more tests. by Howard Hinnant · 12 years ago
  46. 4b2f420 Performance tweaking rotate. by Howard Hinnant · 12 years ago
  47. cd99236 Andrew Morrow: The attached patch updates the initialization of the 'struct tm' in by Howard Hinnant · 12 years ago
  48. 069bdd5 Andrew Morrow: There are two tests under test/utilities/memory that heap allocate two by Howard Hinnant · 12 years ago
  49. 63b2f4f Andrew Morrow: The attached patch updates the lit.config for libc++ unit tests so by Howard Hinnant · 12 years ago
  50. ef793f2 Andrew Morrow: Among the various libc++ tests that currently don't pass on Linux are by Howard Hinnant · 12 years ago
  51. 403f91a Andrew Morrow: The attached patch is an attempt to implement by Howard Hinnant · 12 years ago
  52. 6d39f9f Andrew Morrow: This patch fixes by Howard Hinnant · 12 years ago
  53. ee7a0bf Andrew Morrow: Attached is a writeup of the current state of the libc++ test suite on Linux. by Howard Hinnant · 12 years ago
  54. 65f059b Despite my pathological distrust of spin locks, the number just don't lie. I've put a small spin in __sp_mut::lock() on std::mutex::try_lock(), which is testing quite well. In my experience, putting in a yield for every failed iteration is also a major performance booster. This change makes one of the performance tests I was using (a highly contended one) run about 20 times faster. by Howard Hinnant · 12 years ago
  55. 7a7b6d8 Updated status by Howard Hinnant · 12 years ago
  56. 30055c6 Updated the complete by-chapter graph by Howard Hinnant · 12 years ago
  57. 5fec82d Implement [util.smartptr.shared.atomic]. This is the last unimplemented by Howard Hinnant · 12 years ago
  58. 116ce6a Update CREDITS.TXT by Howard Hinnant · 12 years ago
  59. afcac1a Patch by Andrew C. Morrow: shims to work around macroized getc and putc on linux. On my eglibc 2.13 based Debian system 'getc' is a macro defined in by Howard Hinnant · 12 years ago
  60. 8b5bb3c Patch by Andrew C. Morrow: Conditionally include cxxabi.h in new.cpp and typeinfo.cpp. Both new.cpp and typeinfo.cpp have code that is conditionally compiled by Howard Hinnant · 12 years ago
  61. ca8eb83 <algorithm> no longer needs to include <cstdlib>, but can get away with just <cstddef>. This was brought to my attention by Salvatore Benedetto in his port to a bare-metal coretex-m3. This exposed two test bugs where an explicit #include <cstdlib> was needed. by Howard Hinnant · 12 years ago
  62. f3d62ea locale::id really needs to be constructed at compile time. by Howard Hinnant · 12 years ago
  63. 0405cc4 libc++: switch from using _ATTRIBUTE(noreturn) (which conflicts with a by Richard Smith · 12 years ago
  64. 8131a01 Apple LWG 2067: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3318.html#2067 . This is the only actionable change that has been made to the C++ draft since C++11. In general it has not been decided exactly how libc++ will track changes made to C++11. New features and design changes will probably be #ifdef'd, especially if they are not backwards compatible. Defects and 'dumb mistakes' are more likely to just be put in. Decisions on telling one from the other will be made on a case by case basis. by Howard Hinnant · 12 years ago
  65. 8bf01dd noexcept applied to <future>. by Howard Hinnant · 12 years ago
  66. 6e1d851 noexcept applied to <thread>. by Howard Hinnant · 12 years ago
  67. c8f7413 noexcept applied to <condition_variable>. by Howard Hinnant · 12 years ago
  68. 499c61f noexcept and constexpr applied to <mutex>. by Howard Hinnant · 12 years ago
  69. 46623a0 noexcept and constexpr applied to <regex>. by Howard Hinnant · 12 years ago
  70. f57bd56 noexcept and constexpr applied to <ios>. by Howard Hinnant · 12 years ago
  71. bd14308 noexcept applied to <valarray>. by Howard Hinnant · 12 years ago
  72. 410f2de constexpr applied to <complex>. by Howard Hinnant · 12 years ago
  73. c83960a noexcept applied to <random>. by Howard Hinnant · 12 years ago
  74. fe4c9dd Relax the tolerances on some timing tests. by Howard Hinnant · 12 years ago
  75. d06a640 noexcept applied to <iterator>. by Howard Hinnant · 12 years ago
  76. 08bce17 constexpr applied to <array>. by Howard Hinnant · 12 years ago
  77. 03d7181 constexpr applied to <string>. by Howard Hinnant · 12 years ago
  78. e41f475 Further tweaks on relaxing complete type checking for function. by Howard Hinnant · 12 years ago
  79. 7d87f6b Jean-Daniel : clang now supports all required type_traits. by Howard Hinnant · 12 years ago
  80. af34734 Jean-Daniel updates the libc++ index page to reflect not so recent changes in C++ standard status. by Howard Hinnant · 12 years ago
  81. c425307 Relax the complete-type checks that are happening under __invokable<Fp, Args...> to only check Fp, and not Args... . This should be sufficient to give the desired high quality diagnostics under both bind and function. And this allows a test reported by Rich E on cfe-dev to pass. Tracked by <rdar://problem/11880602>. by Howard Hinnant · 12 years ago
  82. 473f838 Applied constexpr to <chrono>. by Howard Hinnant · 12 years ago
  83. 1ca2367 Fixed a bug in wstring_convert concerning zero-length inputs. Thanks to Jonathan Coxhead for reporting this bug. by Howard Hinnant · 12 years ago
  84. 591e32d Teach libc++ to check for libc++abi and use its features if they're available. by Richard Smith · 12 years ago
  85. d586248 Add test for self-referencing emplace test. by Howard Hinnant · 12 years ago
  86. a58402a Change emplace for vector and deque to create the temporary (when necessary) before any changes to the container are made. Nikolay Ivchenkov deserves the credit for pushing this problem and the solution for it. by Howard Hinnant · 12 years ago
  87. 46e9493 Appy constexpr to <memory>. Picked up a few missing noexcepts as well. by Howard Hinnant · 12 years ago
  88. 384608e Apply constexpr to the mutex constructor. As a conforming extension, apply constexpr to the condition_variable constructor. These are important because it enables the compiler to construct these types at compile time, even though the object will be non-const. Since they are constructed at compile time, there is no chance of a data race before they are constructed. by Howard Hinnant · 12 years ago
  89. 90d8723 Apply constexpr to <bitset>. by Howard Hinnant · 12 years ago
  90. 74f26f2 Apply noexcept to tuple. by Howard Hinnant · 12 years ago
  91. 4eebfc3 As a conforming extension give tuple a noexcept default constructor conditionalized on its held types. by Howard Hinnant · 12 years ago
  92. 5394c1e Give tuple a constexpr default constructor. by Howard Hinnant · 12 years ago
  93. a0b5bef New Windows libc++ test results provided by Ruben Van Boxem. by Howard Hinnant · 12 years ago
  94. 9b12f23 Apply noexcept to those functions implemented in <cstdlib> as a conforming extension. by Howard Hinnant · 12 years ago
  95. cac0c46 Apply noexcept to those functions implemented in <cmath> as a conforming extension. by Howard Hinnant · 12 years ago
  96. 71499ad Add noexcept test for offsetof macro per [support.types]/p4. by Howard Hinnant · 12 years ago
  97. 7a44515 This commit establishes a new bucket_count policy in the unordered containers: The policy now allows a power-of-2 number of buckets to be requested (and that request honored) by the client. And if the number of buckets is set to a power of 2, then the constraint of the hash to the number of buckets uses & instead of %. If the client does not specify a number of buckets, then the policy remains unchanged: a prime number of buckets is selected. The growth policy is that the number of buckets is roughly doubled when needed. While growing, either the prime, or the power-of-2 strategy will be preserved. There is a small run time cost for putting in this switch. For very cheap hash functions, e.g. identity for int, the cost can be as high as 18%. However with more typical use cases, e.g. strings, the cost is in the noise level. I've measured cases with very cheap hash functions (int) that using a power-of-2 number of buckets can make look up about twice as fast. However I've also noted that a power-of-2 number of buckets is more susceptible to accidental catastrophic collisions. Though I've also noted that accidental catastrophic collisions are also possible when using a prime number of buckets (but seems far less likely). In short, this patch adds an extra tuning knob for those clients trying to get the last bit of performance squeezed out of their hash containers. Casual users of the hash containers will not notice the introduction of this tuning knob. Those clients who swear by power-of-2 hash containers can now opt-in to that strategy. Clients who prefer a prime number of buckets can continue as they have. by Howard Hinnant · 12 years ago
  98. 820e007 link to Marshall's notes. by Howard Hinnant · 12 years ago
  99. 518d150 mark operator new(std::nothrow) as noalias (aka __attribute__((malloc)) by Nuno Lopes · 12 years ago
  100. 2d62229 Fixed a bug regarding result_of reported by Sven Behne. The fix is C++11 only mainly because result_of is a variadic beast and working with variadics is just such a problem in C++03 mode. This should bring result_of up to full conformance with the C++11 spec. by Howard Hinnant · 12 years ago