Howard Hinnant
|
eee7698bac
|
The implementation of the new definition of result_of (N3123) resulted in some test failures in [func.memfn] that I failed to previously notice. This corrects that mistake.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121600 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-11 00:05:19 +00:00 |
|
Michael J. Spencer
|
626916fc25
|
Add CMake build and fix major Linux blockers.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121510 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-10 19:47:54 +00:00 |
|
Howard Hinnant
|
31aaf55f4c
|
N3158 Missing preconditions for default-constructed match_result objects
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121282 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-08 21:07:55 +00:00 |
|
Howard Hinnant
|
770d1c4ea7
|
After a long break to wait for the atomic spec to settle, this completes the library part of <atomic>. It currently won't even parse as it depends on the existence of the intrinsics specified at http://libcxx.llvm.org/atomic_design_a.html. Everything has been tested using fake intrinsics which have now been removed. As the intrinsics come online, the ATOMIC_* macros will need to be adjusted to reflect which operations are lock-free. These macros will probably need to be #ifdef'd for each supported platform.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121267 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-08 17:20:28 +00:00 |
|
Howard Hinnant
|
d2f6afbfab
|
atomics ...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121204 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-07 23:24:41 +00:00 |
|
Howard Hinnant
|
91e2f26fec
|
Work on <atomic> continues. The file size is actually sane now...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121181 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-07 20:46:14 +00:00 |
|
Howard Hinnant
|
4777bf2799
|
Getting <atomic> warmed back up. We have a hopefully more stable spec now. And I believe the intrinsic spec at http://libcxx.llvm.org/atomic_design_a.html is still good.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@121064 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-06 23:10:08 +00:00 |
|
Howard Hinnant
|
a445151f4a
|
N3189 Observers for the three handler functions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120712 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-12-02 16:45:21 +00:00 |
|
Howard Hinnant
|
7de47902d0
|
Implemented N3194
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120458 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-30 20:23:32 +00:00 |
|
Howard Hinnant
|
ac417faebc
|
Minor fixup in <ratio> and add optional support for shared_mutex and upgrade_mutex which must be opted into with #define _LIBCPP_SHARED_LOCK
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120258 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-28 19:41:07 +00:00 |
|
Howard Hinnant
|
d397d03651
|
Add template alias emulation to <ratio>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120098 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-24 17:05:06 +00:00 |
|
Howard Hinnant
|
6689564040
|
N3188 - Revision to N3113: Async Launch Policies (CH 36)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120027 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-23 18:33:54 +00:00 |
|
Howard Hinnant
|
f8f852138f
|
N3191: C++ Timeout Specification
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119909 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-20 19:16:30 +00:00 |
|
Howard Hinnant
|
f048fe3a09
|
N3123
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119906 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-20 18:25:22 +00:00 |
|
Howard Hinnant
|
1468b668aa
|
N3142. Many of these traits are just placeholders with medium quality emulation; waiting on compiler intrinsics to do it right.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119854 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-19 22:17:28 +00:00 |
|
Howard Hinnant
|
995676a98e
|
LWG 1522
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119710 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-18 17:34:48 +00:00 |
|
Howard Hinnant
|
9650b6cce3
|
LWG 1439
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119703 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-18 17:01:36 +00:00 |
|
Howard Hinnant
|
2f6a627394
|
LWG 1339
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119699 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-18 16:13:03 +00:00 |
|
Howard Hinnant
|
278bf2d289
|
LWG 1432
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119611 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-18 01:47:02 +00:00 |
|
Howard Hinnant
|
47761071be
|
LWG 1404
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119609 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-18 01:40:00 +00:00 |
|
Howard Hinnant
|
34d6b19721
|
LWG 1325
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119571 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-17 21:53:14 +00:00 |
|
Howard Hinnant
|
7b2cb48cc1
|
LWG 1323
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119560 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-17 21:11:40 +00:00 |
|
Howard Hinnant
|
cd2254b454
|
LWG 1191
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119545 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-17 19:52:17 +00:00 |
|
Howard Hinnant
|
86ed8aefb2
|
LWG 1118
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119541 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-17 19:22:43 +00:00 |
|
Howard Hinnant
|
e32b5e2f23
|
Update <string> to use allocator_traits.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119522 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-17 17:55:08 +00:00 |
|
Howard Hinnant
|
b64f8b07c1
|
license change
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119395 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-16 22:09:02 +00:00 |
|
Howard Hinnant
|
28dbbe0596
|
Dave Zarzycki showed how the efficiency of shared_ptr could be significantly
increased. The following program is running 49% faster:
#include <iostream>
#include <memory>
#include <chrono>
#include <vector>
#include "chrono_io"
int main()
{
typedef std::chrono::high_resolution_clock Clock;
Clock::time_point t0 = Clock::now();
{
std::shared_ptr<int> p(new int (1));
std::vector<std::shared_ptr<int> > v(1000000, p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
v.insert(v.begin(), p);
}
Clock::time_point t1 = Clock::now();
std::cout << (t1-t0) << '\n';
}
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119388 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-16 21:33:17 +00:00 |
|
Howard Hinnant
|
726a76fb47
|
I have reverted all contributions made by Jesse Towner in revision 110724
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119383 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-11-16 21:10:23 +00:00 |
|
Howard Hinnant
|
4e59948249
|
Fixed bug in random_shuffle to avoid swapping with self
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@117098 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-22 15:26:39 +00:00 |
|
Howard Hinnant
|
bce9c3132d
|
[atomics.types.address]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@117033 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-21 17:44:19 +00:00 |
|
Howard Hinnant
|
5bbe97ddaa
|
atomic_schar, atomic_uchar, atomic_short, atomic_ushort, atomic_int, atomic_uint, atomic_long, atomic_ulong, atomic_llong, atomic_ullong, atomic_char16_t, atomic_char32_t and atomic_wchar_t.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@116860 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-19 21:22:10 +00:00 |
|
Howard Hinnant
|
e738501eb3
|
atomic_char
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@116813 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-19 16:51:18 +00:00 |
|
Howard Hinnant
|
21ef47f436
|
Changing <atomic> to follow Design A
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@116742 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-18 20:39:07 +00:00 |
|
Howard Hinnant
|
5306d68019
|
Convert __thread_local_data to the singleton pattern
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@116500 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-14 19:18:04 +00:00 |
|
Howard Hinnant
|
8177207f3c
|
Bug 7983 fixed by Bernhard Rosenkraenzer
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@116487 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-14 17:11:39 +00:00 |
|
Howard Hinnant
|
3c143ad882
|
Patch by Marshall Clow to make the assignment operators of piecewise_constant_distribution and piecewise_linear_distribution exception safe.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@116404 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-13 14:37:09 +00:00 |
|
Howard Hinnant
|
ffb9a4e235
|
Corrected an inconsistency with recent changes in tuple, and perfect forwarding within bind
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115930 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-07 18:03:23 +00:00 |
|
Howard Hinnant
|
6cac2c2c9c
|
Make flag type configurable by the compiler
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115614 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-05 14:02:23 +00:00 |
|
Howard Hinnant
|
b4ac745466
|
Thanks Sebastian\!
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115612 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-05 13:38:23 +00:00 |
|
Howard Hinnant
|
002f1d341b
|
Filling out the infrastructure in <atomic>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115577 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-04 23:55:35 +00:00 |
|
Howard Hinnant
|
26994e383c
|
__has_feature crutch
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115540 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-04 19:01:30 +00:00 |
|
Howard Hinnant
|
611fdaf229
|
Still working on the basic design of <atomic>. I'm working towards a system by which the compiler only needs to define the strongest intrinsics it can. Weaker atomics in the library automatically try stronger and stronger variants, picking the weakest compiler intrinsic available. If no compiler intrinsics are available for a given operation, the library locks a mutex and does the job. Better documentation to follow...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115538 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-04 18:52:54 +00:00 |
|
Howard Hinnant
|
7c0c696afd
|
Tweak to make clang blocks work with std::functional (very fragile)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115461 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-03 13:59:56 +00:00 |
|
Howard Hinnant
|
79101aec3a
|
[atomics.flag] completed. Initialization is not working on clang and can't be made to work without defaulted default constructors.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115207 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-30 21:05:29 +00:00 |
|
Howard Hinnant
|
f701e25c49
|
Name change of intrinsics as suggested by Jeffrey Yasskin
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115145 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-30 14:04:35 +00:00 |
|
Howard Hinnant
|
767ae2b483
|
Contemplating this <atomic> reorganization...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115087 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-29 21:20:03 +00:00 |
|
Howard Hinnant
|
ed760f40b7
|
Wrestling with the slowly dawning realization that <atomic> isn't implementable on any compiler at my disposal...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115054 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-29 18:13:54 +00:00 |
|
Howard Hinnant
|
d1176e29b0
|
[atomics.order]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114966 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-28 17:13:38 +00:00 |
|
Howard Hinnant
|
8f73c63658
|
Getting started on <atomic>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114887 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-27 21:17:38 +00:00 |
|
Howard Hinnant
|
d05c6e646b
|
Bugzilla 8231
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114851 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-27 18:09:23 +00:00 |
|