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
|
e87ad178cc
|
Secure __next_prime from overflowing
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@117650 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-29 14:10:30 +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
|
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
|
1348fba3e2
|
Bug 8254 by Bernhard Rosenkraenzer
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@115430 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-10-02 23:23:25 +00:00 |
|
Howard Hinnant
|
d2a9251977
|
Experimenting with a new forward fomulation (kudos Daniel Kruegler), updated insert iterators to work better with pproxies, and doubled the speed of __next_prime.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113731 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-13 01:43:27 +00:00 |
|
Nick Kledzik
|
c7e4d82bc0
|
<rdar://problem/8279559> [libstdcxx] use new linker options to make symbols non-weak
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113616 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-10 20:42:36 +00:00 |
|
Howard Hinnant
|
bfd5530c06
|
Fix whitespace
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113089 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-04 23:46:48 +00:00 |
|
Howard Hinnant
|
73d21a4f07
|
Changed __config to react to all of clang's currently documented has_feature flags, and renamed _LIBCPP_MOVE to _LIBCPP_HAS_NO_RVALUE_REFERENCES to be more consistent with the rest of the libc++'s flags, and with clang's nomenclature.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113086 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-04 23:28:19 +00:00 |
|
Daniel Dunbar
|
04acacadca
|
Fix typos, noticed by Clang.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113061 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-04 03:15:51 +00:00 |
|
Howard Hinnant
|
e6e4d01553
|
[futures.atomic_future] and notify_all_at_thread_exit. This completes the header <future> and all of Chapter 30 (for C++0x enabled compilers).
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113017 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-03 21:46:37 +00:00 |
|
Howard Hinnant
|
99be8237db
|
[futures.shared_future]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@112990 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-09-03 18:39:25 +00:00 |
|
Howard Hinnant
|
54da338f59
|
[futures.task] and [futures.async]. Requires variadics and rvalue-ref support.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@112500 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-08-30 18:46:21 +00:00 |
|
Howard Hinnant
|
47499b162a
|
future continues ...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@112284 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-08-27 20:10:19 +00:00 |
|
Howard Hinnant
|
a652172d86
|
Getting started on <future>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@112061 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-08-25 17:32:05 +00:00 |
|
Howard Hinnant
|
d510977c4d
|
Remove tabs
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111778 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-08-22 13:53:14 +00:00 |
|
Howard Hinnant
|
16e6e1d72f
|
Fixing whitespace problems
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@111751 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-08-22 00:03:27 +00:00 |
|
Howard Hinnant
|
d444470d6c
|
now works with -fno-exceptions and -fno-rtti
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@110828 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-08-11 17:04:31 +00:00 |
|
Howard Hinnant
|
ad2a7ab9a9
|
continued regex development...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@109512 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-07-27 17:24:17 +00:00 |
|
Howard Hinnant
|
17615b040d
|
A good start on ecma regex's. Maybe even feature complete, not sure yet. Also an unrelated fix to is_constructible thanks to Daniel Krugler.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@109479 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-07-27 01:25:38 +00:00 |
|
Howard Hinnant
|
8c2c18d57c
|
Continuing to work through regex, and updated libcxx_by_chapter.pdf with weekly test results
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@106790 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-06-24 21:28:00 +00:00 |
|
Howard Hinnant
|
f409d2f2fc
|
Finished [re.traits]. I'd like to acknowledge the help of Bjorn Reese with <regex>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@106478 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-06-21 21:01:43 +00:00 |
|
Howard Hinnant
|
3257c9853f
|
Just getting our toes wet on <regex>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@106187 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-06-17 00:34:59 +00:00 |
|
Howard Hinnant
|
21aefc3a61
|
[util.smartptr.hash]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@105393 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-06-03 16:42:57 +00:00 |
|
Howard Hinnant
|
a6a062df66
|
[string.conversions]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@105336 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-06-02 18:20:39 +00:00 |
|
Howard Hinnant
|
d23b464e21
|
[conversions.string]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@105254 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-31 20:58:54 +00:00 |
|
Howard Hinnant
|
87d1a8a4d8
|
[locale.stdcvt]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@105174 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-30 21:39:41 +00:00 |
|
Howard Hinnant
|
ed2c2916b2
|
[except.nested]
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104850 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-27 17:06:52 +00:00 |
|
Howard Hinnant
|
c326721e65
|
Completed [alg.random.shuffle].
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104708 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-26 17:49:34 +00:00 |
|
Howard Hinnant
|
0bfe8809b4
|
For compiling on FreeBSD
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104616 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-25 17:25:25 +00:00 |
|
Howard Hinnant
|
adff4895b2
|
patch by Jeffrey Yasskin for porting to Ubuntu Hardy. Everything was accepted except there were some bug fixes needed in <locale> for the __nolocale_* series. For the apple branch I ended up using templates instead of the var_args solution because it seemed both safer and more efficient.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104516 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-24 17:49:41 +00:00 |
|
Nick Kledzik
|
76fdaa7c70
|
Add set_new_handler and nothrow implementations
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104073 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-18 22:17:13 +00:00 |
|
Nick Kledzik
|
804b6e73d4
|
add headers and implementation for <new>, <exception>, and <typeinfo>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103795 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-14 20:19:37 +00:00 |
|
Howard Hinnant
|
f5256e16df
|
Wiped out some non-ascii characters that snuck into the copyright.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103516 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-11 21:36:01 +00:00 |
|
Howard Hinnant
|
bc8d3f97eb
|
libcxx initial import
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-05-11 19:42:16 +00:00 |
|