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. 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
  6. 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
  7. 1dc6f7a Don't neglect to "return *this". by Argyrios Kyrtzidis · 12 years ago
  8. 75536ba Holger Arnold: Correct the use and testing of __GNUC__ and __GNUC_MINOR__ in <__config>. by Howard Hinnant · 12 years ago
  9. 95c0e9f Make vector::iterator and string::iterator more resilient against overly generic relational operators. by Howard Hinnant · 12 years ago
  10. 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
  11. 8d36c43 Bump _LIBCPP_VERSION to 1002 by Howard Hinnant · 12 years ago
  12. 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
  13. 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
  14. 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
  15. 7eb9f1e Align <atomic> with clang r163964 which disallows const _Atomic types. by Howard Hinnant · 12 years ago
  16. 33be35e Dimitry Andric: many visibility fixes. Howard: Much appreciated. Can you send me a patch to CREDITS.TXT? by Howard Hinnant · 12 years ago
  17. 5c90cba Dimitry Andric: FreeBSD porting tweaks for PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER by Howard Hinnant · 12 years ago
  18. 460b4ca Some minor mingw64 porting tweaks from Glen. by Howard Hinnant · 12 years ago
  19. cf115d2 Change sleep_for, sleep_until, and the condition_variable timed wait by Howard Hinnant · 12 years ago
  20. c417a80 Hyeon-bin Jeong: libc++ fails to create any classes inherit from basic_ios if they by Howard Hinnant · 12 years ago
  21. a516028 Michel Morin: My previous fix for C++03 was incomplete. by Howard Hinnant · 12 years ago
  22. 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
  23. d305d3c Hyeon-Bin Jeong: 1. sync() should reset it’s external buffer pointers. by Howard Hinnant · 12 years ago
  24. 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
  25. e7d59f2 Fixed order of calling use_facet vs setbuf in basic_filebuf default constructor. by Howard Hinnant · 12 years ago
  26. 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
  27. 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
  28. 96c60b4 Patch contributed by Dev Dude for mingw64 port. by Howard Hinnant · 12 years ago
  29. 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
  30. 4ae952a Consistently label __bit_array as a struct, not a class. by Howard Hinnant · 12 years ago
  31. 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
  32. 584db42 std::equal operating on non-const __bit_iterators was not working. This fixes it. by Howard Hinnant · 12 years ago
  33. 4b2f420 Performance tweaking rotate. by Howard Hinnant · 12 years ago
  34. 5fec82d Implement [util.smartptr.shared.atomic]. This is the last unimplemented by Howard Hinnant · 12 years ago
  35. 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
  36. 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
  37. f3d62ea locale::id really needs to be constructed at compile time. by Howard Hinnant · 12 years ago
  38. 0405cc4 libc++: switch from using _ATTRIBUTE(noreturn) (which conflicts with a by Richard Smith · 12 years ago
  39. 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
  40. 8bf01dd noexcept applied to <future>. by Howard Hinnant · 12 years ago
  41. 6e1d851 noexcept applied to <thread>. by Howard Hinnant · 12 years ago
  42. c8f7413 noexcept applied to <condition_variable>. by Howard Hinnant · 12 years ago
  43. 499c61f noexcept and constexpr applied to <mutex>. by Howard Hinnant · 12 years ago
  44. 46623a0 noexcept and constexpr applied to <regex>. by Howard Hinnant · 12 years ago
  45. f57bd56 noexcept and constexpr applied to <ios>. by Howard Hinnant · 12 years ago
  46. bd14308 noexcept applied to <valarray>. by Howard Hinnant · 12 years ago
  47. 410f2de constexpr applied to <complex>. by Howard Hinnant · 12 years ago
  48. c83960a noexcept applied to <random>. by Howard Hinnant · 12 years ago
  49. d06a640 noexcept applied to <iterator>. by Howard Hinnant · 12 years ago
  50. 08bce17 constexpr applied to <array>. by Howard Hinnant · 12 years ago
  51. 03d7181 constexpr applied to <string>. by Howard Hinnant · 12 years ago
  52. e41f475 Further tweaks on relaxing complete type checking for function. by Howard Hinnant · 12 years ago
  53. 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
  54. 473f838 Applied constexpr to <chrono>. by Howard Hinnant · 12 years ago
  55. 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
  56. 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
  57. 46e9493 Appy constexpr to <memory>. Picked up a few missing noexcepts as well. by Howard Hinnant · 12 years ago
  58. 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
  59. 90d8723 Apply constexpr to <bitset>. by Howard Hinnant · 12 years ago
  60. 74f26f2 Apply noexcept to tuple. by Howard Hinnant · 12 years ago
  61. 4eebfc3 As a conforming extension give tuple a noexcept default constructor conditionalized on its held types. by Howard Hinnant · 12 years ago
  62. 5394c1e Give tuple a constexpr default constructor. by Howard Hinnant · 12 years ago
  63. 9b12f23 Apply noexcept to those functions implemented in <cstdlib> as a conforming extension. by Howard Hinnant · 12 years ago
  64. cac0c46 Apply noexcept to those functions implemented in <cmath> as a conforming extension. by Howard Hinnant · 12 years ago
  65. 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
  66. 518d150 mark operator new(std::nothrow) as noalias (aka __attribute__((malloc)) by Nuno Lopes · 12 years ago
  67. 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
  68. fe59276 Revert pair constructors back to using is_convertible instead of is_constructible. This should pull things into alignment with the final draft. Fixes http://llvm.org/bugs/show_bug.cgi?id=13063#add_comment. by Howard Hinnant · 12 years ago
  69. dbd9eac Fix dangling else clause. Bug found and fixed by Dimitry Andric. by Howard Hinnant · 12 years ago
  70. 6467aeb Fix the new _ALIGNAS_TYPE per instructions supplied by Eli Friedman. by Howard Hinnant · 12 years ago
  71. cbdd089 Protect use of alignas against older versions of clang by Howard Hinnant · 12 years ago
  72. 635ce1d The rules for emplace in map, multimap, unordered_map and unordered_multimap changed a while back and I'm just now updating to these new rules. In a nutshell, you've got to know you're emplacing to a pair and use one of pair's constructors. I made one extension: If you want to emplace the key and default construct the mapped_type, you can just emplace(key), as opposed to emplace(piecewise_construct, forward_as_tuple(key), forward_as_tuple()). by Howard Hinnant · 12 years ago
  73. 3e3e5eb Fix memory corruption bug found and fixed by Andrew C. Morrow. by Howard Hinnant · 12 years ago
  74. 9b763e0 Revert fix to http://llvm.org/bugs/show_bug.cgi?id=12867 for the reason now included in the code comment. by Howard Hinnant · 12 years ago
  75. 0855dde Revert my _LIBCPP_INLINE_VISIBILITY changes, r157097 and r157107 by Douglas Gregor · 12 years ago
  76. f20f0d3 valarray resize should not be _LIBCPP_INLINE_VISIBILITY by Douglas Gregor · 12 years ago
  77. e9e4b85 Move _LIBCPP_VISIBLE_INLINE from the out-of-line definitions of member by Douglas Gregor · 12 years ago
  78. 7626576 Protect __shared_weak_count::__get_deleter declaration with _LIBCPP_NO_RTTI. Fixes http://llvm.org/bugs/show_bug.cgi?id=12867 by Howard Hinnant · 12 years ago
  79. ffa7fbe Fix several bugs in find/count specialized for bits. by Howard Hinnant · 12 years ago
  80. b3cf4b5 Add friends __count_bool_true and __count_bool_false to __bit_iterator. by Howard Hinnant · 12 years ago
  81. f867f63 SFINAE __bit_iterator such that it will only get instantiated with a container that has the nested type __storage_type. This prevents accidental instantiation such as in http://llvm.org/bugs/show_bug.cgi?id=12755. This fixes http://llvm.org/bugs/show_bug.cgi?id=12755. by Howard Hinnant · 12 years ago
  82. d2da6d2 Constrain __bind functor constructor such that it won't accidentally get used as a copy constructor from a non-const lvalue. Fixes <rdar://problem/11359080>. by Howard Hinnant · 12 years ago
  83. f07a529 Change std::abs from a template function to three overloads for float, double and long double. by Howard Hinnant · 12 years ago
  84. 87073e4 Greatly scale back ambitions of emulating move semantics in C++03 mode. It was causing more problems than it solved. This fixes http://llvm.org/bugs/show_bug.cgi?id=12704. by Howard Hinnant · 12 years ago
  85. 300c67a Apply noexcept and constexpr to <atomic>. by Howard Hinnant · 12 years ago
  86. 6186c7f Switch libc++ from __atomic_* builtins to __c11_atomic_* builtins. by Richard Smith · 12 years ago
  87. b229209 Now that clang supports doing the right thing with regard to atomic by David Chisnall · 12 years ago
  88. 0341c82 Fix use of __atomic_is_lock_free() intrinsic. by David Chisnall · 12 years ago
  89. 616e92d Put std::piecewise_construct_t back into the dylib for ABI stability. When clients are in C++11/constexpr mode this will be safely ignored because piecewise_construct is then declared with internal linkage. by Howard Hinnant · 12 years ago
  90. 2a5349b constexpr support for <utility>. Patch contributed by Jonathan Sauer. by Howard Hinnant · 12 years ago
  91. 8efd3da Update <random> with constexpr support. Patch contributed by Jonathan Sauer. by Howard Hinnant · 12 years ago
  92. 60cb7d2 Update <limits> with constexpr support. Patch contributed by Jonathan Sauer. by Howard Hinnant · 12 years ago
  93. 27b4fd3 This is an initial commit of constexpr support as proposed by Richard Smith. This by no means completes constexpr support. Indeed, it hardly scratches the surface. All it does is lay the foundation in <__config> and changes those few places in the library that are already using that foundation. by Howard Hinnant · 12 years ago
  94. dc1345f I believe tuple is still under development in the standard. Daniel Krugler is/will be making convincing arguments that a modified form of LWG 2051 (currently NAD Future) is easily acheivable and desirable. He has demonstrated that a tuple<T...> where all of the T are implicitly convertible from U... should have a tuple constructor that is also implicit, instead of explicit. This would support the use cases in LWG 2051 while not undermining T... with explicit conversions from U.... This check-in is an experimental implementation of Daniel's work. I believe this work to be mature enough to warrant inclusion into libc++. If anyone sees real-world problems that this check in causes, please let me know and I will revert it, and provide the feedback to the LWG. by Howard Hinnant · 12 years ago
  95. 9aa4e11 It appears that the standard accidentally removed the default constructor for error_category. I'm putting it back in. This fixes http://llvm.org/bugs/show_bug.cgi?id=12321. by Howard Hinnant · 12 years ago
  96. f2533a8 Make sure [at_]quick_exit is in std:: by David Chisnall · 12 years ago
  97. 558ae17 Fix moneypunct_byname algorithm to more accurately represent C locales in C++. by Jeffrey Yasskin · 12 years ago
  98. 05b57d5 Change some smart_ptr == 0 to smart_ptr == nullptr. Fixes http://llvm.org/bugs/show_bug.cgi?id=12185. by Howard Hinnant · 12 years ago
  99. b56a4ad Define _WCHAR_T in solaris/wchar.h. This fixes a bug where Solaris 10 headers by David Chisnall · 12 years ago
  100. b6e7c30 Fix MSVC / Sun #ifdef ordering. Remove another #if-nothing-#endif. by David Chisnall · 12 years ago