From 3cd7c1850f8b69b13d157d6dad8c577866efee7b Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Thu, 5 Apr 2012 11:59:04 +0200 Subject: [PATCH 01/55] Fixing hard-coded version in .pc file --- adobe-source-libraries.pc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adobe-source-libraries.pc b/adobe-source-libraries.pc index ccded20..1f44686 100644 --- a/adobe-source-libraries.pc +++ b/adobe-source-libraries.pc @@ -3,6 +3,6 @@ includedir=/usr/include Name: adobe-source-libraries Description: General purpose addon to STL and Boost. -Version: 1.0.43 +Version: @version@ Libs: -lasl_dev Cflags: -I${includedir}/adobe From d3ec279356956f0ffb4a38827e316531a8c654d8 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Thu, 5 Apr 2012 12:01:17 +0200 Subject: [PATCH 02/55] Fixing hard-coded version in .pc file --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 2d0ec4a..7864f1f 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 10%{?dist} +Release: 11%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -131,6 +131,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Thu Apr 5 2012 Alec Leamas 1.0.43-11 +- Fixing hard-coded version in .pc file + * Tue Apr 3 2012 Alec Leamas 1.0.43-10 - Adding README.fedora, typos in spec fixed. From 127694d70f5d0c59ba5b2ea088fb99ca62a296ac Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 18 Jul 2012 10:36:13 -0500 Subject: [PATCH 03/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 7864f1f..6f7daf5 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 11%{?dist} +Release: 12%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -131,6 +131,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Jul 18 2012 Fedora Release Engineering - 1.0.43-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Thu Apr 5 2012 Alec Leamas 1.0.43-11 - Fixing hard-coded version in .pc file From 279addb8be61b41e98b03765b01dbf364d447dd7 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 14:18:12 +0200 Subject: [PATCH 04/55] Handling boost bug 6940 --- adobe-source-libraries.spec | 7 +++-- asl-time-utc.patch | 57 +++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 asl-time-utc.patch diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 6f7daf5..1802b9b 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -18,6 +18,8 @@ Patch0: asl-gcc.patch Patch1: asl-fedora-build-options.patch # https://svn.boost.org/trac/boost/ticket/4647 Patch2: asl-no-concept-check1043.patch +# https://svn.boost.org/trac/boost/ticket/6940 +Patch3: asl-time-utc.patch BuildRequires: boost-build BuildRequires: boost-devel @@ -57,6 +59,7 @@ API and other documentation for Adobe Source Libraries (ASL). %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ @@ -131,8 +134,8 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog -* Wed Jul 18 2012 Fedora Release Engineering - 1.0.43-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild +* Thu Aug 3 2012 Alec Leamas 1.0.43-12 +- Handling boost bug 6940 * Thu Apr 5 2012 Alec Leamas 1.0.43-11 - Fixing hard-coded version in .pc file diff --git a/asl-time-utc.patch b/asl-time-utc.patch new file mode 100644 index 0000000..ee758be --- /dev/null +++ b/asl-time-utc.patch @@ -0,0 +1,57 @@ +diff --git a/adobe/timer.hpp b/adobe/timer.hpp +index 8622e66..c0ef46d 100644 +--- a/adobe/timer.hpp ++++ b/adobe/timer.hpp +@@ -182,7 +182,7 @@ public: + #if ADOBE_PLATFORM_WIN + (void)::QueryPerformanceCounter(&epoch_m); + #elif defined(BOOST_HAS_THREADS) +- boost::xtime_get(&epoch_m, boost::TIME_UTC); ++ boost::xtime_get(&epoch_m, boost::TIME_UTC_); + #elif defined(BOOST_HAS_GETTIMEOFDAY) + gettimeofday(&epoch_m, static_cast(0)); + #endif +@@ -206,7 +206,7 @@ public: + (void)::QueryPerformanceCounter(&split_m); + return (split_m.QuadPart - epoch_m.QuadPart) / static_cast(frequency_m.QuadPart) * double(1e3); + #elif defined(BOOST_HAS_THREADS) +- boost::xtime_get(&split_m, boost::TIME_UTC); ++ boost::xtime_get(&split_m, boost::TIME_UTC_); + return ((split_m.sec - epoch_m.sec) * double(1e3) + (split_m.nsec - epoch_m.nsec) / double(1e6)); + #elif defined(BOOST_HAS_GETTIMEOFDAY) + gettimeofday(&split_m, static_cast(0)); +diff --git a/documentation/html/timer_8hpp_source.html b/documentation/html/timer_8hpp_source.html +index d5fc808..79a7f62 100644 +--- a/documentation/html/timer_8hpp_source.html ++++ b/documentation/html/timer_8hpp_source.html +@@ -200,7 +200,7 @@ + 00182 #if ADOBE_PLATFORM_WIN + 00183 (void)::QueryPerformanceCounter(&epoch_m); + 00184 #elif defined(BOOST_HAS_THREADS) +-00185 boost::xtime_get(&epoch_m, boost::TIME_UTC); ++00185 boost::xtime_get(&epoch_m, boost::TIME_UTC_); + 00186 #elif defined(BOOST_HAS_GETTIMEOFDAY) + 00187 gettimeofday(&epoch_m, static_cast<struct timezone*>(0)); + 00188 #endif +@@ -215,7 +215,7 @@ + 00206 (void)::QueryPerformanceCounter(&split_m); + 00207 return (split_m.QuadPart - epoch_m.QuadPart) / static_cast<double>(frequency_m.QuadPart) * double(1e3); + 00208 #elif defined(BOOST_HAS_THREADS) +-00209 boost::xtime_get(&split_m, boost::TIME_UTC); ++00209 boost::xtime_get(&split_m, boost::TIME_UTC_); + 00210 return ((split_m.sec - epoch_m.sec) * double(1e3) + (split_m.nsec - epoch_m.nsec) / double(1e6)); + 00211 #elif defined(BOOST_HAS_GETTIMEOFDAY) + 00212 gettimeofday(&split_m, static_cast<struct timezone*>(0)); +diff --git a/source/zuid_sys_dep.cpp b/source/zuid_sys_dep.cpp +index 8930dd7..bd54770 100644 +--- a/source/zuid_sys_dep.cpp ++++ b/source/zuid_sys_dep.cpp +@@ -128,7 +128,7 @@ adobe::md5_t::digest_t get_generic_random_info() + #endif + { + #if defined(BOOST_HAS_THREADS) +- boost::xtime_get(&time_m, boost::TIME_UTC); ++ boost::xtime_get(&time_m, boost::TIME_UTC_); + #endif + #if defined(BOOST_HAS_UNISTD_H) + gethostname(hostname_m, 256); From 79e57691c80559678d03f1e064b549033b2e9ac6 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 15:13:35 +0200 Subject: [PATCH 05/55] build try --- adobe-source-libraries.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 1802b9b..1ef047b 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -68,6 +68,7 @@ chmod 644 LICENSE_1_0_0.txt sed -i 's/@optflags@/%{optflags}/g' jamroot.jam sed -i 's/@version@/%{version}/g' %{SOURCE1} +mv boost-build.jam boost-build.nojam %build @@ -136,6 +137,7 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog * Thu Aug 3 2012 Alec Leamas 1.0.43-12 - Handling boost bug 6940 +- Trying to fix build error. * Thu Apr 5 2012 Alec Leamas 1.0.43-11 - Fixing hard-coded version in .pc file From f41c4c0eeed6378f92708d5b3faad039efb60245 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 15:39:36 +0200 Subject: [PATCH 06/55] more build tries --- adobe-source-libraries.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 1ef047b..bb47e80 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -20,6 +20,7 @@ Patch1: asl-fedora-build-options.patch Patch2: asl-no-concept-check1043.patch # https://svn.boost.org/trac/boost/ticket/6940 Patch3: asl-time-utc.patch +Patch4: asl-uninitialized-move.patch BuildRequires: boost-build BuildRequires: boost-devel @@ -60,6 +61,7 @@ API and other documentation for Adobe Source Libraries (ASL). %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ From 55ea41abfd8891706bca1a94194c40a5e9c11f9d Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 15:51:28 +0200 Subject: [PATCH 07/55] adding patch4 --- asl-uninitialized-move.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 asl-uninitialized-move.patch diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch new file mode 100644 index 0000000..3825e9e --- /dev/null +++ b/asl-uninitialized-move.patch @@ -0,0 +1,19 @@ +diff --git a/adobe/once.hpp b/adobe/once.hpp +index 5f005a4..e349b92 100644 +--- a/adobe/once.hpp ++++ b/adobe/once.hpp +@@ -11,12 +11,12 @@ + + /*************************************************************************************************/ + +-#include +- + #if defined(BOOST_HAS_THREADS) + #include + #endif + ++#include ++ + /*************************************************************************************************/ + + namespace adobe { From c62675dfbc7ada8dd1e20fbe67e6d824244f1c56 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 16:16:40 +0200 Subject: [PATCH 08/55] build try --- asl-uninitialized-move.patch | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch index 3825e9e..d4b931d 100644 --- a/asl-uninitialized-move.patch +++ b/asl-uninitialized-move.patch @@ -17,3 +17,34 @@ index 5f005a4..e349b92 100644 /*************************************************************************************************/ namespace adobe { +diff --git a/adobe/vector.hpp b/adobe/vector.hpp +index 926cfa9..2d23e59 100644 +--- a/adobe/vector.hpp ++++ b/adobe/vector.hpp +@@ -354,7 +354,7 @@ typename vector::iterator vector::insert(iterator p, I f, I l, std:: + + if (n < after) { + append_move(last - n, last); +- move_backward(p, last - n, last); ++ adobe::move_backward(p, last - n, last); + std::copy(f, l, p); + } else { + I m = f; +@@ -387,7 +387,7 @@ typename vector::iterator vector::insert_move(iterator p, I f, I l) + + if (n < after) { + append_move(last - n, last); +- move_backward(p, last - n, last); ++ adobe::move_backward(p, last - n, last); + adobe::move(f, l, p); + } else { + I m = f; +@@ -430,7 +430,7 @@ typename vector::iterator vector::insert(iterator p, size_type n, co + + if (n < after) { + append_move(last - n, last); +- move_backward(p, last - n, last); ++ adobe::move_backward(p, last - n, last); + std::fill_n(p, n, x); + } else { + std::uninitialized_fill_n(last, n - after, x); From f333bfd3dc71ce31b7048f70615bda7356f7091a Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 16:36:28 +0200 Subject: [PATCH 09/55] build attempt --- asl-uninitialized-move.patch | 47 +++++++++++++++--------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch index d4b931d..41c7514 100644 --- a/asl-uninitialized-move.patch +++ b/asl-uninitialized-move.patch @@ -18,33 +18,24 @@ index 5f005a4..e349b92 100644 namespace adobe { diff --git a/adobe/vector.hpp b/adobe/vector.hpp -index 926cfa9..2d23e59 100644 +index 2d23e59..8968b59 100644 --- a/adobe/vector.hpp +++ b/adobe/vector.hpp -@@ -354,7 +354,7 @@ typename vector::iterator vector::insert(iterator p, I f, I l, std:: - - if (n < after) { - append_move(last - n, last); -- move_backward(p, last - n, last); -+ adobe::move_backward(p, last - n, last); - std::copy(f, l, p); - } else { - I m = f; -@@ -387,7 +387,7 @@ typename vector::iterator vector::insert_move(iterator p, I f, I l) - - if (n < after) { - append_move(last - n, last); -- move_backward(p, last - n, last); -+ adobe::move_backward(p, last - n, last); - adobe::move(f, l, p); - } else { - I m = f; -@@ -430,7 +430,7 @@ typename vector::iterator vector::insert(iterator p, size_type n, co - - if (n < after) { - append_move(last - n, last); -- move_backward(p, last - n, last); -+ adobe::move_backward(p, last - n, last); - std::fill_n(p, n, x); - } else { - std::uninitialized_fill_n(last, n - after, x); +@@ -319,7 +319,7 @@ void vector::append_move(I f, I l, std::forward_iterator_tag) + size_type n(std::distance(f, l)); + + if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); +- set_finish(uninitialized_move(f, l, end())); ++ set_finish(adobe::uninitialized_move(f, l, end())); + } + + template +@@ -406,7 +406,7 @@ void vector::reserve(size_type n) + if (capacity() < n) { + vector tmp; + tmp.header_m = allocate(get_allocator(), n); +- tmp.header_m->finish() = uninitialized_move(begin(), end(), tmp.end()); ++ tmp.header_m->finish() = adobe::uninitialized_move(begin(), end(), tmp.end()); + swap(tmp); + } + } From e21f3a844995655320211c6569509dead65b69d0 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 19:18:38 +0200 Subject: [PATCH 10/55] Build attempt --- asl-uninitialized-move.patch | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch index 41c7514..27ece49 100644 --- a/asl-uninitialized-move.patch +++ b/asl-uninitialized-move.patch @@ -1,3 +1,16 @@ +diff --git a/adobe/move.hpp b/adobe/move.hpp +index 350000d..5fe6db5 100644 +--- a/adobe/move.hpp ++++ b/adobe/move.hpp +@@ -441,7 +441,7 @@ with move semantics, for movable types, otherwise with copy semantics. + template // O models BidirectionalIterator + inline O move_backward(I& in, O out) +-{ return move_backward(boost::begin(in), boost::end(in), out); } ++{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } + + /*************************************************************************************************/ + diff --git a/adobe/once.hpp b/adobe/once.hpp index 5f005a4..e349b92 100644 --- a/adobe/once.hpp From 1182e784eb1a46d96a347cedc9c82b472a5ae840 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 19:35:31 +0200 Subject: [PATCH 11/55] Build attempt --- asl-uninitialized-move.patch | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch index 27ece49..2cce2e7 100644 --- a/asl-uninitialized-move.patch +++ b/asl-uninitialized-move.patch @@ -1,12 +1,14 @@ diff --git a/adobe/move.hpp b/adobe/move.hpp -index 350000d..5fe6db5 100644 +index 350000d..6c302a2 100644 --- a/adobe/move.hpp +++ b/adobe/move.hpp -@@ -441,7 +441,7 @@ with move semantics, for movable types, otherwise with copy semantics. +@@ -440,8 +440,8 @@ with move semantics, for movable types, otherwise with copy semantics. + */ template // O models BidirectionalIterator - inline O move_backward(I& in, O out) +-inline O move_backward(I& in, O out) -{ return move_backward(boost::begin(in), boost::end(in), out); } ++inline O adobe::move_backward(I& in, O out) +{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } /*************************************************************************************************/ From 5ed0b82de76cc1fa47a77de071b8e3020ab15bf2 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 20:25:01 +0200 Subject: [PATCH 12/55] Build attempt --- asl-uninitialized-move.patch | 116 ++++++- tmp/source_release/adobe/array.hpp | 48 +++ tmp/source_release/adobe/move.hpp | 491 ++++++++++++++++++++++++++ tmp/source_release/adobe/once.hpp | 176 ++++++++++ tmp/source_release/adobe/vector.hpp | 520 ++++++++++++++++++++++++++++ 5 files changed, 1336 insertions(+), 15 deletions(-) create mode 100644 tmp/source_release/adobe/array.hpp create mode 100644 tmp/source_release/adobe/move.hpp create mode 100644 tmp/source_release/adobe/once.hpp create mode 100644 tmp/source_release/adobe/vector.hpp diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch index 2cce2e7..4afe0cb 100644 --- a/asl-uninitialized-move.patch +++ b/asl-uninitialized-move.patch @@ -1,22 +1,81 @@ -diff --git a/adobe/move.hpp b/adobe/move.hpp -index 350000d..6c302a2 100644 ---- a/adobe/move.hpp -+++ b/adobe/move.hpp -@@ -440,8 +440,8 @@ with move semantics, for movable types, otherwise with copy semantics. - */ +diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch +index 2cce2e7..e69de29 100644 +--- a/asl-uninitialized-move.patch ++++ b/asl-uninitialized-move.patch +@@ -1,56 +0,0 @@ +-diff --git a/adobe/move.hpp b/adobe/move.hpp +-index 350000d..6c302a2 100644 +---- a/adobe/move.hpp +-+++ b/adobe/move.hpp +-@@ -440,8 +440,8 @@ with move semantics, for movable types, otherwise with copy semantics. +- */ +- template // O models BidirectionalIterator +--inline O move_backward(I& in, O out) +--{ return move_backward(boost::begin(in), boost::end(in), out); } +-+inline O adobe::move_backward(I& in, O out) +-+{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } +- +- /*************************************************************************************************/ +- +-diff --git a/adobe/once.hpp b/adobe/once.hpp +-index 5f005a4..e349b92 100644 +---- a/adobe/once.hpp +-+++ b/adobe/once.hpp +-@@ -11,12 +11,12 @@ +- +- /*************************************************************************************************/ +- +--#include +-- +- #if defined(BOOST_HAS_THREADS) +- #include +- #endif +- +-+#include +-+ +- /*************************************************************************************************/ +- +- namespace adobe { +-diff --git a/adobe/vector.hpp b/adobe/vector.hpp +-index 2d23e59..8968b59 100644 +---- a/adobe/vector.hpp +-+++ b/adobe/vector.hpp +-@@ -319,7 +319,7 @@ void vector::append_move(I f, I l, std::forward_iterator_tag) +- size_type n(std::distance(f, l)); +- +- if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); +-- set_finish(uninitialized_move(f, l, end())); +-+ set_finish(adobe::uninitialized_move(f, l, end())); +- } +- +- template +-@@ -406,7 +406,7 @@ void vector::reserve(size_type n) +- if (capacity() < n) { +- vector tmp; +- tmp.header_m = allocate(get_allocator(), n); +-- tmp.header_m->finish() = uninitialized_move(begin(), end(), tmp.end()); +-+ tmp.header_m->finish() = adobe::uninitialized_move(begin(), end(), tmp.end()); +- swap(tmp); +- } +- } +diff --git a/tmp/source_release/adobe/move.hpp b/tmp/source_release/adobe/move.hpp +index 350000d..5fe6db5 100644 +--- a/tmp/source_release/adobe/move.hpp ++++ b/tmp/source_release/adobe/move.hpp +@@ -441,7 +441,7 @@ with move semantics, for movable types, otherwise with copy semantics. template // O models BidirectionalIterator --inline O move_backward(I& in, O out) + inline O move_backward(I& in, O out) -{ return move_backward(boost::begin(in), boost::end(in), out); } -+inline O adobe::move_backward(I& in, O out) +{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } /*************************************************************************************************/ -diff --git a/adobe/once.hpp b/adobe/once.hpp +diff --git a/tmp/source_release/adobe/once.hpp b/tmp/source_release/adobe/once.hpp index 5f005a4..e349b92 100644 ---- a/adobe/once.hpp -+++ b/adobe/once.hpp +--- a/tmp/source_release/adobe/once.hpp ++++ b/tmp/source_release/adobe/once.hpp @@ -11,12 +11,12 @@ /*************************************************************************************************/ @@ -32,10 +91,10 @@ index 5f005a4..e349b92 100644 /*************************************************************************************************/ namespace adobe { -diff --git a/adobe/vector.hpp b/adobe/vector.hpp -index 2d23e59..8968b59 100644 ---- a/adobe/vector.hpp -+++ b/adobe/vector.hpp +diff --git a/tmp/source_release/adobe/vector.hpp b/tmp/source_release/adobe/vector.hpp +index 926cfa9..8968b59 100644 +--- a/tmp/source_release/adobe/vector.hpp ++++ b/tmp/source_release/adobe/vector.hpp @@ -319,7 +319,7 @@ void vector::append_move(I f, I l, std::forward_iterator_tag) size_type n(std::distance(f, l)); @@ -45,6 +104,24 @@ index 2d23e59..8968b59 100644 } template +@@ -354,7 +354,7 @@ typename vector::iterator vector::insert(iterator p, I f, I l, std:: + + if (n < after) { + append_move(last - n, last); +- move_backward(p, last - n, last); ++ adobe::move_backward(p, last - n, last); + std::copy(f, l, p); + } else { + I m = f; +@@ -387,7 +387,7 @@ typename vector::iterator vector::insert_move(iterator p, I f, I l) + + if (n < after) { + append_move(last - n, last); +- move_backward(p, last - n, last); ++ adobe::move_backward(p, last - n, last); + adobe::move(f, l, p); + } else { + I m = f; @@ -406,7 +406,7 @@ void vector::reserve(size_type n) if (capacity() < n) { vector tmp; @@ -54,3 +131,12 @@ index 2d23e59..8968b59 100644 swap(tmp); } } +@@ -430,7 +430,7 @@ typename vector::iterator vector::insert(iterator p, size_type n, co + + if (n < after) { + append_move(last - n, last); +- move_backward(p, last - n, last); ++ adobe::move_backward(p, last - n, last); + std::fill_n(p, n, x); + } else { + std::uninitialized_fill_n(last, n - after, x); diff --git a/tmp/source_release/adobe/array.hpp b/tmp/source_release/adobe/array.hpp new file mode 100644 index 0000000..76e4205 --- /dev/null +++ b/tmp/source_release/adobe/array.hpp @@ -0,0 +1,48 @@ +/* + Copyright 2005-2007 Adobe Systems Incorporated + Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt + or a copy at http://stlab.adobe.com/licenses.html) +*/ + +/**************************************************************************************************/ + +#ifndef ADOBE_ARRAY_HPP +#define ADOBE_ARRAY_HPP + +#include + +#include + +#include +#include +#include + +/**************************************************************************************************/ + +namespace adobe { +namespace version_1 { + +/**************************************************************************************************/ + +template // T models Regular +inline void push_back(array_t& v, T x) +{ v.push_back(any_regular_t(adobe::move(x))); } + +inline void push_back(array_t& v, any_regular_t x) +{ v.push_back(adobe::move(x)); } + +/**************************************************************************************************/ + +} // namespace version_1 + +using version_1::push_back; + +} // namespace adobe + +/**************************************************************************************************/ + +ADOBE_SHORT_NAME_TYPE('a','r','r','y', adobe::array_t) + +/**************************************************************************************************/ + +#endif diff --git a/tmp/source_release/adobe/move.hpp b/tmp/source_release/adobe/move.hpp new file mode 100644 index 0000000..5fe6db5 --- /dev/null +++ b/tmp/source_release/adobe/move.hpp @@ -0,0 +1,491 @@ +/* + Copyright 2005-2007 Adobe Systems Incorporated + Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt + or a copy at http://stlab.adobe.com/licenses.html) +*/ + +/*************************************************************************************************/ + +#ifndef ADOBE_MOVE_HPP +#define ADOBE_MOVE_HPP + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/*! +\defgroup move_related Move Library +\ingroup utility +\brief +The move library is a collection of utilities for creating and using types that leverage +return value optimization (RVO) to avoid unnecessary copies. + +\section move_tutorial Tutorial +User defined types often have remote parts either because they are implemented using a +pointer-to-implementation or are variable sized. Such objects can be expensive to copy +and are often copied unnecessarily when they are returned from functions or stored in other +objects or containers. The \ref move_related is a collection of utilities to implement types which +can be moved to elide copying in such situations as well as utilities to assist in moving value. + +\par Implementing a Movable Type + +A movable type models \ref concept_movable. There are three components of a movable type: + - Satisfy the requirements of concept \ref concept_regular_type. + - Implement a move-ctor using move_from<>. + - Modify the assignment operator to take the operand by value and consume it. + +A typical implementation of the move-ctor will simply extract the remote part, leaving the +source in a destructible state. + +The assignment operator takes the operand parameter by value. Typically the simplest way +to destory the local remote part and consume the remote part of the operand is to swap +contents with the operand. This is similar to the copy-ctor and swap idiom for implementing +assignment. + +Listing 1 shows an example movable class that implements a typical pointer-to-implementation +(PiPl) idiom and shows that it can be used as any regular type. + +\code +#include +#include + +#include + +#include + +using std::swap; + +struct implementation : boost::equality_comparable +{ + explicit implementation(int x = 0) : member(x) { } + + implementation(const implementation& x) : member(x.member) + { std::cout << "copy remote part: " << member << std::endl; } + + implementation& operator=(const implementation& x) + { + member = x.member; + std::cout << "assign remote part: " << member << std::endl; + return *this; + } + + friend bool operator==(const implementation& x, const implementation& y) + { return x.member == y.member; } + + int member; +}; + +class movable : public boost::equality_comparable +{ + public: +// model concept Regular + + explicit movable(int x = 0) : member(new implementation(x)) { } + ~movable() { delete member; } + movable(const movable& x) : member(new implementation(*x.member)) { } + // operator=() implemented below + + friend bool operator==(const movable& x, const movable &y) + { return *x.member == *y.member; } + + friend void swap(movable& x, movable& y) + { swap(x.member, y.member); } + +// model concept Movable + + // move-ctor assumes ownership of remote part + movable(adobe::move_from x) : member(x.source.member) + { x.source.member = 0; } + + // operator=() on a movable type takes parameter by value and consumes it + movable& operator=(movable x) + { swap(*this, x); return *this; } + + private: + implementation* member; +}; + +int main() +{ + movable x(10); + movable y = x; + + return 0; +} +\endcode +
Listing 1
+ +\verbatim +copy remote part: 10 +\endverbatim +
Output of Listing 1
+ +\par Returning a Movable Type + +We can return a movable type from a function by value and unnessary copies will be avoided as +Listing 2 illustrates: + +\code +//... +movable f(int x, int y) +{ return movable(x * y); } + +int main() +{ + movable x = f(10, 5); + movable y; + y = f(4, 3); + + return 0; +} +\endcode +
Listing 2
+ +\verbatim + +\endverbatim +
Ouput of Listing 2
+ +In this example it is not necessary to make any copies. The result of f() is constructed directly +in place for x through a compiler optimization known as return value optimization or RVO. In the +case of assigning to y, the same optimization allows the compiler to construct the operand for +assignment as the result of f() which is them moved into y. + +\par Implementing a Sink Function + +A sink is any function that copies it's argument, usually for the purpose of storing it. +A sink is often a constructor or an insert function on a container. The \c operator=() on a movable +type is a form of a sink function. To implement a sink function pass the argument by value and then +use \c adobe::move() to move the argument into place. Note that this technique cannot be used to +implement \c operator=() on because it relies on assignment. Listing 3 implements an example sink +function. + +\code +//... + +struct sink +{ + explicit sink(movable x) : member(adobe::move(x)) { } + + movable member; +}; + +int main() +{ + movable x = f(10, 5); + sink y(x); // must copy. + sink z(f(20, 2)); // no copy. + + return 0; +} +\endcode +
Listing 3
+ +\verbatim +copy remote part: 50 +\endverbatim +
Output of Listing 3
+ +Here again unnessary copies are eliminated. Although adobe::move() can be used anytime to force the +move of an object, it should only be used as part of an explicit sink function otherwise it hinders +the understanding of code. + +\par Utilities + +There are many utilities as part of the move library which can be used to move elements instead of +copying them. These are useful when building containers or dealing with sink operations which must +manage a collection of movable objects. Generally these operations parallel the associated copying +algorithms from STL. Examples: + + + + + + + + + +
MoveCopyComment
adobe::move()std::copyNot to be confused with the single argument adobe::move()
adobe::move_backward()std::copy_backward
adobe::back_move_iterator()std::back_insert_iterator
adobe::back_mover()std::back_inserter
adobe::move_construct()std::construct
adobe::uninitialized_move()std::uninitialized_copy
+ +\par Advanced Topics + +The \c adobe::move() function is a NOP if the argument is not movable, however, when a non-movable +item is passed to a sink this may still result in an unnecessary copy - one to the sink and one to +copy the argument of the sink into place. To avoid the additional copy, two forms of a sink function +can be provided, one for movable types and one for copyable types. The \c adobe::move_sink<> and +\c adobe::copy_sink<> tags can be used to select between the two functions. See the +implementation of \c adobe::move_construct() as an example. + +If a sink function is a member of a template class, the same issue with regard to unnecessary copies +can occur. In this case, it is desirable to distinguish between the a copy and move sink as above +but also to allow implicit conversions to the type stored in the container. To allow this use the +two argument form of \c adobe::move_sink<> and \c adobe::copy_sink<>. See the implementation of +\c adobe::vector::push_back() as an example. + +\par Theory of Operation + +to be written + +\par Acknowledgments: +The move library was inspired by the move library written by Dave Abrahams and the work on move +done by Dave Abrahams and Howard Hinnant. +*/ + +/*************************************************************************************************/ + +namespace adobe { + +/*************************************************************************************************/ + +namespace implementation { + +/*************************************************************************************************/ + +template +struct class_has_move_assign { + class type { + typedef T& (T::*E)(T t); + typedef char (&no_type)[1]; + typedef char (&yes_type)[2]; + template struct sfinae { typedef yes_type type; }; + template + static typename sfinae<&U::operator=>::type test(int); + template + static no_type test(...); + public: + enum {value = sizeof(test(1)) == sizeof(yes_type)}; + }; + }; + +/*************************************************************************************************/ + +template +struct has_move_assign : boost::mpl::and_, class_has_move_assign > {}; + +/*************************************************************************************************/ + +class test_can_convert_anything { }; + +/*************************************************************************************************/ + +} //namespace implementation + + +/*************************************************************************************************/ + +/* + REVISIT (sparent@adobe.com): This is a work around for Boost 1.34.1 and VC++ 2008 where + boost::is_convertible fails to compile. +*/ + +template +struct is_convertible : boost::mpl::or_< + boost::is_same, + boost::is_convertible +> { }; + +/*! +\ingroup move_related +\brief move_from is used for move_ctors. +*/ + +template +struct move_from +{ + explicit move_from(T& x) : source(x) { } + T& source; +}; + +/*! +\ingroup move_related +\brief The is_movable trait can be used to identify movable types. +*/ +template +struct is_movable : boost::mpl::and_< + boost::is_convertible, T>, + implementation::has_move_assign, + boost::mpl::not_ > + > { }; + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief copy_sink and move_sink are used to select between overloaded operations according to + whether type T is movable and convertible to type U. +\sa move +*/ + +template +struct copy_sink : boost::enable_if< + boost::mpl::and_< + adobe::is_convertible, + boost::mpl::not_ > + >, + R + > +{ }; + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief move_sink and copy_sink are used to select between overloaded operations according to + whether type T is movable and convertible to type U. + \sa move +*/ + +template +struct move_sink : boost::enable_if< + boost::mpl::and_< + adobe::is_convertible, + is_movable + >, + R + > +{ }; + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief This version of move is selected when T is_movable . It in turn calls the move +constructor. This call, with the help of the return value optimization, will cause x to be moved +instead of copied to its destination. See adobe/test/move/main.cpp for examples. + +*/ +template +T move(T& x, typename move_sink::type = 0) { return T(move_from(x)); } + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief This version of move is selected when T is not movable . The net result will be that +x gets copied. +*/ +template +T& move(T& x, typename copy_sink::type = 0) { return x; } + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief Iterator pair version of move. Similar to std::copy but with move semantics, +for movable types, otherwise with copy semantics. +*/ +template // O models OutputIterator +O move(I f, I l, O result) +{ + while (f != l) { + *result = adobe::move(*f); + ++f; ++result; + } + return result; +} + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief \ref concept_convertible_to_range version of move. Similar to copy but with move semantics, +for movable types, otherwise with copy semantics. +*/ +template // O models OutputIterator +inline O move(I& in, O out) { return adobe::move(boost::begin(in), boost::end(in), out); } + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief Iterator pair version of move_backwards. Similar to std::copy_backwards but with move semantics, +for movable types, otherwise with copy semantics. +*/ +template // O models BidirectionalIterator +O move_backward(I f, I l, O result) +{ + while (f != l) { + --l; --result; + *result = adobe::move(*l); + } + return result; +} + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief \ref concept_convertible_to_range version of move_backwards. Similar to std::copy_backwards but +with move semantics, for movable types, otherwise with copy semantics. +*/ +template // O models BidirectionalIterator +inline O move_backward(I& in, O out) +{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief Similar to std::back_insert_iterator but +with move semantics, for movable types, otherwise with copy semantics. +*/ + +template // C models Container +class back_move_iterator : public std::iterator +{ + C* container_m; + + public: + typedef C container_type; + + explicit back_move_iterator(C& x) : container_m(&x) { } + + back_move_iterator& operator=(typename C::value_type x) + { container_m->push_back(adobe::move(x)); return *this; } + + back_move_iterator& operator*() { return *this; } + back_move_iterator& operator++() { return *this; } + back_move_iterator& operator++(int) { return *this; } +}; + +/*************************************************************************************************/ + +/*! +\ingroup move_related +\brief Similar to std::back_inserter but +with move semantics, for movable types, otherwise with copy semantics. +*/ + +template // C models Container +inline back_move_iterator back_mover(C& x) { return back_move_iterator(x); } + +/*************************************************************************************************/ + +} // namespace adobe + +/*************************************************************************************************/ + +#endif + +/*************************************************************************************************/ diff --git a/tmp/source_release/adobe/once.hpp b/tmp/source_release/adobe/once.hpp new file mode 100644 index 0000000..e349b92 --- /dev/null +++ b/tmp/source_release/adobe/once.hpp @@ -0,0 +1,176 @@ +/* + Copyright 2005-2007 Adobe Systems Incorporated + Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt + or a copy at http://stlab.adobe.com/licenses.html) +*/ + +/*************************************************************************************************/ + +#ifndef ADOBE_ONCE_HPP +#define ADOBE_ONCE_HPP + +/*************************************************************************************************/ + +#if defined(BOOST_HAS_THREADS) + #include +#endif + +#include + +/*************************************************************************************************/ + +namespace adobe { + +/*************************************************************************************************/ + +#if defined(BOOST_HAS_THREADS) + +/*************************************************************************************************/ + +typedef boost::once_flag once_flag; +#define ADOBE_ONCE_INIT BOOST_ONCE_INIT + +inline void call_once(void (*func)(), adobe::once_flag& flag) +{ + boost::call_once(func, flag); +} + +/*************************************************************************************************/ + +#else + +/*************************************************************************************************/ + +typedef bool once_flag; +#define ADOBE_ONCE_INIT false + +inline void call_once(void (*func)(), adobe::once_flag& flag) +{ + if (!flag) + { + (*func)(); + flag = true; + } +} + +/*************************************************************************************************/ + +#endif + +/*************************************************************************************************/ + +} // namespace adobe + +/*************************************************************************************************/ + +#define ADOBE_ONCE_DECLARATION(signature) \ + struct adobe_initialize_constants_##signature##_t \ + { \ + adobe_initialize_constants_##signature##_t(); \ + }; + +#define ADOBE_ONCE_DEFINITION(signature, func) \ + namespace { \ + adobe::once_flag adobe_once_flag_##signature##_s = ADOBE_ONCE_INIT; \ + } \ + adobe_initialize_constants_##signature##_t::adobe_initialize_constants_##signature##_t() \ + { \ + adobe::call_once(&func, adobe_once_flag_##signature##_s); \ + } + +#define ADOBE_ONCE_INSTANCE(signature) \ + adobe_initialize_constants_##signature##_t adobe_initialize_constants_##signature##_s + +#define ADOBE_ONCE_STATIC_INSTANCE(signature) \ + namespace { ADOBE_ONCE_INSTANCE(signature); } + +#if defined(BOOST_HAS_THREADS) + +#define ADOBE_GLOBAL_MUTEX_DEFINITION(signature) \ + namespace { \ + adobe::once_flag adobe_once_flag_##signature##_s = ADOBE_ONCE_INIT; \ + boost::mutex* adobe_mutex_ptr_##signature##_s = 0; \ + void adobe_init_once_##signature() \ + { \ + static boost::mutex mutex_s; \ + adobe_mutex_ptr_##signature##_s = &mutex_s; \ + } \ + } + +#define ADOBE_GLOBAL_MUTEX_INSTANCE(signature) \ + boost::call_once(&adobe_init_once_##signature, adobe_once_flag_##signature##_s); \ + boost::mutex::scoped_lock lock(*adobe_mutex_ptr_##signature##_s) + +#else + +#define ADOBE_GLOBAL_MUTEX_DEFINITION(signature) +#define ADOBE_GLOBAL_MUTEX_INSTANCE(signature) + +#endif + +/*************************************************************************************************/ + +#if defined(BOOST_HAS_THREADS) + +#define ADOBE_THREAD_LOCAL_STORAGE_1(type, signature, ctor_p1) \ + namespace { \ + typedef boost::thread_specific_ptr< type > adobe_thread_local_storage_##signature##_t; \ + adobe_thread_local_storage_##signature##_t* adobe_thread_local_storage_##signature##_g = 0;\ + type& adobe_thread_local_storage_##signature##_access(); \ + type& adobe_thread_local_storage_##signature##_access() \ + { \ + type* result = adobe_thread_local_storage_##signature##_g->get(); \ + if (result) return *result; \ + result = new type(ctor_p1); \ + adobe_thread_local_storage_##signature##_g->reset(result); \ + return *result; \ + } } + +#define ADOBE_THREAD_LOCAL_STORAGE(type, signature) \ + namespace { \ + typedef boost::thread_specific_ptr< type > adobe_thread_local_storage_##signature##_t; \ + adobe_thread_local_storage_##signature##_t* adobe_thread_local_storage_##signature##_g = 0;\ + type& adobe_thread_local_storage_##signature##_access(); \ + type& adobe_thread_local_storage_##signature##_access() \ + { \ + type* result = adobe_thread_local_storage_##signature##_g->get(); \ + if (result) return *result; \ + result = new type(); \ + adobe_thread_local_storage_##signature##_g->reset(result); \ + return *result; \ + } } + +#define ADOBE_THREAD_LOCAL_STORAGE_INITIALIZE(signature) \ + static adobe_thread_local_storage_##signature##_t adobe_thread_local_storage_##signature##_s; \ + adobe_thread_local_storage_##signature##_g = &adobe_thread_local_storage_##signature##_s + +#else + +#define ADOBE_THREAD_LOCAL_STORAGE_1(type, signature, ctor_p1) \ + type& adobe_thread_local_storage_##signature##_access(); \ + type& adobe_thread_local_storage_##signature##_access() \ + { \ + static type adobe_thread_local_storage_##signature##_s(ctor_p1); \ + return adobe_thread_local_storage_##signature##_s; \ + } + +#define ADOBE_THREAD_LOCAL_STORAGE(type, signature) \ + type& adobe_thread_local_storage_##signature##_access(); \ + type& adobe_thread_local_storage_##signature##_access() \ + { \ + static type adobe_thread_local_storage_##signature##_s; \ + return adobe_thread_local_storage_##signature##_s; \ + } + +#define ADOBE_THREAD_LOCAL_STORAGE_INITIALIZE(signature) + +#endif + +#define ADOBE_THREAD_LOCAL_STORAGE_ACCESS(signature) \ + adobe_thread_local_storage_##signature##_access() + +/*************************************************************************************************/ + +#endif // ADOBE_ONCE_HPP + +/*************************************************************************************************/ diff --git a/tmp/source_release/adobe/vector.hpp b/tmp/source_release/adobe/vector.hpp new file mode 100644 index 0000000..8968b59 --- /dev/null +++ b/tmp/source_release/adobe/vector.hpp @@ -0,0 +1,520 @@ +/* + Copyright 2005-2007 Adobe Systems Incorporated + Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt + or a copy at http://stlab.adobe.com/licenses.html) +*/ + +/*************************************************************************************************/ + +#ifndef ADOBE_VECTOR_HPP +#define ADOBE_VECTOR_HPP + +/*************************************************************************************************/ + +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#ifdef ADOBE_STD_SERIALIZATION +#include +#endif + +/*************************************************************************************************/ + +namespace adobe { +namespace version_1 { + +/*! +\defgroup container Containers +\ingroup asl_libraries + */ + + +/*************************************************************************************************/ + +//!\ingroup abi_container +template // A models Allocator(T) +class vector : boost::totally_ordered, vector > +{ + public: + typedef T& reference; + typedef const T& const_reference; + typedef T* iterator; + typedef const T* const_iterator; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + typedef T value_type; + typedef A allocator_type; + typedef T* pointer; + typedef const T* const_pointer; + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; + + private: + struct header_t + { + struct compact_header_t + { + boost::compressed_pair allocate_finish_m; + T* end_of_storage_m; + }; + aligned_storage header_m; + T storage_m[1]; + + allocator_type& allocator() { return header_m.get().allocate_finish_m.first(); } + const allocator_type& allocator() const { return header_m.get().allocate_finish_m.first(); } + + pointer& finish() { return header_m.get().allocate_finish_m.second(); } + const pointer& finish() const { return header_m.get().allocate_finish_m.second(); } + + pointer& end_of_storage() { return header_m.get().end_of_storage_m; } + const pointer& end_of_storage() const { return header_m.get().end_of_storage_m; } + }; + + header_t* header_m; + + void set_finish(T* x) + { + assert(header_m != 0 || x == 0); + if (header_m) header_m->finish() = x; + } + + const T* end_of_storage() const { return header_m ? header_m->end_of_storage() : 0; } + + static header_t* allocate(allocator_type, std::size_t); + + size_type remaining() const { return end_of_storage() - end(); } + + template // I models InputIterator + void append(I f, I l) { append(f, l, typename std::iterator_traits::iterator_category()); } + + template // I models InputIterator + void append(I f, I l, std::input_iterator_tag); + + template // I models ForwardIterator + void append(I f, I l, std::forward_iterator_tag); + + template // I models InputIterator + void append_move(I f, I l) + { append_move(f, l, typename std::iterator_traits::iterator_category()); } + + template // I models InputIterator + void append_move(I f, I l, std::input_iterator_tag); + + template // I models ForwardIterator + void append_move(I f, I l, std::forward_iterator_tag); + + template // I models InputIterator + iterator insert(iterator p, I f, I l, std::input_iterator_tag); + + template // I models ForwardIterator + iterator insert(iterator p, I f, I l, std::forward_iterator_tag); + + public: + // 23.2.4.1 construct/copy/destroy + + explicit vector(const allocator_type& a) : header_m(allocate(a, 0)) { } + vector() : header_m(0) { } + + explicit vector(size_type n) : header_m(allocate(allocator_type(), n)) + { + std::uninitialized_fill_n(end(), n, value_type()); + set_finish(end() + n); + } + + vector(size_type n, const value_type& x) : header_m(allocate(allocator_type(), n)) + { + std::uninitialized_fill_n(end(), n, x); + set_finish(end() + n); + } + + vector(size_type n, const value_type& x, const allocator_type& a) : header_m(allocate(a, n)) + { + std::uninitialized_fill_n(end(), n, x); + set_finish(end() + n); + } + + vector(const vector& x) : header_m(allocate(x.get_allocator(), x.size())) + { +#ifndef NDEBUG + /* REVISIT (sparent) : MS stupid "safety check" doesn't known about empty ranges. */ + set_finish(x.begin() == x.end() ? end() : std::uninitialized_copy(x.begin(), x.end(), end())); +#else + set_finish(std::uninitialized_copy(x.begin(), x.end(), end())); +#endif + } + + template // I models InputIterator + vector(I f, I l, typename boost::disable_if >::type* = 0) : header_m(0) + { append(f, l); } + + template // I models InputIterator + vector(I f, I l, const allocator_type& a, + typename boost::disable_if >::type* = 0) : header_m(allocate(a), 0) + { append(f, l); } + + ~vector() { + if (header_m) { + clear(); + + typename allocator_type::template rebind::other alloc(get_allocator()); + alloc.deallocate(reinterpret_cast(header_m), + (end_of_storage() - begin()) * sizeof(T) + (sizeof(header_t) - sizeof(T))); + } + } + + // adobe addition + + vector(move_from x) : header_m(x.source.header_m) { x.source.header_m = 0; } + + allocator_type get_allocator() const + { return header_m ? header_m->allocator() : allocator_type(); } + + iterator begin() { return header_m ? &header_m->storage_m[0] : 0; } + iterator end() { return header_m ? header_m->finish() : 0; } + + const_iterator begin() const { return header_m ? &header_m->storage_m[0] : 0; } + const_iterator end() const { return header_m ? header_m->finish() : 0; } + + reverse_iterator rbegin() { return reverse_iterator(end()); } + reverse_iterator rend() { return reverse_iterator(begin()); } + + const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } + const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } + + size_type size() const { return size_type(end() - begin()); } + size_type max_size() const { return size_type(-1) / sizeof(value_type); } + + size_type capacity() const { return size_type(end_of_storage() - begin()); } + bool empty() const { return begin() == end(); } + + reference operator[](size_type n) { assert(n < size()); return *(begin() + n); } + const_reference operator[](size_type n) const { assert(n < size()); return *(begin() + n); } + + /* + REVISIT (sparent@adobe.com): at() explicitly omitted because it pulls in out_of_range + which inherits from logic_error and uses std::string. + */ + + vector& operator=(vector x) { swap(x); return *this; } + + void reserve(size_type n); + + reference front() { assert(!empty()); return *begin(); } + const_reference front() const { assert(!empty()); return *begin(); } + + reference back() { assert(!empty()); return *(end() - 1); } + const_reference back() const { assert(!empty()); return *(end() - 1); } + + void push_back(value_type x) + { append_move(&x, &x + 1); } + + void pop_back() { assert(!empty()); resize(size() - 1); } + + void swap(vector& x) { std::swap(header_m, x.header_m); } + + iterator insert(iterator p, value_type x) + { return insert_move(p, &x, &x + 1); } + + template // I models InputIterator + iterator insert(iterator p, I f, I l, typename boost::disable_if >::type* = 0) + { return insert(p, f, l, typename std::iterator_traits::iterator_category()); } + + template // I models ForwardIterator + iterator insert_move(iterator p, I f, I l); + + iterator insert(iterator p, size_type n, const T& x); + + iterator erase(iterator pos) { assert(pos != end()); return erase(pos, pos + 1); } + + iterator erase(iterator f, iterator l); + + void clear() { erase(begin(), end()); } + + void resize(size_type n); + + void resize(size_type n, const value_type& x); + + friend inline bool operator==(const vector& x, const vector& y) + { +#if defined(_MSC_VER) && _MSC_VER == 1600 && _ITERATOR_DEBUG_LEVEL != 0 + return (x.size() == y.size()) && std::_Equal1(x.begin(), x.end(), + y.begin(), std::tr1::false_type()); +#else + return (x.size() == y.size()) && std::equal(x.begin(), x.end(), y.begin()); +#endif + } + + friend inline bool operator<(const vector& x, const vector& y) + { + return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); + } + + friend inline void swap(vector& x, vector& y) { x.swap(y); } +}; + +template +typename vector::header_t* vector::allocate(allocator_type a, std::size_t n) +{ + if (n == 0) { + if (a == allocator_type()) return 0; + n = 1; + } + + typename allocator_type::template rebind::other alloc(a); + + header_t* result = reinterpret_cast(alloc.allocate(sizeof(header_t) - sizeof(T) + + n * sizeof(T))); + construct(&result->allocator(), a); + result->finish() = &result->storage_m[0]; + result->end_of_storage() = result->finish() + n; + + return result; +} + +template +template // I models InputIterator +void vector::append(I f, I l, std::input_iterator_tag) { while (f != l) { push_back(*f); ++f; } } + +template +template // I models InputIterator +void vector::append_move(I f, I l, std::input_iterator_tag) +{ while (f != l) { push_back(adobe::move(*f)); ++f; } } + +template +template // I models ForwardIterator +void vector::append(I f, I l, std::forward_iterator_tag) +{ + size_type n(std::distance(f, l)); + + if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); + set_finish(std::uninitialized_copy(f, l, end())); +} + +template +template // I models ForwardIterator +void vector::append_move(I f, I l, std::forward_iterator_tag) +{ + size_type n(std::distance(f, l)); + + if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); + set_finish(adobe::uninitialized_move(f, l, end())); +} + +template +template // I models InputIterator +typename vector::iterator vector::insert(iterator p, I f, I l, std::input_iterator_tag) +{ + size_type o(p - begin()); + size_type s = size(); + append(f, l); + // REVISIT (sparent) : This could be a move based rotate + std::rotate(begin() + o, begin() + s, end()); + return end() - s + o; +} + +template +template // I models ForwardIterator +typename vector::iterator vector::insert(iterator p, I f, I l, std::forward_iterator_tag) +{ + size_type n(std::distance(f, l)); + iterator last = end(); + size_type before = p - begin(); + + if (remaining() < n) { + vector tmp; + tmp.reserve((adobe::max)(size() + n, 2 * size())); + tmp.append_move(begin(), p); + tmp.append(f, l); + tmp.append_move(p, last); + swap(tmp); + } else { + size_type after(last - p); + + if (n < after) { + append_move(last - n, last); + adobe::move_backward(p, last - n, last); + std::copy(f, l, p); + } else { + I m = f; + std::advance(m, after); + append(m, l); + append_move(p, last); + std::copy(f, m, p); + } + } + return begin() + before + n; +} + +template +template // I models ForwardIterator +typename vector::iterator vector::insert_move(iterator p, I f, I l) +{ + size_type n(std::distance(f, l)); + iterator last = end(); + size_type before = p - begin(); + + if (remaining() < n) { + vector tmp; + tmp.reserve((adobe::max)(size() + n, 2 * size())); + tmp.append_move(begin(), p); + tmp.append_move(f, l); + tmp.append_move(p, last); + swap(tmp); + } else { + size_type after(last - p); + + if (n < after) { + append_move(last - n, last); + adobe::move_backward(p, last - n, last); + adobe::move(f, l, p); + } else { + I m = f; + std::advance(m, after); + append_move(m, l); + append_move(p, last); + adobe::move(f, m, p); + } + } + return begin() + before + n; +} + +template +void vector::reserve(size_type n) +{ + if (capacity() < n) { + vector tmp; + tmp.header_m = allocate(get_allocator(), n); + tmp.header_m->finish() = adobe::uninitialized_move(begin(), end(), tmp.end()); + swap(tmp); + } +} + +template +typename vector::iterator vector::insert(iterator p, size_type n, const T& x) +{ + iterator last = end(); + size_type before = p - begin(); + + if (remaining() < n) { + vector tmp; + tmp.reserve((adobe::max)(size() + n, 2 * size())); + tmp.append_move(begin(), p); + std::uninitialized_fill_n(tmp.end(), n, x); + tmp.set_finish(tmp.end() + n); + tmp.append_move(p, last); + swap(tmp); + } else { + size_type after(last - p); + + if (n < after) { + append_move(last - n, last); + adobe::move_backward(p, last - n, last); + std::fill_n(p, n, x); + } else { + std::uninitialized_fill_n(last, n - after, x); + set_finish(last + (n - after)); + append_move(p, last); + std::fill_n(p, after, x); + } + } + return begin() + before + n; +} + +template +typename vector::iterator vector::erase(iterator f, iterator l) +{ + iterator i = adobe::move(l, end(), f); + for (iterator b(i), e(end()); b != e; ++b) { + b->~value_type(); + } + set_finish(i); + return f; +} + +template +void vector::resize(size_type n) +{ + if (n < size()) erase(begin() + n, end()); + else insert(end(), n - size(), value_type()); +} + +template +void vector::resize(size_type n, const value_type& x) +{ + if (n < size()) erase(begin() + n, end()); + else insert(end(), n - size(), x); +} + +/*************************************************************************************************/ + +#ifdef ADOBE_STD_SERIALIZATION + +template +std::ostream& operator<<(std::ostream& out, const vector& x) +{ + out << begin_sequence; + + for (typename vector::const_iterator first(x.begin()), last(x.end()); first != last; ++first) + { + out << format(*first); + } + + out << end_sequence; + + return out; +} + +#endif + +/*************************************************************************************************/ + +BOOST_STATIC_ASSERT(sizeof(vector) == sizeof(void*)); + +/*************************************************************************************************/ + +} // namespace version_1 +} // namespace adobe + +/*************************************************************************************************/ + +ADOBE_NAME_TYPE_1("vector:version_1:adobe", adobe::version_1::vector >) +ADOBE_NAME_TYPE_2("vector:version_1:adobe", adobe::version_1::vector) + +/*************************************************************************************************/ + +namespace boost { + +template +struct has_nothrow_constructor > : boost::mpl::true_ { }; + +} // namespace boost + +/*! +@} +*/ +/*************************************************************************************************/ + +#endif From 22ed1eeca25ea3d57d73124be9421d05ee1573cc Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 20:31:33 +0200 Subject: [PATCH 13/55] removing irrelevant files --- tmp/source_release/adobe/array.hpp | 48 --- tmp/source_release/adobe/move.hpp | 491 -------------------------- tmp/source_release/adobe/once.hpp | 176 ---------- tmp/source_release/adobe/vector.hpp | 520 ---------------------------- 4 files changed, 1235 deletions(-) delete mode 100644 tmp/source_release/adobe/array.hpp delete mode 100644 tmp/source_release/adobe/move.hpp delete mode 100644 tmp/source_release/adobe/once.hpp delete mode 100644 tmp/source_release/adobe/vector.hpp diff --git a/tmp/source_release/adobe/array.hpp b/tmp/source_release/adobe/array.hpp deleted file mode 100644 index 76e4205..0000000 --- a/tmp/source_release/adobe/array.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright 2005-2007 Adobe Systems Incorporated - Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt - or a copy at http://stlab.adobe.com/licenses.html) -*/ - -/**************************************************************************************************/ - -#ifndef ADOBE_ARRAY_HPP -#define ADOBE_ARRAY_HPP - -#include - -#include - -#include -#include -#include - -/**************************************************************************************************/ - -namespace adobe { -namespace version_1 { - -/**************************************************************************************************/ - -template // T models Regular -inline void push_back(array_t& v, T x) -{ v.push_back(any_regular_t(adobe::move(x))); } - -inline void push_back(array_t& v, any_regular_t x) -{ v.push_back(adobe::move(x)); } - -/**************************************************************************************************/ - -} // namespace version_1 - -using version_1::push_back; - -} // namespace adobe - -/**************************************************************************************************/ - -ADOBE_SHORT_NAME_TYPE('a','r','r','y', adobe::array_t) - -/**************************************************************************************************/ - -#endif diff --git a/tmp/source_release/adobe/move.hpp b/tmp/source_release/adobe/move.hpp deleted file mode 100644 index 5fe6db5..0000000 --- a/tmp/source_release/adobe/move.hpp +++ /dev/null @@ -1,491 +0,0 @@ -/* - Copyright 2005-2007 Adobe Systems Incorporated - Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt - or a copy at http://stlab.adobe.com/licenses.html) -*/ - -/*************************************************************************************************/ - -#ifndef ADOBE_MOVE_HPP -#define ADOBE_MOVE_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*! -\defgroup move_related Move Library -\ingroup utility -\brief -The move library is a collection of utilities for creating and using types that leverage -return value optimization (RVO) to avoid unnecessary copies. - -\section move_tutorial Tutorial -User defined types often have remote parts either because they are implemented using a -pointer-to-implementation or are variable sized. Such objects can be expensive to copy -and are often copied unnecessarily when they are returned from functions or stored in other -objects or containers. The \ref move_related is a collection of utilities to implement types which -can be moved to elide copying in such situations as well as utilities to assist in moving value. - -\par Implementing a Movable Type - -A movable type models \ref concept_movable. There are three components of a movable type: - - Satisfy the requirements of concept \ref concept_regular_type. - - Implement a move-ctor using move_from<>. - - Modify the assignment operator to take the operand by value and consume it. - -A typical implementation of the move-ctor will simply extract the remote part, leaving the -source in a destructible state. - -The assignment operator takes the operand parameter by value. Typically the simplest way -to destory the local remote part and consume the remote part of the operand is to swap -contents with the operand. This is similar to the copy-ctor and swap idiom for implementing -assignment. - -Listing 1 shows an example movable class that implements a typical pointer-to-implementation -(PiPl) idiom and shows that it can be used as any regular type. - -\code -#include -#include - -#include - -#include - -using std::swap; - -struct implementation : boost::equality_comparable -{ - explicit implementation(int x = 0) : member(x) { } - - implementation(const implementation& x) : member(x.member) - { std::cout << "copy remote part: " << member << std::endl; } - - implementation& operator=(const implementation& x) - { - member = x.member; - std::cout << "assign remote part: " << member << std::endl; - return *this; - } - - friend bool operator==(const implementation& x, const implementation& y) - { return x.member == y.member; } - - int member; -}; - -class movable : public boost::equality_comparable -{ - public: -// model concept Regular - - explicit movable(int x = 0) : member(new implementation(x)) { } - ~movable() { delete member; } - movable(const movable& x) : member(new implementation(*x.member)) { } - // operator=() implemented below - - friend bool operator==(const movable& x, const movable &y) - { return *x.member == *y.member; } - - friend void swap(movable& x, movable& y) - { swap(x.member, y.member); } - -// model concept Movable - - // move-ctor assumes ownership of remote part - movable(adobe::move_from x) : member(x.source.member) - { x.source.member = 0; } - - // operator=() on a movable type takes parameter by value and consumes it - movable& operator=(movable x) - { swap(*this, x); return *this; } - - private: - implementation* member; -}; - -int main() -{ - movable x(10); - movable y = x; - - return 0; -} -\endcode -
Listing 1
- -\verbatim -copy remote part: 10 -\endverbatim -
Output of Listing 1
- -\par Returning a Movable Type - -We can return a movable type from a function by value and unnessary copies will be avoided as -Listing 2 illustrates: - -\code -//... -movable f(int x, int y) -{ return movable(x * y); } - -int main() -{ - movable x = f(10, 5); - movable y; - y = f(4, 3); - - return 0; -} -\endcode -
Listing 2
- -\verbatim - -\endverbatim -
Ouput of Listing 2
- -In this example it is not necessary to make any copies. The result of f() is constructed directly -in place for x through a compiler optimization known as return value optimization or RVO. In the -case of assigning to y, the same optimization allows the compiler to construct the operand for -assignment as the result of f() which is them moved into y. - -\par Implementing a Sink Function - -A sink is any function that copies it's argument, usually for the purpose of storing it. -A sink is often a constructor or an insert function on a container. The \c operator=() on a movable -type is a form of a sink function. To implement a sink function pass the argument by value and then -use \c adobe::move() to move the argument into place. Note that this technique cannot be used to -implement \c operator=() on because it relies on assignment. Listing 3 implements an example sink -function. - -\code -//... - -struct sink -{ - explicit sink(movable x) : member(adobe::move(x)) { } - - movable member; -}; - -int main() -{ - movable x = f(10, 5); - sink y(x); // must copy. - sink z(f(20, 2)); // no copy. - - return 0; -} -\endcode -
Listing 3
- -\verbatim -copy remote part: 50 -\endverbatim -
Output of Listing 3
- -Here again unnessary copies are eliminated. Although adobe::move() can be used anytime to force the -move of an object, it should only be used as part of an explicit sink function otherwise it hinders -the understanding of code. - -\par Utilities - -There are many utilities as part of the move library which can be used to move elements instead of -copying them. These are useful when building containers or dealing with sink operations which must -manage a collection of movable objects. Generally these operations parallel the associated copying -algorithms from STL. Examples: - - - - - - - - - -
MoveCopyComment
adobe::move()std::copyNot to be confused with the single argument adobe::move()
adobe::move_backward()std::copy_backward
adobe::back_move_iterator()std::back_insert_iterator
adobe::back_mover()std::back_inserter
adobe::move_construct()std::construct
adobe::uninitialized_move()std::uninitialized_copy
- -\par Advanced Topics - -The \c adobe::move() function is a NOP if the argument is not movable, however, when a non-movable -item is passed to a sink this may still result in an unnecessary copy - one to the sink and one to -copy the argument of the sink into place. To avoid the additional copy, two forms of a sink function -can be provided, one for movable types and one for copyable types. The \c adobe::move_sink<> and -\c adobe::copy_sink<> tags can be used to select between the two functions. See the -implementation of \c adobe::move_construct() as an example. - -If a sink function is a member of a template class, the same issue with regard to unnecessary copies -can occur. In this case, it is desirable to distinguish between the a copy and move sink as above -but also to allow implicit conversions to the type stored in the container. To allow this use the -two argument form of \c adobe::move_sink<> and \c adobe::copy_sink<>. See the implementation of -\c adobe::vector::push_back() as an example. - -\par Theory of Operation - -to be written - -\par Acknowledgments: -The move library was inspired by the move library written by Dave Abrahams and the work on move -done by Dave Abrahams and Howard Hinnant. -*/ - -/*************************************************************************************************/ - -namespace adobe { - -/*************************************************************************************************/ - -namespace implementation { - -/*************************************************************************************************/ - -template -struct class_has_move_assign { - class type { - typedef T& (T::*E)(T t); - typedef char (&no_type)[1]; - typedef char (&yes_type)[2]; - template struct sfinae { typedef yes_type type; }; - template - static typename sfinae<&U::operator=>::type test(int); - template - static no_type test(...); - public: - enum {value = sizeof(test(1)) == sizeof(yes_type)}; - }; - }; - -/*************************************************************************************************/ - -template -struct has_move_assign : boost::mpl::and_, class_has_move_assign > {}; - -/*************************************************************************************************/ - -class test_can_convert_anything { }; - -/*************************************************************************************************/ - -} //namespace implementation - - -/*************************************************************************************************/ - -/* - REVISIT (sparent@adobe.com): This is a work around for Boost 1.34.1 and VC++ 2008 where - boost::is_convertible fails to compile. -*/ - -template -struct is_convertible : boost::mpl::or_< - boost::is_same, - boost::is_convertible -> { }; - -/*! -\ingroup move_related -\brief move_from is used for move_ctors. -*/ - -template -struct move_from -{ - explicit move_from(T& x) : source(x) { } - T& source; -}; - -/*! -\ingroup move_related -\brief The is_movable trait can be used to identify movable types. -*/ -template -struct is_movable : boost::mpl::and_< - boost::is_convertible, T>, - implementation::has_move_assign, - boost::mpl::not_ > - > { }; - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief copy_sink and move_sink are used to select between overloaded operations according to - whether type T is movable and convertible to type U. -\sa move -*/ - -template -struct copy_sink : boost::enable_if< - boost::mpl::and_< - adobe::is_convertible, - boost::mpl::not_ > - >, - R - > -{ }; - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief move_sink and copy_sink are used to select between overloaded operations according to - whether type T is movable and convertible to type U. - \sa move -*/ - -template -struct move_sink : boost::enable_if< - boost::mpl::and_< - adobe::is_convertible, - is_movable - >, - R - > -{ }; - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief This version of move is selected when T is_movable . It in turn calls the move -constructor. This call, with the help of the return value optimization, will cause x to be moved -instead of copied to its destination. See adobe/test/move/main.cpp for examples. - -*/ -template -T move(T& x, typename move_sink::type = 0) { return T(move_from(x)); } - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief This version of move is selected when T is not movable . The net result will be that -x gets copied. -*/ -template -T& move(T& x, typename copy_sink::type = 0) { return x; } - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief Iterator pair version of move. Similar to std::copy but with move semantics, -for movable types, otherwise with copy semantics. -*/ -template // O models OutputIterator -O move(I f, I l, O result) -{ - while (f != l) { - *result = adobe::move(*f); - ++f; ++result; - } - return result; -} - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief \ref concept_convertible_to_range version of move. Similar to copy but with move semantics, -for movable types, otherwise with copy semantics. -*/ -template // O models OutputIterator -inline O move(I& in, O out) { return adobe::move(boost::begin(in), boost::end(in), out); } - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief Iterator pair version of move_backwards. Similar to std::copy_backwards but with move semantics, -for movable types, otherwise with copy semantics. -*/ -template // O models BidirectionalIterator -O move_backward(I f, I l, O result) -{ - while (f != l) { - --l; --result; - *result = adobe::move(*l); - } - return result; -} - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief \ref concept_convertible_to_range version of move_backwards. Similar to std::copy_backwards but -with move semantics, for movable types, otherwise with copy semantics. -*/ -template // O models BidirectionalIterator -inline O move_backward(I& in, O out) -{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief Similar to std::back_insert_iterator but -with move semantics, for movable types, otherwise with copy semantics. -*/ - -template // C models Container -class back_move_iterator : public std::iterator -{ - C* container_m; - - public: - typedef C container_type; - - explicit back_move_iterator(C& x) : container_m(&x) { } - - back_move_iterator& operator=(typename C::value_type x) - { container_m->push_back(adobe::move(x)); return *this; } - - back_move_iterator& operator*() { return *this; } - back_move_iterator& operator++() { return *this; } - back_move_iterator& operator++(int) { return *this; } -}; - -/*************************************************************************************************/ - -/*! -\ingroup move_related -\brief Similar to std::back_inserter but -with move semantics, for movable types, otherwise with copy semantics. -*/ - -template // C models Container -inline back_move_iterator back_mover(C& x) { return back_move_iterator(x); } - -/*************************************************************************************************/ - -} // namespace adobe - -/*************************************************************************************************/ - -#endif - -/*************************************************************************************************/ diff --git a/tmp/source_release/adobe/once.hpp b/tmp/source_release/adobe/once.hpp deleted file mode 100644 index e349b92..0000000 --- a/tmp/source_release/adobe/once.hpp +++ /dev/null @@ -1,176 +0,0 @@ -/* - Copyright 2005-2007 Adobe Systems Incorporated - Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt - or a copy at http://stlab.adobe.com/licenses.html) -*/ - -/*************************************************************************************************/ - -#ifndef ADOBE_ONCE_HPP -#define ADOBE_ONCE_HPP - -/*************************************************************************************************/ - -#if defined(BOOST_HAS_THREADS) - #include -#endif - -#include - -/*************************************************************************************************/ - -namespace adobe { - -/*************************************************************************************************/ - -#if defined(BOOST_HAS_THREADS) - -/*************************************************************************************************/ - -typedef boost::once_flag once_flag; -#define ADOBE_ONCE_INIT BOOST_ONCE_INIT - -inline void call_once(void (*func)(), adobe::once_flag& flag) -{ - boost::call_once(func, flag); -} - -/*************************************************************************************************/ - -#else - -/*************************************************************************************************/ - -typedef bool once_flag; -#define ADOBE_ONCE_INIT false - -inline void call_once(void (*func)(), adobe::once_flag& flag) -{ - if (!flag) - { - (*func)(); - flag = true; - } -} - -/*************************************************************************************************/ - -#endif - -/*************************************************************************************************/ - -} // namespace adobe - -/*************************************************************************************************/ - -#define ADOBE_ONCE_DECLARATION(signature) \ - struct adobe_initialize_constants_##signature##_t \ - { \ - adobe_initialize_constants_##signature##_t(); \ - }; - -#define ADOBE_ONCE_DEFINITION(signature, func) \ - namespace { \ - adobe::once_flag adobe_once_flag_##signature##_s = ADOBE_ONCE_INIT; \ - } \ - adobe_initialize_constants_##signature##_t::adobe_initialize_constants_##signature##_t() \ - { \ - adobe::call_once(&func, adobe_once_flag_##signature##_s); \ - } - -#define ADOBE_ONCE_INSTANCE(signature) \ - adobe_initialize_constants_##signature##_t adobe_initialize_constants_##signature##_s - -#define ADOBE_ONCE_STATIC_INSTANCE(signature) \ - namespace { ADOBE_ONCE_INSTANCE(signature); } - -#if defined(BOOST_HAS_THREADS) - -#define ADOBE_GLOBAL_MUTEX_DEFINITION(signature) \ - namespace { \ - adobe::once_flag adobe_once_flag_##signature##_s = ADOBE_ONCE_INIT; \ - boost::mutex* adobe_mutex_ptr_##signature##_s = 0; \ - void adobe_init_once_##signature() \ - { \ - static boost::mutex mutex_s; \ - adobe_mutex_ptr_##signature##_s = &mutex_s; \ - } \ - } - -#define ADOBE_GLOBAL_MUTEX_INSTANCE(signature) \ - boost::call_once(&adobe_init_once_##signature, adobe_once_flag_##signature##_s); \ - boost::mutex::scoped_lock lock(*adobe_mutex_ptr_##signature##_s) - -#else - -#define ADOBE_GLOBAL_MUTEX_DEFINITION(signature) -#define ADOBE_GLOBAL_MUTEX_INSTANCE(signature) - -#endif - -/*************************************************************************************************/ - -#if defined(BOOST_HAS_THREADS) - -#define ADOBE_THREAD_LOCAL_STORAGE_1(type, signature, ctor_p1) \ - namespace { \ - typedef boost::thread_specific_ptr< type > adobe_thread_local_storage_##signature##_t; \ - adobe_thread_local_storage_##signature##_t* adobe_thread_local_storage_##signature##_g = 0;\ - type& adobe_thread_local_storage_##signature##_access(); \ - type& adobe_thread_local_storage_##signature##_access() \ - { \ - type* result = adobe_thread_local_storage_##signature##_g->get(); \ - if (result) return *result; \ - result = new type(ctor_p1); \ - adobe_thread_local_storage_##signature##_g->reset(result); \ - return *result; \ - } } - -#define ADOBE_THREAD_LOCAL_STORAGE(type, signature) \ - namespace { \ - typedef boost::thread_specific_ptr< type > adobe_thread_local_storage_##signature##_t; \ - adobe_thread_local_storage_##signature##_t* adobe_thread_local_storage_##signature##_g = 0;\ - type& adobe_thread_local_storage_##signature##_access(); \ - type& adobe_thread_local_storage_##signature##_access() \ - { \ - type* result = adobe_thread_local_storage_##signature##_g->get(); \ - if (result) return *result; \ - result = new type(); \ - adobe_thread_local_storage_##signature##_g->reset(result); \ - return *result; \ - } } - -#define ADOBE_THREAD_LOCAL_STORAGE_INITIALIZE(signature) \ - static adobe_thread_local_storage_##signature##_t adobe_thread_local_storage_##signature##_s; \ - adobe_thread_local_storage_##signature##_g = &adobe_thread_local_storage_##signature##_s - -#else - -#define ADOBE_THREAD_LOCAL_STORAGE_1(type, signature, ctor_p1) \ - type& adobe_thread_local_storage_##signature##_access(); \ - type& adobe_thread_local_storage_##signature##_access() \ - { \ - static type adobe_thread_local_storage_##signature##_s(ctor_p1); \ - return adobe_thread_local_storage_##signature##_s; \ - } - -#define ADOBE_THREAD_LOCAL_STORAGE(type, signature) \ - type& adobe_thread_local_storage_##signature##_access(); \ - type& adobe_thread_local_storage_##signature##_access() \ - { \ - static type adobe_thread_local_storage_##signature##_s; \ - return adobe_thread_local_storage_##signature##_s; \ - } - -#define ADOBE_THREAD_LOCAL_STORAGE_INITIALIZE(signature) - -#endif - -#define ADOBE_THREAD_LOCAL_STORAGE_ACCESS(signature) \ - adobe_thread_local_storage_##signature##_access() - -/*************************************************************************************************/ - -#endif // ADOBE_ONCE_HPP - -/*************************************************************************************************/ diff --git a/tmp/source_release/adobe/vector.hpp b/tmp/source_release/adobe/vector.hpp deleted file mode 100644 index 8968b59..0000000 --- a/tmp/source_release/adobe/vector.hpp +++ /dev/null @@ -1,520 +0,0 @@ -/* - Copyright 2005-2007 Adobe Systems Incorporated - Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt - or a copy at http://stlab.adobe.com/licenses.html) -*/ - -/*************************************************************************************************/ - -#ifndef ADOBE_VECTOR_HPP -#define ADOBE_VECTOR_HPP - -/*************************************************************************************************/ - -#include - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#ifdef ADOBE_STD_SERIALIZATION -#include -#endif - -/*************************************************************************************************/ - -namespace adobe { -namespace version_1 { - -/*! -\defgroup container Containers -\ingroup asl_libraries - */ - - -/*************************************************************************************************/ - -//!\ingroup abi_container -template // A models Allocator(T) -class vector : boost::totally_ordered, vector > -{ - public: - typedef T& reference; - typedef const T& const_reference; - typedef T* iterator; - typedef const T* const_iterator; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef T value_type; - typedef A allocator_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; - - private: - struct header_t - { - struct compact_header_t - { - boost::compressed_pair allocate_finish_m; - T* end_of_storage_m; - }; - aligned_storage header_m; - T storage_m[1]; - - allocator_type& allocator() { return header_m.get().allocate_finish_m.first(); } - const allocator_type& allocator() const { return header_m.get().allocate_finish_m.first(); } - - pointer& finish() { return header_m.get().allocate_finish_m.second(); } - const pointer& finish() const { return header_m.get().allocate_finish_m.second(); } - - pointer& end_of_storage() { return header_m.get().end_of_storage_m; } - const pointer& end_of_storage() const { return header_m.get().end_of_storage_m; } - }; - - header_t* header_m; - - void set_finish(T* x) - { - assert(header_m != 0 || x == 0); - if (header_m) header_m->finish() = x; - } - - const T* end_of_storage() const { return header_m ? header_m->end_of_storage() : 0; } - - static header_t* allocate(allocator_type, std::size_t); - - size_type remaining() const { return end_of_storage() - end(); } - - template // I models InputIterator - void append(I f, I l) { append(f, l, typename std::iterator_traits::iterator_category()); } - - template // I models InputIterator - void append(I f, I l, std::input_iterator_tag); - - template // I models ForwardIterator - void append(I f, I l, std::forward_iterator_tag); - - template // I models InputIterator - void append_move(I f, I l) - { append_move(f, l, typename std::iterator_traits::iterator_category()); } - - template // I models InputIterator - void append_move(I f, I l, std::input_iterator_tag); - - template // I models ForwardIterator - void append_move(I f, I l, std::forward_iterator_tag); - - template // I models InputIterator - iterator insert(iterator p, I f, I l, std::input_iterator_tag); - - template // I models ForwardIterator - iterator insert(iterator p, I f, I l, std::forward_iterator_tag); - - public: - // 23.2.4.1 construct/copy/destroy - - explicit vector(const allocator_type& a) : header_m(allocate(a, 0)) { } - vector() : header_m(0) { } - - explicit vector(size_type n) : header_m(allocate(allocator_type(), n)) - { - std::uninitialized_fill_n(end(), n, value_type()); - set_finish(end() + n); - } - - vector(size_type n, const value_type& x) : header_m(allocate(allocator_type(), n)) - { - std::uninitialized_fill_n(end(), n, x); - set_finish(end() + n); - } - - vector(size_type n, const value_type& x, const allocator_type& a) : header_m(allocate(a, n)) - { - std::uninitialized_fill_n(end(), n, x); - set_finish(end() + n); - } - - vector(const vector& x) : header_m(allocate(x.get_allocator(), x.size())) - { -#ifndef NDEBUG - /* REVISIT (sparent) : MS stupid "safety check" doesn't known about empty ranges. */ - set_finish(x.begin() == x.end() ? end() : std::uninitialized_copy(x.begin(), x.end(), end())); -#else - set_finish(std::uninitialized_copy(x.begin(), x.end(), end())); -#endif - } - - template // I models InputIterator - vector(I f, I l, typename boost::disable_if >::type* = 0) : header_m(0) - { append(f, l); } - - template // I models InputIterator - vector(I f, I l, const allocator_type& a, - typename boost::disable_if >::type* = 0) : header_m(allocate(a), 0) - { append(f, l); } - - ~vector() { - if (header_m) { - clear(); - - typename allocator_type::template rebind::other alloc(get_allocator()); - alloc.deallocate(reinterpret_cast(header_m), - (end_of_storage() - begin()) * sizeof(T) + (sizeof(header_t) - sizeof(T))); - } - } - - // adobe addition - - vector(move_from x) : header_m(x.source.header_m) { x.source.header_m = 0; } - - allocator_type get_allocator() const - { return header_m ? header_m->allocator() : allocator_type(); } - - iterator begin() { return header_m ? &header_m->storage_m[0] : 0; } - iterator end() { return header_m ? header_m->finish() : 0; } - - const_iterator begin() const { return header_m ? &header_m->storage_m[0] : 0; } - const_iterator end() const { return header_m ? header_m->finish() : 0; } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - size_type size() const { return size_type(end() - begin()); } - size_type max_size() const { return size_type(-1) / sizeof(value_type); } - - size_type capacity() const { return size_type(end_of_storage() - begin()); } - bool empty() const { return begin() == end(); } - - reference operator[](size_type n) { assert(n < size()); return *(begin() + n); } - const_reference operator[](size_type n) const { assert(n < size()); return *(begin() + n); } - - /* - REVISIT (sparent@adobe.com): at() explicitly omitted because it pulls in out_of_range - which inherits from logic_error and uses std::string. - */ - - vector& operator=(vector x) { swap(x); return *this; } - - void reserve(size_type n); - - reference front() { assert(!empty()); return *begin(); } - const_reference front() const { assert(!empty()); return *begin(); } - - reference back() { assert(!empty()); return *(end() - 1); } - const_reference back() const { assert(!empty()); return *(end() - 1); } - - void push_back(value_type x) - { append_move(&x, &x + 1); } - - void pop_back() { assert(!empty()); resize(size() - 1); } - - void swap(vector& x) { std::swap(header_m, x.header_m); } - - iterator insert(iterator p, value_type x) - { return insert_move(p, &x, &x + 1); } - - template // I models InputIterator - iterator insert(iterator p, I f, I l, typename boost::disable_if >::type* = 0) - { return insert(p, f, l, typename std::iterator_traits::iterator_category()); } - - template // I models ForwardIterator - iterator insert_move(iterator p, I f, I l); - - iterator insert(iterator p, size_type n, const T& x); - - iterator erase(iterator pos) { assert(pos != end()); return erase(pos, pos + 1); } - - iterator erase(iterator f, iterator l); - - void clear() { erase(begin(), end()); } - - void resize(size_type n); - - void resize(size_type n, const value_type& x); - - friend inline bool operator==(const vector& x, const vector& y) - { -#if defined(_MSC_VER) && _MSC_VER == 1600 && _ITERATOR_DEBUG_LEVEL != 0 - return (x.size() == y.size()) && std::_Equal1(x.begin(), x.end(), - y.begin(), std::tr1::false_type()); -#else - return (x.size() == y.size()) && std::equal(x.begin(), x.end(), y.begin()); -#endif - } - - friend inline bool operator<(const vector& x, const vector& y) - { - return std::lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); - } - - friend inline void swap(vector& x, vector& y) { x.swap(y); } -}; - -template -typename vector::header_t* vector::allocate(allocator_type a, std::size_t n) -{ - if (n == 0) { - if (a == allocator_type()) return 0; - n = 1; - } - - typename allocator_type::template rebind::other alloc(a); - - header_t* result = reinterpret_cast(alloc.allocate(sizeof(header_t) - sizeof(T) - + n * sizeof(T))); - construct(&result->allocator(), a); - result->finish() = &result->storage_m[0]; - result->end_of_storage() = result->finish() + n; - - return result; -} - -template -template // I models InputIterator -void vector::append(I f, I l, std::input_iterator_tag) { while (f != l) { push_back(*f); ++f; } } - -template -template // I models InputIterator -void vector::append_move(I f, I l, std::input_iterator_tag) -{ while (f != l) { push_back(adobe::move(*f)); ++f; } } - -template -template // I models ForwardIterator -void vector::append(I f, I l, std::forward_iterator_tag) -{ - size_type n(std::distance(f, l)); - - if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); - set_finish(std::uninitialized_copy(f, l, end())); -} - -template -template // I models ForwardIterator -void vector::append_move(I f, I l, std::forward_iterator_tag) -{ - size_type n(std::distance(f, l)); - - if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); - set_finish(adobe::uninitialized_move(f, l, end())); -} - -template -template // I models InputIterator -typename vector::iterator vector::insert(iterator p, I f, I l, std::input_iterator_tag) -{ - size_type o(p - begin()); - size_type s = size(); - append(f, l); - // REVISIT (sparent) : This could be a move based rotate - std::rotate(begin() + o, begin() + s, end()); - return end() - s + o; -} - -template -template // I models ForwardIterator -typename vector::iterator vector::insert(iterator p, I f, I l, std::forward_iterator_tag) -{ - size_type n(std::distance(f, l)); - iterator last = end(); - size_type before = p - begin(); - - if (remaining() < n) { - vector tmp; - tmp.reserve((adobe::max)(size() + n, 2 * size())); - tmp.append_move(begin(), p); - tmp.append(f, l); - tmp.append_move(p, last); - swap(tmp); - } else { - size_type after(last - p); - - if (n < after) { - append_move(last - n, last); - adobe::move_backward(p, last - n, last); - std::copy(f, l, p); - } else { - I m = f; - std::advance(m, after); - append(m, l); - append_move(p, last); - std::copy(f, m, p); - } - } - return begin() + before + n; -} - -template -template // I models ForwardIterator -typename vector::iterator vector::insert_move(iterator p, I f, I l) -{ - size_type n(std::distance(f, l)); - iterator last = end(); - size_type before = p - begin(); - - if (remaining() < n) { - vector tmp; - tmp.reserve((adobe::max)(size() + n, 2 * size())); - tmp.append_move(begin(), p); - tmp.append_move(f, l); - tmp.append_move(p, last); - swap(tmp); - } else { - size_type after(last - p); - - if (n < after) { - append_move(last - n, last); - adobe::move_backward(p, last - n, last); - adobe::move(f, l, p); - } else { - I m = f; - std::advance(m, after); - append_move(m, l); - append_move(p, last); - adobe::move(f, m, p); - } - } - return begin() + before + n; -} - -template -void vector::reserve(size_type n) -{ - if (capacity() < n) { - vector tmp; - tmp.header_m = allocate(get_allocator(), n); - tmp.header_m->finish() = adobe::uninitialized_move(begin(), end(), tmp.end()); - swap(tmp); - } -} - -template -typename vector::iterator vector::insert(iterator p, size_type n, const T& x) -{ - iterator last = end(); - size_type before = p - begin(); - - if (remaining() < n) { - vector tmp; - tmp.reserve((adobe::max)(size() + n, 2 * size())); - tmp.append_move(begin(), p); - std::uninitialized_fill_n(tmp.end(), n, x); - tmp.set_finish(tmp.end() + n); - tmp.append_move(p, last); - swap(tmp); - } else { - size_type after(last - p); - - if (n < after) { - append_move(last - n, last); - adobe::move_backward(p, last - n, last); - std::fill_n(p, n, x); - } else { - std::uninitialized_fill_n(last, n - after, x); - set_finish(last + (n - after)); - append_move(p, last); - std::fill_n(p, after, x); - } - } - return begin() + before + n; -} - -template -typename vector::iterator vector::erase(iterator f, iterator l) -{ - iterator i = adobe::move(l, end(), f); - for (iterator b(i), e(end()); b != e; ++b) { - b->~value_type(); - } - set_finish(i); - return f; -} - -template -void vector::resize(size_type n) -{ - if (n < size()) erase(begin() + n, end()); - else insert(end(), n - size(), value_type()); -} - -template -void vector::resize(size_type n, const value_type& x) -{ - if (n < size()) erase(begin() + n, end()); - else insert(end(), n - size(), x); -} - -/*************************************************************************************************/ - -#ifdef ADOBE_STD_SERIALIZATION - -template -std::ostream& operator<<(std::ostream& out, const vector& x) -{ - out << begin_sequence; - - for (typename vector::const_iterator first(x.begin()), last(x.end()); first != last; ++first) - { - out << format(*first); - } - - out << end_sequence; - - return out; -} - -#endif - -/*************************************************************************************************/ - -BOOST_STATIC_ASSERT(sizeof(vector) == sizeof(void*)); - -/*************************************************************************************************/ - -} // namespace version_1 -} // namespace adobe - -/*************************************************************************************************/ - -ADOBE_NAME_TYPE_1("vector:version_1:adobe", adobe::version_1::vector >) -ADOBE_NAME_TYPE_2("vector:version_1:adobe", adobe::version_1::vector) - -/*************************************************************************************************/ - -namespace boost { - -template -struct has_nothrow_constructor > : boost::mpl::true_ { }; - -} // namespace boost - -/*! -@} -*/ -/*************************************************************************************************/ - -#endif From 58bf1a8ea6ff2066e516e80029c9d535a602ab98 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 20:44:51 +0200 Subject: [PATCH 14/55] build attempt --- asl-uninitialized-move.patch | 79 ++++-------------------------------- 1 file changed, 9 insertions(+), 70 deletions(-) diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch index 4afe0cb..dd4eac4 100644 --- a/asl-uninitialized-move.patch +++ b/asl-uninitialized-move.patch @@ -1,68 +1,7 @@ -diff --git a/asl-uninitialized-move.patch b/asl-uninitialized-move.patch -index 2cce2e7..e69de29 100644 ---- a/asl-uninitialized-move.patch -+++ b/asl-uninitialized-move.patch -@@ -1,56 +0,0 @@ --diff --git a/adobe/move.hpp b/adobe/move.hpp --index 350000d..6c302a2 100644 ----- a/adobe/move.hpp --+++ b/adobe/move.hpp --@@ -440,8 +440,8 @@ with move semantics, for movable types, otherwise with copy semantics. -- */ -- template // O models BidirectionalIterator ---inline O move_backward(I& in, O out) ---{ return move_backward(boost::begin(in), boost::end(in), out); } --+inline O adobe::move_backward(I& in, O out) --+{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } -- -- /*************************************************************************************************/ -- --diff --git a/adobe/once.hpp b/adobe/once.hpp --index 5f005a4..e349b92 100644 ----- a/adobe/once.hpp --+++ b/adobe/once.hpp --@@ -11,12 +11,12 @@ -- -- /*************************************************************************************************/ -- ---#include --- -- #if defined(BOOST_HAS_THREADS) -- #include -- #endif -- --+#include --+ -- /*************************************************************************************************/ -- -- namespace adobe { --diff --git a/adobe/vector.hpp b/adobe/vector.hpp --index 2d23e59..8968b59 100644 ----- a/adobe/vector.hpp --+++ b/adobe/vector.hpp --@@ -319,7 +319,7 @@ void vector::append_move(I f, I l, std::forward_iterator_tag) -- size_type n(std::distance(f, l)); -- -- if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); --- set_finish(uninitialized_move(f, l, end())); --+ set_finish(adobe::uninitialized_move(f, l, end())); -- } -- -- template --@@ -406,7 +406,7 @@ void vector::reserve(size_type n) -- if (capacity() < n) { -- vector tmp; -- tmp.header_m = allocate(get_allocator(), n); --- tmp.header_m->finish() = uninitialized_move(begin(), end(), tmp.end()); --+ tmp.header_m->finish() = adobe::uninitialized_move(begin(), end(), tmp.end()); -- swap(tmp); -- } -- } -diff --git a/tmp/source_release/adobe/move.hpp b/tmp/source_release/adobe/move.hpp +diff --git a/adobe/move.hpp b/adobe/move.hpp index 350000d..5fe6db5 100644 ---- a/tmp/source_release/adobe/move.hpp -+++ b/tmp/source_release/adobe/move.hpp +--- a/adobe/move.hpp ++++ b/adobe/move.hpp @@ -441,7 +441,7 @@ with move semantics, for movable types, otherwise with copy semantics. template // O models BidirectionalIterator @@ -72,10 +11,10 @@ index 350000d..5fe6db5 100644 /*************************************************************************************************/ -diff --git a/tmp/source_release/adobe/once.hpp b/tmp/source_release/adobe/once.hpp +diff --git a/adobe/once.hpp b/adobe/once.hpp index 5f005a4..e349b92 100644 ---- a/tmp/source_release/adobe/once.hpp -+++ b/tmp/source_release/adobe/once.hpp +--- a/adobe/once.hpp ++++ b/adobe/once.hpp @@ -11,12 +11,12 @@ /*************************************************************************************************/ @@ -91,10 +30,10 @@ index 5f005a4..e349b92 100644 /*************************************************************************************************/ namespace adobe { -diff --git a/tmp/source_release/adobe/vector.hpp b/tmp/source_release/adobe/vector.hpp +diff --git a/adobe/vector.hpp b/adobe/vector.hpp index 926cfa9..8968b59 100644 ---- a/tmp/source_release/adobe/vector.hpp -+++ b/tmp/source_release/adobe/vector.hpp +--- a/adobe/vector.hpp ++++ b/adobe/vector.hpp @@ -319,7 +319,7 @@ void vector::append_move(I f, I l, std::forward_iterator_tag) size_type n(std::distance(f, l)); From af5b0abf4e6e3550a8cba68e7d879ce8bf5c81fc Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 21:04:33 +0200 Subject: [PATCH 15/55] Patch for boost 1.50 in place --- adobe-source-libraries.spec | 4 ++-- asl-uninitialized-move.patch => asl-boost-1.50.patch | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename asl-uninitialized-move.patch => asl-boost-1.50.patch (100%) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index bb47e80..182e254 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -20,7 +20,7 @@ Patch1: asl-fedora-build-options.patch Patch2: asl-no-concept-check1043.patch # https://svn.boost.org/trac/boost/ticket/6940 Patch3: asl-time-utc.patch -Patch4: asl-uninitialized-move.patch +Patch4: asl-boost-1.50.patch BuildRequires: boost-build BuildRequires: boost-devel @@ -139,7 +139,7 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog * Thu Aug 3 2012 Alec Leamas 1.0.43-12 - Handling boost bug 6940 -- Trying to fix build error. +- Updating to boost 1.50. * Thu Apr 5 2012 Alec Leamas 1.0.43-11 - Fixing hard-coded version in .pc file diff --git a/asl-uninitialized-move.patch b/asl-boost-1.50.patch similarity index 100% rename from asl-uninitialized-move.patch rename to asl-boost-1.50.patch From c64b2744a42c8fb9b9e6df06d9caa7ced3ca95a3 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 3 Aug 2012 21:06:38 +0200 Subject: [PATCH 16/55] Patch for boost 1.50 in place, updated release --- adobe-source-libraries.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 182e254..84baac1 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 12%{?dist} +Release: 13%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -137,9 +137,11 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Thu Aug 3 2012 Alec Leamas 1.0.43-13 +- Updating to boost 1.50. + * Thu Aug 3 2012 Alec Leamas 1.0.43-12 - Handling boost bug 6940 -- Updating to boost 1.50. * Thu Apr 5 2012 Alec Leamas 1.0.43-11 - Fixing hard-coded version in .pc file From eba2f609c8b9f094d612e1e68b3315173a738121 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 9 Feb 2013 22:46:17 +0100 Subject: [PATCH 17/55] Rebuild for Boost-1.53.0 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 84baac1..909fccd 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 13%{?dist} +Release: 14%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -137,6 +137,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Sat Feb 09 2013 Denis Arnaud - 1.0.43-14 +- Rebuild for Boost-1.53.0 + * Thu Aug 3 2012 Alec Leamas 1.0.43-13 - Updating to boost 1.50. From 57a0aaced68fdc72020dc8e2c6661139923daa22 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Sat, 16 Feb 2013 17:10:53 +0100 Subject: [PATCH 18/55] Updating for new GCC in F19 --- adobe-source-libraries.spec | 9 ++++++-- asl-C11.patch | 42 +++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 asl-C11.patch diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 909fccd..778c6f7 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 14%{?dist} +Release: 15%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -21,6 +21,7 @@ Patch2: asl-no-concept-check1043.patch # https://svn.boost.org/trac/boost/ticket/6940 Patch3: asl-time-utc.patch Patch4: asl-boost-1.50.patch +Patch5: asl-C11.patch BuildRequires: boost-build BuildRequires: boost-devel @@ -62,6 +63,7 @@ API and other documentation for Adobe Source Libraries (ASL). %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ @@ -70,7 +72,7 @@ chmod 644 LICENSE_1_0_0.txt sed -i 's/@optflags@/%{optflags}/g' jamroot.jam sed -i 's/@version@/%{version}/g' %{SOURCE1} -mv boost-build.jam boost-build.nojam +mv boost-build.jam boost-build.nojam %build @@ -137,6 +139,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Sat Feb 16 2013 Alec Leamas - 1.0.43-15 +- Patching for new gcc version (C11 compatibility). + * Sat Feb 09 2013 Denis Arnaud - 1.0.43-14 - Rebuild for Boost-1.53.0 diff --git a/asl-C11.patch b/asl-C11.patch new file mode 100644 index 0000000..dc59758 --- /dev/null +++ b/asl-C11.patch @@ -0,0 +1,42 @@ +diff --git a/adobe/cmath.hpp b/adobe/cmath.hpp +index 733c299..e671f7c 100644 +--- a/adobe/cmath.hpp ++++ b/adobe/cmath.hpp +@@ -37,18 +37,9 @@ back to include math.h. This also needs to add any other C99 math.h extensions. + #define ADOBE_HAS_CPP_CMATH + + #elif __GNUC__ == 4 +-#if (__GNUC_MINOR__ <= 7) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) +-// at least Ubuntu 9.x, gcc 4.4.1, still falls into this case +-/* +- The currently supported version of GNUC has C99 extensions in math.h. But no TR1 extensions. +-*/ +-#define ADOBE_HAS_C99_MATH_H +-#include +-#else +-#include + + #define ADOBE_HAS_C99_STD_MATH_H +-#endif ++#include + #endif + + #elif defined(_MSC_VER) +@@ -73,12 +64,12 @@ back to include math.h. This also needs to add any other C99 math.h extensions. + + namespace adobe { + +-using std::float_t; +-using std::double_t; ++using std::tr1::float_t; ++using std::tr1::double_t; + +-using std::round; +-using std::lround; +-using std::trunc; ++using std::tr1::round; ++using std::tr1::lround; ++using std::tr1::trunc; + + } // namespace adobe + From 5e06e1c9fa38c84430e2c19648db0c1a3c50c8b7 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Fri, 24 May 2013 15:56:12 +0200 Subject: [PATCH 19/55] Rebuild for TBB memory barrier bug --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 778c6f7..ac5fa41 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 15%{?dist} +Release: 16%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -139,6 +139,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Fri May 24 2013 Petr Machata - 1.0.43-16 +- Rebuild for TBB memory barrier bug + * Sat Feb 16 2013 Alec Leamas - 1.0.43-15 - Patching for new gcc version (C11 compatibility). From 20151ba585b4d2dd05ac3173775f157b8c684650 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Sat, 27 Jul 2013 14:43:37 +0200 Subject: [PATCH 20/55] Rebuild for boost 1.54.0 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index ac5fa41..b1aeafb 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 16%{?dist} +Release: 17%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -139,6 +139,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Sat Jul 27 2013 pmachata@redhat.com - 1.0.43-17 +- Rebuild for boost 1.54.0 + * Fri May 24 2013 Petr Machata - 1.0.43-16 - Rebuild for TBB memory barrier bug From 5a1485ceba65717c91dfbb84d6ec628625f90640 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Sat, 27 Jul 2013 21:03:07 +0200 Subject: [PATCH 21/55] Ditch -mt suffix from a boost DSO --- adobe-source-libraries.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index b1aeafb..4009168 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -84,7 +84,7 @@ rm -rf tmp; mkdir tmp; cd tmp ar x ../../built_artifacts/*/*/*/*/threading-multi/libasl_dev.a gcc -shared -g -Wl,-soname=libasl_dev.so.%{version} -Wl,-as-needed \ *.o -o ../libasl_dev.so.%{version} \ - -lboost_thread-mt -lboost_signals -lboost_filesystem + -lboost_thread -lboost_signals -lboost_filesystem #bjam link=static toolset=gcc variant=release documentation/examples cd ../documentation @@ -139,8 +139,10 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog -* Sat Jul 27 2013 pmachata@redhat.com - 1.0.43-17 +* Sat Jul 27 2013 Petr Machata - 1.0.43-17 - Rebuild for boost 1.54.0 +- Boost package doesn't use tagged sonames anymore, drop the -mt + suffix from linker command line. * Fri May 24 2013 Petr Machata - 1.0.43-16 - Rebuild for TBB memory barrier bug From 1ba92eb2bd502e4ac1aa8c229f603c2e7b65bdb9 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 2 Aug 2013 19:17:59 -0500 Subject: [PATCH 22/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 4009168..fc0f8c3 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,6 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 17%{?dist} +Release: 18%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -139,6 +139,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Sat Aug 03 2013 Fedora Release Engineering - 1.0.43-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + * Sat Jul 27 2013 Petr Machata - 1.0.43-17 - Rebuild for boost 1.54.0 - Boost package doesn't use tagged sonames anymore, drop the -mt From cda1c2b6287e695371bc1d7a6913e467a4f1891e Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Fri, 9 Aug 2013 03:59:56 +0200 Subject: [PATCH 23/55] Fix unversioned docdir problem in f20. --- adobe-source-libraries.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index fc0f8c3..6e650ab 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -1,6 +1,8 @@ +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + Name: adobe-source-libraries Version: 1.0.43 -Release: 18%{?dist} +Release: 19%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -127,7 +129,7 @@ ln -sf $sofile ${sofile%%.*.*.*} %files %doc LICENSE_1_0_0.txt read_me.html release_notes.txt README.fedora %{_libdir}/*.so.* -%exclude %{_datadir}/doc/%{name}-%{version}/documentation +%exclude %{_pkgdocdir}/documentation %files devel %{_includedir}/* @@ -139,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Sat Aug 09 2013 Alec Leamas - 1.0.43-19 +- Fix f20 unversioned docdir glitch + * Sat Aug 03 2013 Fedora Release Engineering - 1.0.43-18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild From e7a0b5570b9774ed7869170f75c36402d0a782b7 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Fri, 23 May 2014 04:41:41 +0200 Subject: [PATCH 24/55] Rebuild for boost 1.55.0 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 6e650ab..31ba1a4 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 19%{?dist} +Release: 20%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -141,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Fri May 23 2014 Petr Machata - 1.0.43-20 +- Rebuild for boost 1.55.0 + * Sat Aug 09 2013 Alec Leamas - 1.0.43-19 - Fix f20 unversioned docdir glitch From fcd6f9abc1fcc7c6897054d93fcb65b9a25650e3 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 6 Jun 2014 19:09:37 -0500 Subject: [PATCH 25/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 31ba1a4..8adf6c9 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 20%{?dist} +Release: 21%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -141,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Sat Jun 07 2014 Fedora Release Engineering - 1.0.43-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Fri May 23 2014 Petr Machata - 1.0.43-20 - Rebuild for boost 1.55.0 From 0669d43e81f1c4db2489da13684d591f909af9f5 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Fri, 15 Aug 2014 20:02:47 +0000 Subject: [PATCH 26/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 8adf6c9..2d3e01f 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 21%{?dist} +Release: 22%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -141,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Fri Aug 15 2014 Fedora Release Engineering - 1.0.43-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Sat Jun 07 2014 Fedora Release Engineering - 1.0.43-21 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From c86b11cc504882e22817928743a57d2264a311d5 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 25 Oct 2014 13:48:10 +0100 Subject: [PATCH 27/55] sync tbb arches --- adobe-source-libraries.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 2d3e01f..deaf311 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 22%{?dist} +Release: 23%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -32,7 +32,7 @@ BuildRequires: tbb-devel BuildRequires: texlive-dvips texlive-latex # needs to match TBB -ExclusiveArch: %{ix86} x86_64 ia64 +ExcludeArch: s390 s390x %description ASL provides peer-reviewed and portable C++ source libraries. The @@ -141,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Sat Oct 25 2014 Peter Robinson 1.0.43-23 +- sync tbb arches + * Fri Aug 15 2014 Fedora Release Engineering - 1.0.43-22 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild From af244234d587fc0456d463acb40d25433cb9a1b5 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Tue, 27 Jan 2015 09:21:40 +0100 Subject: [PATCH 28/55] Rebuild for boost 1.57.0 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index deaf311..e7f71af 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 23%{?dist} +Release: 24%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -141,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Tue Jan 27 2015 Petr Machata - 1.0.43-24 +- Rebuild for boost 1.57.0 + * Sat Oct 25 2014 Peter Robinson 1.0.43-23 - sync tbb arches From 9e20364e24324540fd62a94637dc49941eccff0b Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Thu, 29 Jan 2015 01:13:48 +0100 Subject: [PATCH 29/55] Mention namespace at several adobe::move calls --- adobe-source-libraries.spec | 5 ++++- asl-boost-1.57.patch | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 asl-boost-1.57.patch diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index e7f71af..05fcb44 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -24,6 +24,7 @@ Patch2: asl-no-concept-check1043.patch Patch3: asl-time-utc.patch Patch4: asl-boost-1.50.patch Patch5: asl-C11.patch +Patch6: asl-boost-1.57.patch BuildRequires: boost-build BuildRequires: boost-devel @@ -66,6 +67,7 @@ API and other documentation for Adobe Source Libraries (ASL). %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ @@ -141,8 +143,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog -* Tue Jan 27 2015 Petr Machata - 1.0.43-24 +* Thu Jan 29 2015 Petr Machata - 1.0.43-24 - Rebuild for boost 1.57.0 +- Mention namespace at several adobe::move calls (asl-boost-1.57.patch) * Sat Oct 25 2014 Peter Robinson 1.0.43-23 - sync tbb arches diff --git a/asl-boost-1.57.patch b/asl-boost-1.57.patch new file mode 100644 index 0000000..b6ac1a9 --- /dev/null +++ b/asl-boost-1.57.patch @@ -0,0 +1,41 @@ +diff -up source_release/source/adam.cpp\~ source_release/source/adam.cpp +--- source_release/source/adam.cpp~ 2010-11-08 19:19:49.000000000 +0100 ++++ source_release/source/adam.cpp 2015-01-29 01:09:20.085293825 +0100 +@@ -576,7 +576,7 @@ void sheet_t::add_constant(name_t consta + { object_m->add_constant(constant, position, initializer); } + + void sheet_t::add_constant(name_t name, any_regular_t value) +-{ object_m->add_constant(name, move(value)); } ++{ object_m->add_constant(name, adobe::move(value)); } + + void sheet_t::add_logic(name_t logic, const line_position_t& position, const array_t& expression) + { object_m->add_logic(logic, position, expression); } +@@ -591,7 +591,7 @@ void sheet_t::add_interface(name_t name, + { object_m->add_interface(name, linked, position1, initializer, position2, expression); } + + void sheet_t::add_interface(name_t name, any_regular_t initial) +-{ object_m->add_interface(name, move(initial)); } ++{ object_m->add_interface(name, adobe::move(initial)); } + + void sheet_t::add_relation(const line_position_t& position, const array_t& conditional, + const relation_t* first, const relation_t* last) +@@ -835,7 +835,7 @@ void sheet_t::implementation_t::add_inte + + input_index_m.insert(cell); + +- cell.state_m = move(initial); ++ cell.state_m = adobe::move(initial); + cell.priority_m = ++priority_high_m; + + cell_set_m.push_back(cell_t(access_interface_output, name, +@@ -870,7 +870,7 @@ void sheet_t::implementation_t::add_cons + + void sheet_t::implementation_t::add_constant(name_t name, any_regular_t value) + { +- cell_set_m.push_back(cell_t(access_constant, name, move(value), cell_set_m.size())); ++ cell_set_m.push_back(cell_t(access_constant, name, adobe::move(value), cell_set_m.size())); + + if (!name_index_m.insert(cell_set_m.back()).second) { + throw std::logic_error(make_string("cell named '", name.c_str(), "'already exists.")); + +Diff finished. Thu Jan 29 01:09:42 2015 From 2306c1545d62fb0eef4fc96f61e12cfd7f3e8949 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 16 Jun 2015 23:38:30 +0000 Subject: [PATCH 30/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 05fcb44..5377833 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 24%{?dist} +Release: 25%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -143,6 +143,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Tue Jun 16 2015 Fedora Release Engineering - 1.0.43-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Thu Jan 29 2015 Petr Machata - 1.0.43-24 - Rebuild for boost 1.57.0 - Mention namespace at several adobe::move calls (asl-boost-1.57.patch) From a7ac15f9b51e503ed1e74eec02d1f866ff24ff30 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Wed, 22 Jul 2015 18:01:26 +0200 Subject: [PATCH 31/55] rebuild for Boost 1.58 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 5377833..571a242 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 25%{?dist} +Release: 26%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -143,6 +143,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Jul 22 2015 David Tardon - 1.0.43-26 +- rebuild for Boost 1.58 + * Tue Jun 16 2015 Fedora Release Engineering - 1.0.43-25 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild From 7b8a32b9d6d249b56899a38aac41ab28f1c7c4ac Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 23 Jul 2015 13:08:03 +0200 Subject: [PATCH 32/55] optflags can contain a path --- adobe-source-libraries.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 571a242..b0cdddd 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -74,7 +74,7 @@ iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ mv -f release_notes.txt.conv release_notes.txt chmod 644 LICENSE_1_0_0.txt -sed -i 's/@optflags@/%{optflags}/g' jamroot.jam +sed -i 's!@optflags@!%{optflags}!g' jamroot.jam sed -i 's/@version@/%{version}/g' %{SOURCE1} mv boost-build.jam boost-build.nojam From 6daa1e6e818c77403494d7be03cdfa1e074ed916 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 29 Jul 2015 11:55:44 -0500 Subject: [PATCH 33/55] - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index b0cdddd..cd30629 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 26%{?dist} +Release: 27%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -143,6 +143,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Jul 29 2015 Fedora Release Engineering - 1.0.43-27 +- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 + * Wed Jul 22 2015 David Tardon - 1.0.43-26 - rebuild for Boost 1.58 From ac1db1f72d92bc4c3020645fee493c225e68693c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 20 Aug 2015 17:29:30 +0200 Subject: [PATCH 34/55] gcc5 patches, fix changelog dates --- asl-gcc5.patch | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 asl-gcc5.patch diff --git a/asl-gcc5.patch b/asl-gcc5.patch new file mode 100644 index 0000000..080eb1e --- /dev/null +++ b/asl-gcc5.patch @@ -0,0 +1,26 @@ +--- source_release/adobe/cmath.hpp~ 2015-08-05 12:10:17.637727832 +0100 ++++ source_release/adobe/cmath.hpp 2015-08-05 12:24:28.811279909 +0100 +@@ -36,19 +36,12 @@ + + #define ADOBE_HAS_CPP_CMATH + +-#elif __GNUC__ == 4 +-#if (__GNUC_MINOR__ < 6) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) +-// at least Ubuntu 9.x, gcc 4.4.1, still falls into this case +-/* +- The currently supported version of GNUC has C99 extensions in math.h. But no TR1 extensions. +-*/ ++#elif __GNUC__ >= 4 ++ ++// GNUC has C99 extensions in math.h but not in until C++11. + #define ADOBE_HAS_C99_MATH_H + #include +-#else +-#include +-s +-#define ADOBE_HAS_C99_STD_MATH_H +-#endif ++ + #endif + + #elif defined(_MSC_VER) From 3526557d6cde2e91804b3bcd43e0ce385c087ee1 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Thu, 20 Aug 2015 17:50:55 +0200 Subject: [PATCH 35/55] Adding to gcc5 patches --- adobe-source-libraries.pc | 2 +- adobe-source-libraries.spec | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/adobe-source-libraries.pc b/adobe-source-libraries.pc index 1f44686..ccded20 100644 --- a/adobe-source-libraries.pc +++ b/adobe-source-libraries.pc @@ -3,6 +3,6 @@ includedir=/usr/include Name: adobe-source-libraries Description: General purpose addon to STL and Boost. -Version: @version@ +Version: 1.0.43 Libs: -lasl_dev Cflags: -I${includedir}/adobe diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index cd30629..f68c17b 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 27%{?dist} +Release: 28%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -16,14 +16,13 @@ Source1: adobe-source-libraries.pc Source2: README.fedora # https://sourceforge.net/tracker/?func=detail&aid=3487687&group_id=132417&atid=724218 # (pathch0, patch1) -Patch0: asl-gcc.patch +Patch0: asl-gcc5.patch Patch1: asl-fedora-build-options.patch # https://svn.boost.org/trac/boost/ticket/4647 Patch2: asl-no-concept-check1043.patch # https://svn.boost.org/trac/boost/ticket/6940 Patch3: asl-time-utc.patch Patch4: asl-boost-1.50.patch -Patch5: asl-C11.patch Patch6: asl-boost-1.57.patch BuildRequires: boost-build @@ -66,7 +65,6 @@ API and other documentation for Adobe Source Libraries (ASL). %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 %patch6 -p1 find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; @@ -143,6 +141,10 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Aug 05 2015 Jonathan Wakely 1.0.43-28 +- Update patches for GCC 5 compatiblity. +- Fix changelog dates. + * Wed Jul 29 2015 Fedora Release Engineering - 1.0.43-27 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 @@ -168,7 +170,7 @@ ln -sf $sofile ${sofile%%.*.*.*} * Fri May 23 2014 Petr Machata - 1.0.43-20 - Rebuild for boost 1.55.0 -* Sat Aug 09 2013 Alec Leamas - 1.0.43-19 +* Fri Aug 09 2013 Alec Leamas - 1.0.43-19 - Fix f20 unversioned docdir glitch * Sat Aug 03 2013 Fedora Release Engineering - 1.0.43-18 @@ -188,10 +190,10 @@ ln -sf $sofile ${sofile%%.*.*.*} * Sat Feb 09 2013 Denis Arnaud - 1.0.43-14 - Rebuild for Boost-1.53.0 -* Thu Aug 3 2012 Alec Leamas 1.0.43-13 +* Fri Aug 3 2012 Alec Leamas 1.0.43-13 - Updating to boost 1.50. -* Thu Aug 3 2012 Alec Leamas 1.0.43-12 +* Fri Aug 3 2012 Alec Leamas 1.0.43-12 - Handling boost bug 6940 * Thu Apr 5 2012 Alec Leamas 1.0.43-11 From 092afd35bc7f6c6ca4d6bea127aa8dc36de66f8f Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 27 Aug 2015 21:17:07 +0100 Subject: [PATCH 36/55] Rebuilt for Boost 1.59 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index f68c17b..700a2f8 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 28%{?dist} +Release: 29%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -141,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Thu Aug 27 2015 Jonathan Wakely - 1.0.43-29 +- Rebuilt for Boost 1.59 + * Wed Aug 05 2015 Jonathan Wakely 1.0.43-28 - Update patches for GCC 5 compatiblity. - Fix changelog dates. From 90e6239bf6f83a41e34e0ef31a0e6ca3073b39d9 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 14 Jan 2016 01:57:03 +0000 Subject: [PATCH 37/55] Add patch for Boost 1.60.0 --- adobe-source-libraries.spec | 7 ++++++- asl-boost-1.60.patch | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 asl-boost-1.60.patch diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 700a2f8..d07fc14 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 29%{?dist} +Release: 30%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -24,6 +24,7 @@ Patch2: asl-no-concept-check1043.patch Patch3: asl-time-utc.patch Patch4: asl-boost-1.50.patch Patch6: asl-boost-1.57.patch +Patch7: asl-boost-1.60.patch BuildRequires: boost-build BuildRequires: boost-devel @@ -66,6 +67,7 @@ API and other documentation for Adobe Source Libraries (ASL). %patch3 -p1 %patch4 -p1 %patch6 -p1 +%patch7 -p1 find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ @@ -141,6 +143,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Thu Jan 14 2016 Jonathan Wakely 1.0.43-30 +- Add patch for Boost 1.60.0 + * Thu Aug 27 2015 Jonathan Wakely - 1.0.43-29 - Rebuilt for Boost 1.59 diff --git a/asl-boost-1.60.patch b/asl-boost-1.60.patch new file mode 100644 index 0000000..2fc1c59 --- /dev/null +++ b/asl-boost-1.60.patch @@ -0,0 +1,32 @@ +--- source_release/adobe/eve.hpp~ 2015-11-20 11:35:57.541968704 +0000 ++++ source_release/adobe/eve.hpp 2015-11-20 11:37:45.443943283 +0000 +@@ -14,6 +14,7 @@ + #include + + #include ++#include + + #include + #include +@@ -38,6 +39,13 @@ + + #if !defined(ADOBE_NO_DOCUMENTATION) + namespace boost { ++#if BOOST_VERSION >= 106000 ++ template <> ++ struct is_pod ++ : true_type ++ { ++ }; ++#else + namespace detail { + template <> + struct is_pod_impl +@@ -45,6 +53,7 @@ + BOOST_STATIC_CONSTANT(bool, value = true); + }; + } ++#endif + } + #endif + From 53ec9d4ac508ef9afc4a8e906a8b68c174474515 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 3 Feb 2016 16:00:04 +0000 Subject: [PATCH 38/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index d07fc14..8a40841 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 30%{?dist} +Release: 31%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -143,6 +143,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Feb 03 2016 Fedora Release Engineering - 1.0.43-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Thu Jan 14 2016 Jonathan Wakely 1.0.43-30 - Add patch for Boost 1.60.0 From c6dee1bb0e98c0caf31712b57999698b67338c89 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 16 May 2016 15:38:33 +0100 Subject: [PATCH 39/55] Rebuilt for linker errors in boost (#1331983) --- adobe-source-libraries.spec | 8 +++++++- asl-gcc6.patch | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 asl-gcc6.patch diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 8a40841..743954d 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 31%{?dist} +Release: 32%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -25,6 +25,7 @@ Patch3: asl-time-utc.patch Patch4: asl-boost-1.50.patch Patch6: asl-boost-1.57.patch Patch7: asl-boost-1.60.patch +Patch8: asl-gcc6.patch BuildRequires: boost-build BuildRequires: boost-devel @@ -68,6 +69,7 @@ API and other documentation for Adobe Source Libraries (ASL). %patch4 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ @@ -143,6 +145,10 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Mon May 16 2016 Jonathan Wakely - 1.0.43-32 +- Rebuilt for linker errors in boost (#1331983) +- Patched for C++14 support in GCC 6 + * Wed Feb 03 2016 Fedora Release Engineering - 1.0.43-31 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild diff --git a/asl-gcc6.patch b/asl-gcc6.patch new file mode 100644 index 0000000..f5a56dd --- /dev/null +++ b/asl-gcc6.patch @@ -0,0 +1,14 @@ +--- source_release/adobe/cmath.hpp.orig 2016-05-16 16:43:02.179719529 +0100 ++++ source_release/adobe/cmath.hpp 2016-05-16 16:51:32.576909454 +0100 +@@ -39,7 +39,11 @@ + #elif __GNUC__ >= 4 + + // GNUC has C99 extensions in math.h but not in until C++11. ++#if __cplusplus >= 20103L ++#define ADOBE_HAS_C99_STD_MATH_H ++#else + #define ADOBE_HAS_C99_MATH_H ++#endif + #include + + #endif From 3d9183e9668defd23bfa26f163ebfe83ba3cc143 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Jan 2017 02:49:25 +0000 Subject: [PATCH 40/55] Rebuilt for Boost 1.63 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 743954d..d65a5b3 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 32%{?dist} +Release: 33%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Fri Jan 27 2017 Jonathan Wakely - 1.0.43-33 +- Rebuilt for Boost 1.63 + * Mon May 16 2016 Jonathan Wakely - 1.0.43-32 - Rebuilt for linker errors in boost (#1331983) - Patched for C++14 support in GCC 6 From 580b489105d0abfd34b8cbb149d33da21cbba772 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Jan 2017 16:37:20 +0000 Subject: [PATCH 41/55] Rebuilt for Boost 1.63 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index d65a5b3..387f68a 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 33%{?dist} +Release: 34%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Fri Jan 27 2017 Jonathan Wakely - 1.0.43-34 +- Rebuilt for Boost 1.63 + * Fri Jan 27 2017 Jonathan Wakely - 1.0.43-33 - Rebuilt for Boost 1.63 From 4216b94e3c45b18678ac96c33dbef47659955bda Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 10 Feb 2017 05:46:05 +0000 Subject: [PATCH 42/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 387f68a..e26f32b 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 34%{?dist} +Release: 35%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Fri Feb 10 2017 Fedora Release Engineering - 1.0.43-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Fri Jan 27 2017 Jonathan Wakely - 1.0.43-34 - Rebuilt for Boost 1.63 From 6bea6fe4d00bd94b94278692975b52c0c6de4f31 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 15 May 2017 21:03:27 +0000 Subject: [PATCH 43/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index e26f32b..01e0de7 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 35%{?dist} +Release: 36%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Mon May 15 2017 Fedora Release Engineering - 1.0.43-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild + * Fri Feb 10 2017 Fedora Release Engineering - 1.0.43-35 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild From 713f4fb1db97e7d262f729f0a13fb378c2913fc7 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 3 Jul 2017 15:58:03 +0100 Subject: [PATCH 44/55] Rebuilt for Boost 1.64 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 01e0de7..b2b1ef7 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 36%{?dist} +Release: 37%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Mon Jul 03 2017 Jonathan Wakely - 1.0.43-37 +- Rebuilt for Boost 1.64 + * Mon May 15 2017 Fedora Release Engineering - 1.0.43-36 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild From 5ec64e5bd080fc08db39e9e25b53d1bdd6231e93 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 19 Jul 2017 16:20:07 +0100 Subject: [PATCH 45/55] Rebuilt for s390x binutils bug --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index b2b1ef7..3ada7fc 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 37%{?dist} +Release: 38%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Jul 19 2017 Jonathan Wakely - 1.0.43-38 +- Rebuilt for s390x binutils bug + * Mon Jul 03 2017 Jonathan Wakely - 1.0.43-37 - Rebuilt for Boost 1.64 From 7739cdd7a4dc4ec8905e818318ee39512beb7307 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 26 Jul 2017 02:37:22 +0000 Subject: [PATCH 46/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 3ada7fc..34245d5 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 38%{?dist} +Release: 39%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Jul 26 2017 Fedora Release Engineering - 1.0.43-39 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Wed Jul 19 2017 Jonathan Wakely - 1.0.43-38 - Rebuilt for s390x binutils bug From 375cb3333c39f456225a224a0c5f85b5fcd6ab6f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 2 Aug 2017 17:24:44 +0000 Subject: [PATCH 47/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 34245d5..5ccf81e 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 39%{?dist} +Release: 40%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Aug 02 2017 Fedora Release Engineering - 1.0.43-40 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Wed Jul 26 2017 Fedora Release Engineering - 1.0.43-39 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From 454f8763fe94714dbc7473af1f8726242d1b9a8c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 22 Jan 2018 23:44:50 +0000 Subject: [PATCH 48/55] Rebuilt for Boost 1.66 --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 5ccf81e..b60c0ba 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 40%{?dist} +Release: 41%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Mon Jan 22 2018 Jonathan Wakely - 1.0.43-41 +- Rebuilt for Boost 1.66 + * Wed Aug 02 2017 Fedora Release Engineering - 1.0.43-40 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From f38eb47a9eb39bab03ba803803df2b20111b7d28 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 7 Feb 2018 01:55:09 +0000 Subject: [PATCH 49/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index b60c0ba..b503a22 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 41%{?dist} +Release: 42%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Wed Feb 07 2018 Fedora Release Engineering - 1.0.43-42 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Mon Jan 22 2018 Jonathan Wakely - 1.0.43-41 - Rebuilt for Boost 1.66 From 984109e5e6cfdf1e0583197ef71915ad8f900cec Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 12 Jul 2018 20:01:14 +0000 Subject: [PATCH 50/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index b503a22..f1c5f99 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 42%{?dist} +Release: 43%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -145,6 +145,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Thu Jul 12 2018 Fedora Release Engineering - 1.0.43-43 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Wed Feb 07 2018 Fedora Release Engineering - 1.0.43-42 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild From 042eddfa7f71e6861c9ed447a75c0d4bbfddf1a9 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Thu, 1 Nov 2018 13:41:00 +0100 Subject: [PATCH 51/55] 1.0.43-44: Fix missing BR: gcc-c++. --- adobe-source-libraries.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index f1c5f99..5f22a29 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 43%{?dist} +Release: 44%{?dist} Summary: General purpose C++ libraries Group: System Environment/Libraries @@ -30,6 +30,7 @@ Patch8: asl-gcc6.patch BuildRequires: boost-build BuildRequires: boost-devel BuildRequires: doxygen +BuildRequires: gcc-c++ BuildRequires: tbb-devel BuildRequires: texlive-dvips texlive-latex @@ -145,6 +146,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Thu Nov 01 2018 Alec Leamas - 1.0.43-44 +- Add missing BR: gcc-c++ + * Thu Jul 12 2018 Fedora Release Engineering - 1.0.43-43 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 502809c7723b0de919835355e321cff430d7efb7 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 22 Jan 2019 18:38:29 +0100 Subject: [PATCH 52/55] Remove obsolete ldconfig scriptlets References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets Signed-off-by: Igor Gnatenko --- adobe-source-libraries.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 5f22a29..45e8fbb 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -126,9 +126,7 @@ ln -sf $sofile ${sofile%%.*.*} ln -sf $sofile ${sofile%%.*.*.*} -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig +%ldconfig_scriptlets %files From 987e0db41af36a4bc216a8a682a219f1d4db104f Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Mon, 28 Jan 2019 20:17:38 +0100 Subject: [PATCH 53/55] Remove obsolete Group tag Signed-off-by: Igor Gnatenko --- adobe-source-libraries.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index 45e8fbb..f8d10c3 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -5,7 +5,6 @@ Version: 1.0.43 Release: 44%{?dist} Summary: General purpose C++ libraries -Group: System Environment/Libraries # License breakdown: http://stlab.adobe.com/licenses.html License: MIT URL: http://stlab.adobe.com/ @@ -44,7 +43,6 @@ both the C++ Standard Library and the Boost Libraries. %package devel Summary: Development files for %{name} -Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: pkgconfig @@ -54,7 +52,6 @@ use %{name}. %package doc Summary: Documentation -Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description doc From 384345722ff4e94f28b44a0cf91913f4109e14c4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 13:00:43 +0000 Subject: [PATCH 54/55] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- adobe-source-libraries.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec index f8d10c3..7ed013a 100644 --- a/adobe-source-libraries.spec +++ b/adobe-source-libraries.spec @@ -2,7 +2,7 @@ Name: adobe-source-libraries Version: 1.0.43 -Release: 44%{?dist} +Release: 45%{?dist} Summary: General purpose C++ libraries # License breakdown: http://stlab.adobe.com/licenses.html @@ -141,6 +141,9 @@ ln -sf $sofile ${sofile%%.*.*.*} %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 1.0.43-45 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Thu Nov 01 2018 Alec Leamas - 1.0.43-44 - Add missing BR: gcc-c++ From c29aecd18a7f8a8474c1842a6c16882cfbffa4a1 Mon Sep 17 00:00:00 2001 From: Alec Leamas Date: Sun, 17 Feb 2019 14:57:31 +0100 Subject: [PATCH 55/55] Orphaned --- .gitignore | 1 - README.fedora | 13 -- adobe-source-libraries.pc | 8 - adobe-source-libraries.spec | 301 --------------------------------- asl-C11.patch | 42 ----- asl-boost-1.50.patch | 81 --------- asl-boost-1.57.patch | 41 ----- asl-boost-1.60.patch | 32 ---- asl-fedora-build-options.patch | 60 ------- asl-gcc.patch | 47 ----- asl-gcc5.patch | 26 --- asl-gcc6.patch | 14 -- asl-no-concept-check1043.patch | 88 ---------- asl-time-utc.patch | 57 ------- dead.package | 1 + sources | 1 - 16 files changed, 1 insertion(+), 812 deletions(-) delete mode 100644 .gitignore delete mode 100644 README.fedora delete mode 100644 adobe-source-libraries.pc delete mode 100644 adobe-source-libraries.spec delete mode 100644 asl-C11.patch delete mode 100644 asl-boost-1.50.patch delete mode 100644 asl-boost-1.57.patch delete mode 100644 asl-boost-1.60.patch delete mode 100644 asl-fedora-build-options.patch delete mode 100644 asl-gcc.patch delete mode 100644 asl-gcc5.patch delete mode 100644 asl-gcc6.patch delete mode 100644 asl-no-concept-check1043.patch delete mode 100644 asl-time-utc.patch create mode 100644 dead.package delete mode 100644 sources diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 740d89f..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/asl_1.0.43.tgz diff --git a/README.fedora b/README.fedora deleted file mode 100644 index 9f0fe3b..0000000 --- a/README.fedora +++ /dev/null @@ -1,13 +0,0 @@ -In the fedora version the any_iterator has the ability to relax some -checks as outlined in https://svn.boost.org/trac/boost/ticket/4647. - -To enable this, set the NO_ASL_AI_CONCEPT_CHECK symbol e. g., - -#ifndef __MLIB_SDK_ASL_ANY_ITER_H__ -#define __MLIB_SDK_ASL_ANY_ITER_H__ - -#define NO_ASL_AI_CONCEPT_CHECK -#include - -#endif // #ifndef __MLIB_SDK_ASL_ANY_ITER_H__ - diff --git a/adobe-source-libraries.pc b/adobe-source-libraries.pc deleted file mode 100644 index ccded20..0000000 --- a/adobe-source-libraries.pc +++ /dev/null @@ -1,8 +0,0 @@ -prefix=/usr -includedir=/usr/include - -Name: adobe-source-libraries -Description: General purpose addon to STL and Boost. -Version: 1.0.43 -Libs: -lasl_dev -Cflags: -I${includedir}/adobe diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec deleted file mode 100644 index 7ed013a..0000000 --- a/adobe-source-libraries.spec +++ /dev/null @@ -1,301 +0,0 @@ -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -Name: adobe-source-libraries -Version: 1.0.43 -Release: 45%{?dist} - -Summary: General purpose C++ libraries - # License breakdown: http://stlab.adobe.com/licenses.html -License: MIT -URL: http://stlab.adobe.com/ - -Source0: http://downloads.sourceforge.net/project/adobe-source/adobe-source/%{version}/asl_%{version}.tgz - # pkg-config(1) configuration file, part of packaging. -Source1: adobe-source-libraries.pc -Source2: README.fedora -# https://sourceforge.net/tracker/?func=detail&aid=3487687&group_id=132417&atid=724218 -# (pathch0, patch1) -Patch0: asl-gcc5.patch -Patch1: asl-fedora-build-options.patch -# https://svn.boost.org/trac/boost/ticket/4647 -Patch2: asl-no-concept-check1043.patch -# https://svn.boost.org/trac/boost/ticket/6940 -Patch3: asl-time-utc.patch -Patch4: asl-boost-1.50.patch -Patch6: asl-boost-1.57.patch -Patch7: asl-boost-1.60.patch -Patch8: asl-gcc6.patch - -BuildRequires: boost-build -BuildRequires: boost-devel -BuildRequires: doxygen -BuildRequires: gcc-c++ -BuildRequires: tbb-devel -BuildRequires: texlive-dvips texlive-latex - -# needs to match TBB -ExcludeArch: s390 s390x - -%description -ASL provides peer-reviewed and portable C++ source libraries. The -libraries are intended to be widely useful, leveraging and extending -both the C++ Standard Library and the Boost Libraries. - -%package devel -Summary: Development files for %{name} -Requires: %{name} = %{version}-%{release} -Requires: pkgconfig - -%description devel -Libraries and header files for developing applications that -use %{name}. - -%package doc -Summary: Documentation -Requires: %{name} = %{version}-%{release} - -%description doc -API and other documentation for Adobe Source Libraries (ASL). - - -%prep -%setup -qn source_release -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 - -find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; -iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ - mv -f release_notes.txt.conv release_notes.txt -chmod 644 LICENSE_1_0_0.txt - -sed -i 's!@optflags@!%{optflags}!g' jamroot.jam -sed -i 's/@version@/%{version}/g' %{SOURCE1} -mv boost-build.jam boost-build.nojam - - -%build -# Using static lib (relinked in next step) due to soname problems: -# https://svn.boost.org/trac/boost/ticket/2746. -bjam link=static toolset=gcc variant=release asl_dev - -rm -rf tmp; mkdir tmp; cd tmp -ar x ../../built_artifacts/*/*/*/*/threading-multi/libasl_dev.a -gcc -shared -g -Wl,-soname=libasl_dev.so.%{version} -Wl,-as-needed \ - *.o -o ../libasl_dev.so.%{version} \ - -lboost_thread -lboost_signals -lboost_filesystem - -#bjam link=static toolset=gcc variant=release documentation/examples -cd ../documentation -./build_docs.pl - - -%install -cp %SOURCE2 . -cd documentation -rm -f build_docs.pl -find . -name *.dox -delete -rm -rf asl doxygen_support_files doxyfile performance stldoc \ - structure tutorials widget_lib -# https://sourceforge.net/projects/adobe-source/forums/forum/449268/topic/5126565 -[ -s performance/index.html ] || rm -f performance/index.html - -mkdir -p %{buildroot}%{_datadir}/doc/%{name}-%{version} -cd .. -mv documentation %{buildroot}%{_datadir}/doc/%{name}-%{version} - -mkdir -p %{buildroot}%{_libdir}/pkgconfig -cp %{SOURCE1} %{buildroot}%{_libdir}/pkgconfig -mkdir -p %{buildroot}%{_includedir} -cp -ar adobe %{buildroot}%{_includedir} - -sofile=libasl_dev.so.%{version} -mkdir -p %{buildroot}%{_libdir} -install -m 755 $sofile %{buildroot}%{_libdir} -cd %{buildroot}%{_libdir} -ln -sf $sofile ${sofile%%.*} -ln -sf $sofile ${sofile%%.*.*} -ln -sf $sofile ${sofile%%.*.*.*} - - -%ldconfig_scriptlets - - -%files -%doc LICENSE_1_0_0.txt read_me.html release_notes.txt README.fedora -%{_libdir}/*.so.* -%exclude %{_pkgdocdir}/documentation - -%files devel -%{_includedir}/* -%{_libdir}/*.so -%{_libdir}/pkgconfig/*.pc - -%files doc -%doc %{_datadir}/doc/%{name}-%{version}/documentation - - -%changelog -* Thu Jan 31 2019 Fedora Release Engineering - 1.0.43-45 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Nov 01 2018 Alec Leamas - 1.0.43-44 -- Add missing BR: gcc-c++ - -* Thu Jul 12 2018 Fedora Release Engineering - 1.0.43-43 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Feb 07 2018 Fedora Release Engineering - 1.0.43-42 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 22 2018 Jonathan Wakely - 1.0.43-41 -- Rebuilt for Boost 1.66 - -* Wed Aug 02 2017 Fedora Release Engineering - 1.0.43-40 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.0.43-39 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed Jul 19 2017 Jonathan Wakely - 1.0.43-38 -- Rebuilt for s390x binutils bug - -* Mon Jul 03 2017 Jonathan Wakely - 1.0.43-37 -- Rebuilt for Boost 1.64 - -* Mon May 15 2017 Fedora Release Engineering - 1.0.43-36 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 1.0.43-35 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Jan 27 2017 Jonathan Wakely - 1.0.43-34 -- Rebuilt for Boost 1.63 - -* Fri Jan 27 2017 Jonathan Wakely - 1.0.43-33 -- Rebuilt for Boost 1.63 - -* Mon May 16 2016 Jonathan Wakely - 1.0.43-32 -- Rebuilt for linker errors in boost (#1331983) -- Patched for C++14 support in GCC 6 - -* Wed Feb 03 2016 Fedora Release Engineering - 1.0.43-31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 14 2016 Jonathan Wakely 1.0.43-30 -- Add patch for Boost 1.60.0 - -* Thu Aug 27 2015 Jonathan Wakely - 1.0.43-29 -- Rebuilt for Boost 1.59 - -* Wed Aug 05 2015 Jonathan Wakely 1.0.43-28 -- Update patches for GCC 5 compatiblity. -- Fix changelog dates. - -* Wed Jul 29 2015 Fedora Release Engineering - 1.0.43-27 -- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 - -* Wed Jul 22 2015 David Tardon - 1.0.43-26 -- rebuild for Boost 1.58 - -* Tue Jun 16 2015 Fedora Release Engineering - 1.0.43-25 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu Jan 29 2015 Petr Machata - 1.0.43-24 -- Rebuild for boost 1.57.0 -- Mention namespace at several adobe::move calls (asl-boost-1.57.patch) - -* Sat Oct 25 2014 Peter Robinson 1.0.43-23 -- sync tbb arches - -* Fri Aug 15 2014 Fedora Release Engineering - 1.0.43-22 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 1.0.43-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri May 23 2014 Petr Machata - 1.0.43-20 -- Rebuild for boost 1.55.0 - -* Fri Aug 09 2013 Alec Leamas - 1.0.43-19 -- Fix f20 unversioned docdir glitch - -* Sat Aug 03 2013 Fedora Release Engineering - 1.0.43-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Sat Jul 27 2013 Petr Machata - 1.0.43-17 -- Rebuild for boost 1.54.0 -- Boost package doesn't use tagged sonames anymore, drop the -mt - suffix from linker command line. - -* Fri May 24 2013 Petr Machata - 1.0.43-16 -- Rebuild for TBB memory barrier bug - -* Sat Feb 16 2013 Alec Leamas - 1.0.43-15 -- Patching for new gcc version (C11 compatibility). - -* Sat Feb 09 2013 Denis Arnaud - 1.0.43-14 -- Rebuild for Boost-1.53.0 - -* Fri Aug 3 2012 Alec Leamas 1.0.43-13 -- Updating to boost 1.50. - -* Fri Aug 3 2012 Alec Leamas 1.0.43-12 -- Handling boost bug 6940 - -* Thu Apr 5 2012 Alec Leamas 1.0.43-11 -- Fixing hard-coded version in .pc file - -* Tue Apr 3 2012 Alec Leamas 1.0.43-10 -- Adding README.fedora, typos in spec fixed. - -* Sun Apr 1 2012 Dan HorĂ¡k 1.0.43-9 -- set ExclusiveArch to match TBB - -* Wed Mar 28 2012 Alec Leamas 1.0.43-8 -- Adding Patch2: Relaxing certain tests to fit bombono-dvd - -* Tue Mar 20 2012 Alec Leamas 1.0.43-7 -- Removing remaining documentation sources, minor fixes - -* Mon Mar 19 2012 Alec Leamas 1.0.43-7 -- Removing documentation from base package (%%exclude) -- Removing .dox files from documentation - -* Mon Mar 19 2012 Alec Leamas 1.0.43-7 -- Fixing bad source URL. -- Handling empty performance/index.html -- Moving documentation. - -* Sun Mar 18 2012 Alec Leamas 1.0.43-6 -- Using boost-build, purging get-source.sh, related clean-up. -- Source0 refers directly to sourceforge. - -* Sat Mar 17 2012 Alec Leamas 1.0.43-5 -- Updating get-source.sh to exclude APL. - -* Fri Mar 16 2012 Alec Leamas 1.0.43-5.fc15 -- Updating get-source.sh (wrong version packed in v4) -- Comments update, renamed patch0. - -* Sun Feb 19 2012 Alec Leamas 1.0.43-4.fc15 -- Fixing David Timms's comment #12. -- Removing unused parts of bundled boost in get-source.sh. -- Documenting boost bundling in spec file. -- Several patches removed, not required anymore. - -* Thu Feb 16 2012 Alec Leamas 1.0.43-3.fc15 -- Even better handling of instruction set (removed it). -- Factored out fedora flags to new patch. - -* Wed Feb 15 2012 Alec Leamas 1.0.43-2.fc15 -- Fixed linkage problems in installed package. -- Better handling of instruction set in %%prep. - -* Fri Feb 10 2012 Alec Leamas 1.0.43-1.fc15 -- Initial package diff --git a/asl-C11.patch b/asl-C11.patch deleted file mode 100644 index dc59758..0000000 --- a/asl-C11.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/adobe/cmath.hpp b/adobe/cmath.hpp -index 733c299..e671f7c 100644 ---- a/adobe/cmath.hpp -+++ b/adobe/cmath.hpp -@@ -37,18 +37,9 @@ back to include math.h. This also needs to add any other C99 math.h extensions. - #define ADOBE_HAS_CPP_CMATH - - #elif __GNUC__ == 4 --#if (__GNUC_MINOR__ <= 7) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) --// at least Ubuntu 9.x, gcc 4.4.1, still falls into this case --/* -- The currently supported version of GNUC has C99 extensions in math.h. But no TR1 extensions. --*/ --#define ADOBE_HAS_C99_MATH_H --#include --#else --#include - - #define ADOBE_HAS_C99_STD_MATH_H --#endif -+#include - #endif - - #elif defined(_MSC_VER) -@@ -73,12 +64,12 @@ back to include math.h. This also needs to add any other C99 math.h extensions. - - namespace adobe { - --using std::float_t; --using std::double_t; -+using std::tr1::float_t; -+using std::tr1::double_t; - --using std::round; --using std::lround; --using std::trunc; -+using std::tr1::round; -+using std::tr1::lround; -+using std::tr1::trunc; - - } // namespace adobe - diff --git a/asl-boost-1.50.patch b/asl-boost-1.50.patch deleted file mode 100644 index dd4eac4..0000000 --- a/asl-boost-1.50.patch +++ /dev/null @@ -1,81 +0,0 @@ -diff --git a/adobe/move.hpp b/adobe/move.hpp -index 350000d..5fe6db5 100644 ---- a/adobe/move.hpp -+++ b/adobe/move.hpp -@@ -441,7 +441,7 @@ with move semantics, for movable types, otherwise with copy semantics. - template // O models BidirectionalIterator - inline O move_backward(I& in, O out) --{ return move_backward(boost::begin(in), boost::end(in), out); } -+{ return adobe::move_backward(boost::begin(in), boost::end(in), out); } - - /*************************************************************************************************/ - -diff --git a/adobe/once.hpp b/adobe/once.hpp -index 5f005a4..e349b92 100644 ---- a/adobe/once.hpp -+++ b/adobe/once.hpp -@@ -11,12 +11,12 @@ - - /*************************************************************************************************/ - --#include -- - #if defined(BOOST_HAS_THREADS) - #include - #endif - -+#include -+ - /*************************************************************************************************/ - - namespace adobe { -diff --git a/adobe/vector.hpp b/adobe/vector.hpp -index 926cfa9..8968b59 100644 ---- a/adobe/vector.hpp -+++ b/adobe/vector.hpp -@@ -319,7 +319,7 @@ void vector::append_move(I f, I l, std::forward_iterator_tag) - size_type n(std::distance(f, l)); - - if (remaining() < n) reserve((adobe::max)(size() + n, 2 * size())); -- set_finish(uninitialized_move(f, l, end())); -+ set_finish(adobe::uninitialized_move(f, l, end())); - } - - template -@@ -354,7 +354,7 @@ typename vector::iterator vector::insert(iterator p, I f, I l, std:: - - if (n < after) { - append_move(last - n, last); -- move_backward(p, last - n, last); -+ adobe::move_backward(p, last - n, last); - std::copy(f, l, p); - } else { - I m = f; -@@ -387,7 +387,7 @@ typename vector::iterator vector::insert_move(iterator p, I f, I l) - - if (n < after) { - append_move(last - n, last); -- move_backward(p, last - n, last); -+ adobe::move_backward(p, last - n, last); - adobe::move(f, l, p); - } else { - I m = f; -@@ -406,7 +406,7 @@ void vector::reserve(size_type n) - if (capacity() < n) { - vector tmp; - tmp.header_m = allocate(get_allocator(), n); -- tmp.header_m->finish() = uninitialized_move(begin(), end(), tmp.end()); -+ tmp.header_m->finish() = adobe::uninitialized_move(begin(), end(), tmp.end()); - swap(tmp); - } - } -@@ -430,7 +430,7 @@ typename vector::iterator vector::insert(iterator p, size_type n, co - - if (n < after) { - append_move(last - n, last); -- move_backward(p, last - n, last); -+ adobe::move_backward(p, last - n, last); - std::fill_n(p, n, x); - } else { - std::uninitialized_fill_n(last, n - after, x); diff --git a/asl-boost-1.57.patch b/asl-boost-1.57.patch deleted file mode 100644 index b6ac1a9..0000000 --- a/asl-boost-1.57.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -up source_release/source/adam.cpp\~ source_release/source/adam.cpp ---- source_release/source/adam.cpp~ 2010-11-08 19:19:49.000000000 +0100 -+++ source_release/source/adam.cpp 2015-01-29 01:09:20.085293825 +0100 -@@ -576,7 +576,7 @@ void sheet_t::add_constant(name_t consta - { object_m->add_constant(constant, position, initializer); } - - void sheet_t::add_constant(name_t name, any_regular_t value) --{ object_m->add_constant(name, move(value)); } -+{ object_m->add_constant(name, adobe::move(value)); } - - void sheet_t::add_logic(name_t logic, const line_position_t& position, const array_t& expression) - { object_m->add_logic(logic, position, expression); } -@@ -591,7 +591,7 @@ void sheet_t::add_interface(name_t name, - { object_m->add_interface(name, linked, position1, initializer, position2, expression); } - - void sheet_t::add_interface(name_t name, any_regular_t initial) --{ object_m->add_interface(name, move(initial)); } -+{ object_m->add_interface(name, adobe::move(initial)); } - - void sheet_t::add_relation(const line_position_t& position, const array_t& conditional, - const relation_t* first, const relation_t* last) -@@ -835,7 +835,7 @@ void sheet_t::implementation_t::add_inte - - input_index_m.insert(cell); - -- cell.state_m = move(initial); -+ cell.state_m = adobe::move(initial); - cell.priority_m = ++priority_high_m; - - cell_set_m.push_back(cell_t(access_interface_output, name, -@@ -870,7 +870,7 @@ void sheet_t::implementation_t::add_cons - - void sheet_t::implementation_t::add_constant(name_t name, any_regular_t value) - { -- cell_set_m.push_back(cell_t(access_constant, name, move(value), cell_set_m.size())); -+ cell_set_m.push_back(cell_t(access_constant, name, adobe::move(value), cell_set_m.size())); - - if (!name_index_m.insert(cell_set_m.back()).second) { - throw std::logic_error(make_string("cell named '", name.c_str(), "'already exists.")); - -Diff finished. Thu Jan 29 01:09:42 2015 diff --git a/asl-boost-1.60.patch b/asl-boost-1.60.patch deleted file mode 100644 index 2fc1c59..0000000 --- a/asl-boost-1.60.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- source_release/adobe/eve.hpp~ 2015-11-20 11:35:57.541968704 +0000 -+++ source_release/adobe/eve.hpp 2015-11-20 11:37:45.443943283 +0000 -@@ -14,6 +14,7 @@ - #include - - #include -+#include - - #include - #include -@@ -38,6 +39,13 @@ - - #if !defined(ADOBE_NO_DOCUMENTATION) - namespace boost { -+#if BOOST_VERSION >= 106000 -+ template <> -+ struct is_pod -+ : true_type -+ { -+ }; -+#else - namespace detail { - template <> - struct is_pod_impl -@@ -45,6 +53,7 @@ - BOOST_STATIC_CONSTANT(bool, value = true); - }; - } -+#endif - } - #endif - diff --git a/asl-fedora-build-options.patch b/asl-fedora-build-options.patch deleted file mode 100644 index a5a534d..0000000 --- a/asl-fedora-build-options.patch +++ /dev/null @@ -1,60 +0,0 @@ -asl-fedora-flags - -From: Alec Leamas - -Fix fedora compilation flags in jamroot.jam ---- - - adobe_source_libraries/jamroot.jam | 26 ++++++++++---------------- - 1 files changed, 10 insertions(+), 16 deletions(-) - - -diff --git a/jamroot.jam b/adobe_source_libraries/jamroot.jam -index 8c7b593..dfd88c8 100644 ---- a/jamroot.jam -+++ b/jamroot.jam -@@ -46,6 +46,7 @@ adobe_requirements = - msvc:_WIN32_WINNT=0x400 - darwin:"-Werror -Wall -Wno-trigraphs -Wreturn-type -Wnon-virtual-dtor -Woverloaded-virtual -Wformat -Wmissing-braces -Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wunknown-pragmas -Wsign-compare" - darwin:"-Xlinker -Y -Xlinker 5" -+ gcc,release:"-fPIC @optflags@ -fpermissive -Wno-long-long -Wno-strict-aliasing -Wno-trigraphs -Wnon-virtual-dtor -Woverloaded-virtual -Wunused-parameter -Wno-unused-variable -Wunknown-pragmas -Wsign-compare -Wno-parentheses" - gcc,debug:"-Werror -Wall -Wno-trigraphs -Wreturn-type -Wnon-virtual-dtor -Woverloaded-virtual -Wformat -Wmissing-braces -Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wunknown-pragmas -Wsign-compare -Wno-parentheses" - # gcc-4.5.0:_GLIBCXX_USE_C99_MATH_TR1 # apparent problems using this without using other tr1 libs - gcc-4.5.0:__GXX_EXPERIMENTAL_CXX0X__ -@@ -63,8 +64,6 @@ asl_requirements = - $(tbb_requirements) - . - gcc:NOMINMAX -- gcc:x86 -- gcc,multi:i486 - msvc:"-DUNICODE -D_UNICODE" - msvc-8.0:"/W3 /WX /Wp64 /Zc:wchar_t /Zc:forScope" - msvc-9.0:"/W3 /WX /Zc:wchar_t /Zc:forScope" -@@ -74,10 +73,6 @@ asl_requirements = - $(ASL_ADDITIONAL_MACROS) - BOOST_ALL_NO_LIB - darwin:"-lSystemStubs" -- multi:/boost/thread//boost_thread -- /boost/filesystem -- /boost/system -- /boost/signals - ; - - project -@@ -116,6 +111,7 @@ switch [ os.name ] - - - import os ; -+import path ; - local boost-path = [ os.environ BOOST_PATH ] ; - if $(boost-path) - { -@@ -124,8 +120,6 @@ if $(boost-path) - boost-path = [ path.make ../boost_libraries ] ; - } - --use-project /boost : $(boost-path) ; -- - - lib asl - : #sources diff --git a/asl-gcc.patch b/asl-gcc.patch deleted file mode 100644 index f1fed07..0000000 --- a/asl-gcc.patch +++ /dev/null @@ -1,47 +0,0 @@ -asl-gcc-4.6 - -From: Alec Leamas - -Fixes to for gcc 4.6 - 4.7. ---- - - adobe/cmath.hpp | 4 ++-- - source/any_regular.cpp | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - - -diff --git a/adobe/cmath.hpp b/adobe_source_libraries/adobe/cmath.hpp -index 250a3ef..733c299 100644 ---- a/adobe/cmath.hpp -+++ b/adobe/cmath.hpp -@@ -37,7 +37,7 @@ back to include math.h. This also needs to add any other C99 math.h extensions. - #define ADOBE_HAS_CPP_CMATH - - #elif __GNUC__ == 4 --#if (__GNUC_MINOR__ < 6) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) -+#if (__GNUC_MINOR__ <= 7) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) - // at least Ubuntu 9.x, gcc 4.4.1, still falls into this case - /* - The currently supported version of GNUC has C99 extensions in math.h. But no TR1 extensions. -@@ -46,7 +46,7 @@ back to include math.h. This also needs to add any other C99 math.h extensions. - #include - #else - #include --s -+ - #define ADOBE_HAS_C99_STD_MATH_H - #endif - #endif -diff --git a/source/any_regular.cpp b/adobe_source_libraries/source/any_regular.cpp -index b0826ba..2f4f3fb 100644 ---- a/source/any_regular.cpp -+++ b/source/any_regular.cpp -@@ -62,7 +62,7 @@ template - struct make_serializable { static const serializable value; }; - - template --const serializable make_serializable::value; -+const serializable make_serializable::value = serializable(); - - /**************************************************************************************************/ - diff --git a/asl-gcc5.patch b/asl-gcc5.patch deleted file mode 100644 index 080eb1e..0000000 --- a/asl-gcc5.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- source_release/adobe/cmath.hpp~ 2015-08-05 12:10:17.637727832 +0100 -+++ source_release/adobe/cmath.hpp 2015-08-05 12:24:28.811279909 +0100 -@@ -36,19 +36,12 @@ - - #define ADOBE_HAS_CPP_CMATH - --#elif __GNUC__ == 4 --#if (__GNUC_MINOR__ < 6) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) --// at least Ubuntu 9.x, gcc 4.4.1, still falls into this case --/* -- The currently supported version of GNUC has C99 extensions in math.h. But no TR1 extensions. --*/ -+#elif __GNUC__ >= 4 -+ -+// GNUC has C99 extensions in math.h but not in until C++11. - #define ADOBE_HAS_C99_MATH_H - #include --#else --#include --s --#define ADOBE_HAS_C99_STD_MATH_H --#endif -+ - #endif - - #elif defined(_MSC_VER) diff --git a/asl-gcc6.patch b/asl-gcc6.patch deleted file mode 100644 index f5a56dd..0000000 --- a/asl-gcc6.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- source_release/adobe/cmath.hpp.orig 2016-05-16 16:43:02.179719529 +0100 -+++ source_release/adobe/cmath.hpp 2016-05-16 16:51:32.576909454 +0100 -@@ -39,7 +39,11 @@ - #elif __GNUC__ >= 4 - - // GNUC has C99 extensions in math.h but not in until C++11. -+#if __cplusplus >= 20103L -+#define ADOBE_HAS_C99_STD_MATH_H -+#else - #define ADOBE_HAS_C99_MATH_H -+#endif - #include - - #endif diff --git a/asl-no-concept-check1043.patch b/asl-no-concept-check1043.patch deleted file mode 100644 index 6bfdc89..0000000 --- a/asl-no-concept-check1043.patch +++ /dev/null @@ -1,88 +0,0 @@ -diff -Naur source_release_orig/adobe/any_iterator.hpp source_release/adobe/any_iterator.hpp ---- source_release_orig/adobe/any_iterator.hpp 2010-11-08 21:18:19.000000000 +0300 -+++ source_release/adobe/any_iterator.hpp 2012-03-28 16:59:42.000000000 +0400 -@@ -47,7 +47,10 @@ - { - typedef typename optimized_storage_type >::type base_t; - -+// this is too restrictive check; need to make appropriate one -+#ifndef NO_ASL_AI_CONCEPT_CHECK - BOOST_CLASS_REQUIRE(I, boost, ForwardIteratorConcept); -+#endif - - type(const I& x) : base_t (x) - { } -@@ -133,7 +136,9 @@ - { - typedef typename optimized_storage_type >::type base_t; - -+#ifndef NO_ASL_AI_CONCEPT_CHECK - BOOST_CLASS_REQUIRE(I, boost, BidirectionalIteratorConcept); -+#endif - - type(const I& x) - : base_t(x) {} -@@ -235,7 +240,9 @@ - { - typedef typename optimized_storage_type >::type base_t; - -+#ifndef NO_ASL_AI_CONCEPT_CHECK - BOOST_CLASS_REQUIRE(I, boost, RandomAccessIteratorConcept); -+#endif - - type(const I& x) - : base_t(x) {} -diff -Naur source_release_orig/adobe/poly.hpp source_release/adobe/poly.hpp ---- source_release_orig/adobe/poly.hpp 2010-11-08 21:18:20.000000000 +0300 -+++ source_release/adobe/poly.hpp 2012-03-28 17:01:40.000000000 +0400 -@@ -70,8 +70,10 @@ - virtual const void* cast() const = 0; - virtual const std::type_info& type_info() const = 0; - -+#ifndef NO_ASL_AI_CONCEPT_CHECK - // Precondition of assignment: this->type_info() == x.type_info() - virtual void assign(const poly_copyable_interface& x) = 0; -+#endif - - // Precondition of exchange: this->type_info() == x.type_info() - virtual void exchange(poly_copyable_interface& x) = 0; -@@ -107,9 +109,11 @@ - ~poly_state_remote() - { delete value_ptr_m; } - -+#ifndef NO_ASL_AI_CONCEPT_CHECK - // Precondition : this->type_info() == x.type_info() - void assign(const poly_copyable_interface& x) - { *value_ptr_m = *static_cast(x).value_ptr_m; } -+#endif - - const std::type_info& type_info() const - { return typeid(value_type); } -@@ -144,9 +148,11 @@ - explicit poly_state_local(value_type x) - : value_m(adobe::move(x)) { } - -+#ifndef NO_ASL_AI_CONCEPT_CHECK - // Precondition : this->type_info() == x.type_info() - void assign(const poly_copyable_interface& x) - { value_m = static_cast(x).value_m; } -+#endif - - const std::type_info& type_info() const - { return typeid(value_type); } -@@ -342,6 +348,7 @@ - return true; - } - -+#ifndef NO_ASL_AI_CONCEPT_CHECK - template poly_base& assign(const T& x) - { - if (type_info() == typeid(T)) -@@ -364,6 +371,7 @@ - interface_ref().~interface_type(); - x.interface_ref().clone(storage()); - } -+#endif - - const interface_type* operator->() const - { return &interface_ref(); } diff --git a/asl-time-utc.patch b/asl-time-utc.patch deleted file mode 100644 index ee758be..0000000 --- a/asl-time-utc.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff --git a/adobe/timer.hpp b/adobe/timer.hpp -index 8622e66..c0ef46d 100644 ---- a/adobe/timer.hpp -+++ b/adobe/timer.hpp -@@ -182,7 +182,7 @@ public: - #if ADOBE_PLATFORM_WIN - (void)::QueryPerformanceCounter(&epoch_m); - #elif defined(BOOST_HAS_THREADS) -- boost::xtime_get(&epoch_m, boost::TIME_UTC); -+ boost::xtime_get(&epoch_m, boost::TIME_UTC_); - #elif defined(BOOST_HAS_GETTIMEOFDAY) - gettimeofday(&epoch_m, static_cast(0)); - #endif -@@ -206,7 +206,7 @@ public: - (void)::QueryPerformanceCounter(&split_m); - return (split_m.QuadPart - epoch_m.QuadPart) / static_cast(frequency_m.QuadPart) * double(1e3); - #elif defined(BOOST_HAS_THREADS) -- boost::xtime_get(&split_m, boost::TIME_UTC); -+ boost::xtime_get(&split_m, boost::TIME_UTC_); - return ((split_m.sec - epoch_m.sec) * double(1e3) + (split_m.nsec - epoch_m.nsec) / double(1e6)); - #elif defined(BOOST_HAS_GETTIMEOFDAY) - gettimeofday(&split_m, static_cast(0)); -diff --git a/documentation/html/timer_8hpp_source.html b/documentation/html/timer_8hpp_source.html -index d5fc808..79a7f62 100644 ---- a/documentation/html/timer_8hpp_source.html -+++ b/documentation/html/timer_8hpp_source.html -@@ -200,7 +200,7 @@ - 00182 #if ADOBE_PLATFORM_WIN - 00183 (void)::QueryPerformanceCounter(&epoch_m); - 00184 #elif defined(BOOST_HAS_THREADS) --00185 boost::xtime_get(&epoch_m, boost::TIME_UTC); -+00185 boost::xtime_get(&epoch_m, boost::TIME_UTC_); - 00186 #elif defined(BOOST_HAS_GETTIMEOFDAY) - 00187 gettimeofday(&epoch_m, static_cast<struct timezone*>(0)); - 00188 #endif -@@ -215,7 +215,7 @@ - 00206 (void)::QueryPerformanceCounter(&split_m); - 00207 return (split_m.QuadPart - epoch_m.QuadPart) / static_cast<double>(frequency_m.QuadPart) * double(1e3); - 00208 #elif defined(BOOST_HAS_THREADS) --00209 boost::xtime_get(&split_m, boost::TIME_UTC); -+00209 boost::xtime_get(&split_m, boost::TIME_UTC_); - 00210 return ((split_m.sec - epoch_m.sec) * double(1e3) + (split_m.nsec - epoch_m.nsec) / double(1e6)); - 00211 #elif defined(BOOST_HAS_GETTIMEOFDAY) - 00212 gettimeofday(&split_m, static_cast<struct timezone*>(0)); -diff --git a/source/zuid_sys_dep.cpp b/source/zuid_sys_dep.cpp -index 8930dd7..bd54770 100644 ---- a/source/zuid_sys_dep.cpp -+++ b/source/zuid_sys_dep.cpp -@@ -128,7 +128,7 @@ adobe::md5_t::digest_t get_generic_random_info() - #endif - { - #if defined(BOOST_HAS_THREADS) -- boost::xtime_get(&time_m, boost::TIME_UTC); -+ boost::xtime_get(&time_m, boost::TIME_UTC_); - #endif - #if defined(BOOST_HAS_UNISTD_H) - gethostname(hostname_m, 256); diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..6601704 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Orphaned diff --git a/sources b/sources deleted file mode 100644 index 6a9ee74..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -eac9f3eec40ed1f41d1e4671289b5e8b asl_1.0.43.tgz