Howard Hinnant
|
ba31cbdbca
|
Reduced copying cost of tuple_cat from quadratic to linear.
llvm-svn: 121655
|
2010-12-12 23:04:37 +00:00 |
Howard Hinnant
|
7f64810bc8
|
LWG 1385 [FCD] tuple_cat should be a single variadic signature (http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#1385). This issue is only in Ready status, meaning it is not official, but probably will be this March in Madrid. It was tentatively accepted in Batavia with the previso that Bill and I didn't have any problems implementing it. This is my part of that agreement.
llvm-svn: 121619
|
2010-12-11 20:47:50 +00:00 |
Howard Hinnant
|
d4a83d078c
|
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.
llvm-svn: 121600
|
2010-12-11 00:05:19 +00:00 |
Michael J. Spencer
|
f5799be4a8
|
Add CMake build and fix major Linux blockers.
llvm-svn: 121510
|
2010-12-10 19:47:54 +00:00 |
Howard Hinnant
|
966b5a3157
|
N3158 Missing preconditions for default-constructed match_result objects
llvm-svn: 121282
|
2010-12-08 21:07:55 +00:00 |
Howard Hinnant
|
b5452b3db5
|
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.
llvm-svn: 121267
|
2010-12-08 17:20:28 +00:00 |
Howard Hinnant
|
c5f5f0a166
|
atomics ...
llvm-svn: 121204
|
2010-12-07 23:24:41 +00:00 |
Howard Hinnant
|
c772a62096
|
Work on <atomic> continues. The file size is actually sane now...
llvm-svn: 121181
|
2010-12-07 20:46:14 +00:00 |
Howard Hinnant
|
9847abacb1
|
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.
llvm-svn: 121064
|
2010-12-06 23:10:08 +00:00 |
Howard Hinnant
|
1596c4531b
|
N3189 Observers for the three handler functions
llvm-svn: 120712
|
2010-12-02 16:45:21 +00:00 |
Howard Hinnant
|
92e3718b13
|
Implemented N3194
llvm-svn: 120458
|
2010-11-30 20:23:32 +00:00 |
Howard Hinnant
|
6fd5c65095
|
Minor fixup in <ratio> and add optional support for shared_mutex and upgrade_mutex which must be opted into with #define _LIBCPP_SHARED_LOCK
llvm-svn: 120258
|
2010-11-28 19:41:07 +00:00 |
Howard Hinnant
|
0c6a0fe7fb
|
Add template alias emulation to <ratio>
llvm-svn: 120098
|
2010-11-24 17:05:06 +00:00 |
Howard Hinnant
|
e3120ed1bf
|
N3188 - Revision to N3113: Async Launch Policies (CH 36)
llvm-svn: 120027
|
2010-11-23 18:33:54 +00:00 |
Howard Hinnant
|
3dc6455ff0
|
N3191: C++ Timeout Specification
llvm-svn: 119909
|
2010-11-20 19:16:30 +00:00 |
Howard Hinnant
|
092980dd65
|
N3123
llvm-svn: 119906
|
2010-11-20 18:25:22 +00:00 |
Howard Hinnant
|
ca74048398
|
N3142. Many of these traits are just placeholders with medium quality emulation; waiting on compiler intrinsics to do it right.
llvm-svn: 119854
|
2010-11-19 22:17:28 +00:00 |
Howard Hinnant
|
d518d1c807
|
LWG 1522
llvm-svn: 119710
|
2010-11-18 17:34:48 +00:00 |
Howard Hinnant
|
908484b147
|
LWG 1439
llvm-svn: 119703
|
2010-11-18 17:01:36 +00:00 |
Howard Hinnant
|
48d05bd26c
|
LWG 1339
llvm-svn: 119699
|
2010-11-18 16:13:03 +00:00 |
Howard Hinnant
|
fb34010258
|
LWG 1432
llvm-svn: 119611
|
2010-11-18 01:47:02 +00:00 |
Howard Hinnant
|
a4a1ef1fc2
|
LWG 1404
llvm-svn: 119609
|
2010-11-18 01:40:00 +00:00 |
Howard Hinnant
|
d09f711dc2
|
LWG 1325
llvm-svn: 119571
|
2010-11-17 21:53:14 +00:00 |
Howard Hinnant
|
5ba1459c4c
|
LWG 1323
llvm-svn: 119560
|
2010-11-17 21:11:40 +00:00 |
Howard Hinnant
|
601afb30ec
|
LWG 1191
llvm-svn: 119545
|
2010-11-17 19:52:17 +00:00 |
Howard Hinnant
|
ef6168357a
|
LWG 1118
llvm-svn: 119541
|
2010-11-17 19:22:43 +00:00 |
Howard Hinnant
|
57d1ebcc38
|
Update <string> to use allocator_traits.
llvm-svn: 119522
|
2010-11-17 17:55:08 +00:00 |
Howard Hinnant
|
412dbebe1b
|
license change
llvm-svn: 119395
|
2010-11-16 22:09:02 +00:00 |
Howard Hinnant
|
9b35c8275c
|
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';
}
llvm-svn: 119388
|
2010-11-16 21:33:17 +00:00 |
Howard Hinnant
|
c4931c4746
|
I have reverted all contributions made by Jesse Towner in revision 110724
llvm-svn: 119383
|
2010-11-16 21:10:23 +00:00 |
Howard Hinnant
|
007b26be68
|
Fixed bug in random_shuffle to avoid swapping with self
llvm-svn: 117098
|
2010-10-22 15:26:39 +00:00 |
Howard Hinnant
|
a7c2f3eac3
|
[atomics.types.address]
llvm-svn: 117033
|
2010-10-21 17:44:19 +00:00 |
Howard Hinnant
|
f9c02e15c4
|
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.
llvm-svn: 116860
|
2010-10-19 21:22:10 +00:00 |
Howard Hinnant
|
d89b01e521
|
atomic_char
llvm-svn: 116813
|
2010-10-19 16:51:18 +00:00 |
Howard Hinnant
|
b2b5513dcc
|
Changing <atomic> to follow Design A
llvm-svn: 116742
|
2010-10-18 20:39:07 +00:00 |
Howard Hinnant
|
10e4a48a26
|
Convert __thread_local_data to the singleton pattern
llvm-svn: 116500
|
2010-10-14 19:18:04 +00:00 |
Howard Hinnant
|
a65a935ba4
|
Bug 7983 fixed by Bernhard Rosenkraenzer
llvm-svn: 116487
|
2010-10-14 17:11:39 +00:00 |
Howard Hinnant
|
e79d71e2e3
|
Patch by Marshall Clow to make the assignment operators of piecewise_constant_distribution and piecewise_linear_distribution exception safe.
llvm-svn: 116404
|
2010-10-13 14:37:09 +00:00 |
Howard Hinnant
|
0f444b3b16
|
Corrected an inconsistency with recent changes in tuple, and perfect forwarding within bind
llvm-svn: 115930
|
2010-10-07 18:03:23 +00:00 |
Howard Hinnant
|
772699070e
|
Make flag type configurable by the compiler
llvm-svn: 115614
|
2010-10-05 14:02:23 +00:00 |
Howard Hinnant
|
69c3cb85ab
|
Thanks Sebastian\!
llvm-svn: 115612
|
2010-10-05 13:38:23 +00:00 |
Howard Hinnant
|
668523a1b8
|
Filling out the infrastructure in <atomic>
llvm-svn: 115577
|
2010-10-04 23:55:35 +00:00 |
Howard Hinnant
|
d5a97fc683
|
__has_feature crutch
llvm-svn: 115540
|
2010-10-04 19:01:30 +00:00 |
Howard Hinnant
|
2b672e24a5
|
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...
llvm-svn: 115538
|
2010-10-04 18:52:54 +00:00 |
Howard Hinnant
|
2ec672fff5
|
Tweak to make clang blocks work with std::functional (very fragile)
llvm-svn: 115461
|
2010-10-03 13:59:56 +00:00 |
Howard Hinnant
|
748a5279b1
|
[atomics.flag] completed. Initialization is not working on clang and can't be made to work without defaulted default constructors.
llvm-svn: 115207
|
2010-09-30 21:05:29 +00:00 |
Howard Hinnant
|
a31e741ac9
|
Name change of intrinsics as suggested by Jeffrey Yasskin
llvm-svn: 115145
|
2010-09-30 14:04:35 +00:00 |
Howard Hinnant
|
88efc1c7a5
|
Contemplating this <atomic> reorganization...
llvm-svn: 115087
|
2010-09-29 21:20:03 +00:00 |
Howard Hinnant
|
7387390d6e
|
Wrestling with the slowly dawning realization that <atomic> isn't implementable on any compiler at my disposal...
llvm-svn: 115054
|
2010-09-29 18:13:54 +00:00 |
Howard Hinnant
|
cfe0b0a1ab
|
[atomics.order]
llvm-svn: 114966
|
2010-09-28 17:13:38 +00:00 |