[Libreoffice-commits] core.git: download.lst external/boost solenv/gbuild

David Ostrovsky david at ostrovsky.org
Thu Jul 30 06:31:34 PDT 2015


 download.lst                                                                                        |    2 
 external/boost/UnpackedTarball_boost.mk                                                             |   68 
 external/boost/boost.7551.unusedvars.patch                                                          |   10 
 external/boost/boost.9397.warnings.patch.0                                                          |   91 -
 external/boost/boost.auto_link.patch                                                                |   12 
 external/boost/boost.bind.Wunused-local-typedefs.warnings.patch                                     |   11 
 external/boost/boost.concept_check.C4100.warnings.patch                                             |   19 
 external/boost/boost.concept_check.Wunused-local-typedefs.warnings.patch                            |   13 
 external/boost/boost.date_time.Wunused-local-typedefs.warnings.patch                                |  101 -
 external/boost/boost.endian.patch                                                                   |   11 
 external/boost/boost.gcc47679.patch                                                                 |   86 -
 external/boost/boost.loplugin.patch                                                                 |   19 
 external/boost/boost.math.Wdeprecated-register.patch.0                                              |   36 
 external/boost/boost.math.Wunused-local-typedefs.warnings.patch                                     |   34 
 external/boost/boost.multi_array.C4510.warnings.patch                                               |    9 
 external/boost/boost.multi_array.Wshadow.warnings.patch.2                                           |   46 
 external/boost/boost.multi_array.Wundef.warnings.patch                                              |   11 
 external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch                              |    5 
 external/boost/boost.multi_index.Wshadow.warnings.patch.1                                           |   94 -
 external/boost/boost.predef.Wundef.warnings.patch                                                   |   11 
 external/boost/boost.preprocessor.Wundef.warnings.patch                                             |  111 +
 external/boost/boost.property_tree.Wshadow.warnings.patch.1                                         |  137 -
 external/boost/boost.property_tree.Wtype-limits.warnings.patch.1                                    |   41 
 external/boost/boost.random.Wshadow.warnings.patch                                                  |  277 ---
 external/boost/boost.random.Wunused-local-typedefs.warnings.patch                                   |   27 
 external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch                                   |   34 
 external/boost/boost.std.move.patch                                                                 |   13 
 external/boost/boost.transform_width.patch                                                          |   11 
 external/boost/boost.tuple.Wunused-local-typedefs.warnings.patch                                    |   10 
 external/boost/boost.unordered.Wshadow.warnings.patch                                               |  146 -
 external/boost/boost.uuid.Wshadow.warnings.patch                                                    |   24 
 external/boost/boost.vc2012.patch                                                                   |   25 
 external/boost/boost.wdeprecated-auto_ptr.patch.0                                                   |   98 -
 external/boost/boost.windows.patch                                                                  |   12 
 external/boost/boost_1_44_0-unused-parameters.patch                                                 |  841 ++++++----
 external/boost/boost_1_59_0.iostreams.wshadow.patch                                                 |  197 ++
 external/boost/boost_1_59_0.iostreams.wunused.patch                                                 |   12 
 external/boost/boost_1_59_0.move.Bool-type-collision.4f9c2b62fbdcf5995ecf50a2ecf2494048a6696d.patch |   44 
 external/boost/boost_1_59_0.mpl.config.wundef.patch                                                 |   11 
 external/boost/boost_1_59_0.multi_array.wshadow.patch                                               |  505 ++++++
 external/boost/boost_1_59_0.property_tree.wreturn-type.patch                                        |   13 
 external/boost/boost_1_59_0.property_tree.wshadow.patch                                             |   83 
 external/boost/boost_1_59_0.property_tree.wtype-limits.patch                                        |   19 
 external/boost/boost_1_59_0.rational.wshadow.patch                                                  |   12 
 external/boost/boost_1_59_0.signal2.wshadow.patch                                                   |   63 
 external/boost/boost_1_59_0.type_index.wshadow.patch                                                |   15 
 external/boost/boost_1_59_0.unique_ptr.wshadow.patch                                                |   14 
 external/boost/w4702.patch.0                                                                        |   10 
 solenv/gbuild/platform/com_MSC_defs.mk                                                              |    1 
 49 files changed, 1847 insertions(+), 1648 deletions(-)

New commits:
commit 5f321b5011c619e88e19018ff05ed3ca2cdd5851
Author: David Ostrovsky <david at ostrovsky.org>
Date:   Wed Jul 15 08:24:22 2015 +0200

    Bump boost to 1.59
    
    1.59 upcoming release is needed for MSVC 14.0 (aka VS 2015) support.
    
    There is a known breakage on MSVC with boost::none instance in
    optional library.  Use not documented define as explained in this
    issue upstream [1]: BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE.
    
    [1] https://svn.boost.org/trac/boost/ticket/11203
    
    Change-Id: I25b1797da93f7959d15a70105d67100e0e2c4b3b
    Reviewed-on: https://gerrit.libreoffice.org/17056
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/download.lst b/download.lst
index a285ba1..bc5a9f6 100644
--- a/download.lst
+++ b/download.lst
@@ -15,7 +15,7 @@ export APR_MD5SUM := eff9d741b0999a9bbab96862dd2a2a3d
 export APR_TARBALL := apr-1.4.8.tar.gz
 export APR_UTIL_MD5SUM := 71a11d037240b292f824ba1eb537b4e3
 export APR_UTIL_TARBALL := apr-util-1.5.3.tar.gz
-export BOOST_TARBALL := d6eef4b4cacb2183f2bf265a5a03a354-boost_1_55_0.tar.bz2
+export BOOST_TARBALL := 9804305aae0c9de9f8cfc02e3de75167-boost_1_59_0_b1_rc1.tar.bz2
 export BSH_TARBALL := ec1941a74d3ef513c4ce57a9092b74e1-bsh-2.0b5-src.zip
 export BZIP2_TARBALL := 00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz
 export CAIRO_TARBALL := f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index b0ffa9e..8e9d624 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -10,51 +10,25 @@
 boost_patches :=
 #https://svn.boost.org/trac/boost/ticket/3780
 boost_patches += boost.3780.aliasing.patch
-#https://svn.boost.org/trac/boost/ticket/9397
-boost_patches += boost.9397.warnings.patch.0
 #http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47679
 boost_patches += boost.gcc47679.patch
 #https://svn.boost.org/trac/boost/ticket/6369
 boost_patches += boost.6369.warnings.patch
-#https://svn.boost.org/trac/boost/ticket/7551
-boost_patches += boost.7551.unusedvars.patch
 #https://svn.boost.org/trac/boost/ticket/6142
 boost_patches += boost.6142.warnings.patch.1
 
-# fixed upstream
-boost_patches += boost.bind.Wunused-local-typedefs.warnings.patch
-# fixed upstream
-boost_patches += boost.concept_check.C4100.warnings.patch
-# fixed upstream
-boost_patches += boost.concept_check.Wunused-local-typedefs.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9881
 boost_patches += boost.crc.Wshadow.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9882
 boost_patches += boost.date_time.Wshadow.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9883
-boost_patches += boost.date_time.Wunused-local-typedefs.warnings.patch
-# fixed upstream
-boost_patches += boost.math.Wdeprecated-register.patch.0
-# fixed upstream
-boost_patches += boost.math.Wunused-local-typedefs.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9885
 boost_patches += boost.multi_array.C4510.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9886
-boost_patches += boost.multi_array.Wshadow.warnings.patch.2
-# fixed upstream
-boost_patches += boost.multi_array.Wundef.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9888
 boost_patches += boost.multi_array.Wunused-local-typedefs.warnings.patch
-# fixed upstream
-boost_patches += boost.multi_index.Wshadow.warnings.patch.1
-# https://svn.boost.org/trac/boost/ticket/9889
-boost_patches += boost.predef.Wundef.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9891
 boost_patches += boost.preprocessor.Wundef.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9892
 boost_patches += boost.property_tree.Wshadow.warnings.patch.1
-# https://svn.boost.org/trac/boost/ticket/9893
-boost_patches += boost.property_tree.Wtype-limits.warnings.patch.1
 # https://svn.boost.org/trac/boost/ticket/9894
 boost_patches += boost.ptr_container.Wshadow.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9895
@@ -63,8 +37,6 @@ boost_patches += boost.ptr_container.Wignored-qualifiers.warnings.patch
 boost_patches += boost.ptr_container.Wextra.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9897
 boost_patches += boost.ptr_container.Wunused-parameter.warnings.patch
-# https://svn.boost.org/trac/boost/ticket/9898
-boost_patches += boost.random.Wshadow.warnings.patch
 # fixed upstream
 boost_patches += boost.random.Wunused-local-typedefs.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9900
@@ -74,21 +46,8 @@ boost_patches += boost.spirit.Wunused-local-typedefs.warnings.patch
 # to-do: submit upstream
 boost_patches += boost.spirit.Wunused-parameter.warnings.patch
 boost_patches += boost.date_time.Wshadow.warnings.patch.1
-# fixed upstream
-boost_patches += boost.unordered.Wshadow.warnings.patch
-# fixed upstream
-boost_patches += boost.tuple.Wunused-local-typedefs.warnings.patch
 # https://svn.boost.org/trac/boost/ticket/9903
 boost_patches += boost.utility.Wundef.warnings.patch
-# fixed upstream
-boost_patches += boost.uuid.Wshadow.warnings.patch
-
-# https://svn.boost.org/trac/boost/ticket/9890
-boost_patches += boost.endian.patch
-# fixed upstream
-boost_patches += boost.loplugin.patch
-# fixed upstream
-boost_patches += boost.transform_width.patch
 
 # Help static analysis tools (see SAL_UNUSED_PARAMETER in sal/types.h):
 ifeq (GCC,$(COM))
@@ -105,11 +64,36 @@ boost_patches += boost.wunused.patch
 boost_patches += boost.wdeprecated-auto_ptr.patch.0
 boost_patches += boost.signal2.Wshadow.warnings.patch
 boost_patches += boost.boost_static_assert_unused_attribute.patch.0
-boost_patches += w4702.patch.0
 
 boost_patches += ubsan.patch.0
 boost_patches += rtti.patch.0
 
+# https://svn.boost.org/trac/boost/ticket/11505
+boost_patches += boost_1_59_0.mpl.config.wundef.patch
+# https://svn.boost.org/trac/boost/ticket/11503
+boost_patches += boost_1_59_0.type_index.wshadow.patch
+# https://svn.boost.org/trac/boost/ticket/11502
+boost_patches += boost_1_59_0.property_tree.wtype-limits.patch
+# https://svn.boost.org/trac/boost/ticket/11507
+boost_patches += boost_1_59_0.property_tree.wshadow.patch
+# https://svn.boost.org/trac/boost/ticket/11508
+boost_patches += boost_1_59_0.iostreams.wshadow.patch
+# https://svn.boost.org/trac/boost/ticket/11509
+boost_patches += boost_1_59_0.iostreams.wunused.patch
+# https://svn.boost.org/trac/boost/ticket/11506
+boost_patches += boost_1_59_0.rational.wshadow.patch
+# https://svn.boost.org/trac/boost/ticket/11510
+boost_patches += boost_1_59_0.unique_ptr.wshadow.patch
+# fixed upstream
+# https://svn.boost.org/trac/boost/ticket/11500
+boost_patches += boost_1_59_0.move.Bool-type-collision.4f9c2b62fbdcf5995ecf50a2ecf2494048a6696d.patch
+# https://svn.boost.org/trac/boost/ticket/11511
+boost_patches += boost_1_59_0.multi_array.wshadow.patch
+# https://svn.boost.org/trac/boost/ticket/11512
+boost_patches += boost_1_59_0.signal2.wshadow.patch
+# https://svn.boost.org/trac/boost/ticket/11501
+boost_patches += boost_1_59_0.property_tree.wreturn-type.patch
+
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL)))
diff --git a/external/boost/boost.7551.unusedvars.patch b/external/boost/boost.7551.unusedvars.patch
deleted file mode 100644
index a80d4a1..0000000
--- a/external/boost/boost.7551.unusedvars.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- misc/boost_1_44_0/boost/date_time/tz_db_base.hpp
-+++ misc/build/boost_1_44_0/boost/date_time/tz_db_base.hpp
-@@ -170,7 +170,6 @@
-       /*! May throw data_not_accessible, or bad_field_count exceptions */
-       void load_from_file(const std::string& pathspec)
-       {
--        string_type in_str;
-         std::string  buff;
-         
-         std::ifstream ifs(pathspec.c_str());
diff --git a/external/boost/boost.9397.warnings.patch.0 b/external/boost/boost.9397.warnings.patch.0
deleted file mode 100644
index 429d707..0000000
--- a/external/boost/boost.9397.warnings.patch.0
+++ /dev/null
@@ -1,91 +0,0 @@
-Index: boost/predef/os/bsd/bsdi.h
-===================================================================
---- boost/predef/os/bsd/bsdi.h	(revision 86709)
-+++ boost/predef/os/bsd/bsdi.h	(working copy)
-@@ -24,7 +24,7 @@
- 
- #define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_NOT_AVAILABLE
- 
--#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-+#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && (  \
-     defined(__bsdi__) \
-     )
- #   ifndef BOOST_OS_BSD_AVAILABLE
-Index: boost/predef/os/bsd/dragonfly.h
-===================================================================
---- boost/predef/os/bsd/dragonfly.h	(revision 86709)
-+++ boost/predef/os/bsd/dragonfly.h	(working copy)
-@@ -24,7 +24,7 @@
- 
- #define BOOST_OS_BSD_DRAGONFLY BOOST_VERSION_NUMBER_NOT_AVAILABLE
- 
--#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-+#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && (  \
-     defined(__DragonFly__) \
-     )
- #   ifndef BOOST_OS_BSD_AVAILABLE
-Index: boost/predef/os/bsd/free.h
-===================================================================
---- boost/predef/os/bsd/free.h	(revision 86709)
-+++ boost/predef/os/bsd/free.h	(working copy)
-@@ -26,7 +26,7 @@
- 
- #define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_NOT_AVAILABLE
- 
--#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-+#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && (  \
-     defined(__FreeBSD__) \
-     )
- #   ifndef BOOST_OS_BSD_AVAILABLE
-Index: boost/predef/os/bsd/net.h
-===================================================================
---- boost/predef/os/bsd/net.h	(revision 86709)
-+++ boost/predef/os/bsd/net.h	(working copy)
-@@ -31,7 +31,7 @@
- 
- #define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_NOT_AVAILABLE
- 
--#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-+#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && (  \
-     defined(__NETBSD__) || defined(__NetBSD__) \
-     )
- #   ifndef BOOST_OS_BSD_AVAILABLE
-Index: boost/predef/os/bsd/open.h
-===================================================================
---- boost/predef/os/bsd/open.h	(revision 86709)
-+++ boost/predef/os/bsd/open.h	(working copy)
-@@ -55,7 +55,7 @@
- 
- #define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_NOT_AVAILABLE
- 
--#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-+#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && (  \
-     defined(__OpenBSD__) \
-     )
- #   ifndef BOOST_OS_BSD_AVAILABLE
-Index: boost/predef/os/bsd.h
-===================================================================
---- boost/predef/os/bsd.h	(revision 86709)
-+++ boost/predef/os/bsd.h	(working copy)
-@@ -59,7 +59,7 @@
- #define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE
- #endif
- 
--#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-+#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && (  \
-     defined(BSD) || \
-     defined(_SYSTYPE_BSD) \
-     )
-Index: boost/predef/os/macos.h
-===================================================================
---- boost/predef/os/macos.h	(revision 86709)
-+++ boost/predef/os/macos.h	(working copy)
-@@ -31,7 +31,7 @@
- 
- #define BOOST_OS_MACOS BOOST_VERSION_NUMBER_NOT_AVAILABLE
- 
--#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-+#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && (  \
-     defined(macintosh) || defined(Macintosh) || \
-     (defined(__APPLE__) && defined(__MACH__)) \
-     )
diff --git a/external/boost/boost.auto_link.patch b/external/boost/boost.auto_link.patch
index 556d14e..ed60dec 100644
--- a/external/boost/boost.auto_link.patch
+++ b/external/boost/boost.auto_link.patch
@@ -1,6 +1,7 @@
---- foo/foo/foo/boost/config/auto_link.hpp
-+++ foo/foo/foo/boost/config/auto_link.hpp
-@@ -357,37 +357,6 @@
+diff -ru boost.orig/boost/config/auto_link.hpp boost/boost/config/auto_link.hpp
+--- foo/misc/boost.orig/boost/config/auto_link.hpp	2015-05-07 19:11:52.000000000 +0200
++++ foo/misc/boost/boost/config/auto_link.hpp	2015-07-18 22:34:14.371946475 +0200
+@@ -367,42 +367,6 @@
  #  define BOOST_LIB_PREFIX "lib"
  #endif
  
@@ -24,6 +25,11 @@
 -#  ifdef BOOST_LIB_DIAGNOSTIC
 -#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
 -#  endif
+-#elif defined(BOOST_LIB_BUILDID)
+-#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
+-#  ifdef BOOST_LIB_DIAGNOSTIC
+-#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
+-#  endif
 -#else
 -#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
 -#  ifdef BOOST_LIB_DIAGNOSTIC
diff --git a/external/boost/boost.bind.Wunused-local-typedefs.warnings.patch b/external/boost/boost.bind.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index 0f8c573..0000000
--- a/external/boost/boost.bind.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- misc/boost_1_44_0/boost/bind/arg.hpp
-+++ misc/build/boost_1_44_0/boost/bind/arg.hpp
-@@ -35,6 +35,8 @@
-     {
-         // static assert I == is_placeholder<T>::value
-         typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
-+        T_must_be_placeholder dummy; (void) dummy;
-+            // silence -Werror=unused-local-typedefs (GCC 4.8)
-     }
- };
- 
diff --git a/external/boost/boost.concept_check.C4100.warnings.patch b/external/boost/boost.concept_check.C4100.warnings.patch
deleted file mode 100644
index ea47577..0000000
--- a/external/boost/boost.concept_check.C4100.warnings.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- misc/boost_1_44_0/boost/concept/detail/msvc.hpp
-+++ misc/build/boost_1_44_0/boost/concept/detail/msvc.hpp
-@@ -12,6 +12,9 @@
- #  include <boost/mpl/if.hpp>
- # endif
- 
-+// disable spurious "unreferenced formal parameter" warnings
-+#pragma warning( push )
-+#pragma warning( disable: 4100 )
- 
- namespace boost { namespace concepts {
- 
-@@ -111,4 +114,6 @@
- # endif
- }}
- 
-+#pragma warning( pop )
-+
- #endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
diff --git a/external/boost/boost.concept_check.Wunused-local-typedefs.warnings.patch b/external/boost/boost.concept_check.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index 3096794..0000000
--- a/external/boost/boost.concept_check.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- misc/boost_1_44_0/boost/concept/detail/general.hpp
-+++ misc/build/boost_1_44_0/boost/concept/detail/general.hpp
-@@ -68,7 +68,9 @@
- #  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
-     typedef ::boost::concepts::detail::instantiate<          \
-     &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
--      BOOST_PP_CAT(boost_concept_check,__LINE__)
-+      BOOST_PP_CAT(boost_concept_check,__LINE__); \
-+    void BOOST_PP_CAT(boost_concept_check_dummy,__LINE__)(BOOST_PP_CAT(boost_concept_check,__LINE__) *)
-+        // silence -Werror=unused-local-typedefs (GCC 4.8)
- 
- }}
- 
diff --git a/external/boost/boost.date_time.Wunused-local-typedefs.warnings.patch b/external/boost/boost.date_time.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index 5d28f66..0000000
--- a/external/boost/boost.date_time.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,101 +0,0 @@
---- a/b/boost/boost/date_time/gregorian/greg_facet.hpp	2013-05-31 14:03:30.476695310 +0200
-+++ a/b/boost/boost/date_time/gregorian/greg_facet.hpp	2013-05-31 14:03:22.894669713 +0200
-@@ -215,7 +215,6 @@
-   {
-     std::istream_iterator<std::basic_string<charT>, charT> beg(is), eos;
-     
--    typedef boost::date_time::all_date_names_put<greg_facet_config, charT> facet_def;
-     d = from_stream(beg, eos);
-     return is;
-   }
---- misc/boost_1_44_0/boost/date_time/date_parsing.hpp
-+++ misc/build/boost_1_44_0/boost/date_time/date_parsing.hpp
-@@ -113,7 +113,6 @@
-         spec_str = "mdy";
-       }
- 
--      typedef typename date_type::year_type year_type;
-       typedef typename date_type::month_type month_type;
-       unsigned pos = 0;
-       unsigned short year(0), month(0), day(0);
-@@ -159,7 +158,7 @@
-     parse_undelimited_date(const std::string& s) {
-       int offsets[] = {4,2,2};
-       int pos = 0;
--      typedef typename date_type::year_type year_type;
-+      //typedef typename date_type::year_type year_type;
-       //typename date_type::ymd_type ymd((year_type::min)(),1,1);
-       unsigned short y = 0, m = 0, d = 0;
- 
---- misc/boost_1_44_0/boost/date_time/local_time/local_time_io.hpp
-+++ misc/build/boost_1_44_0/boost/date_time/local_time/local_time_io.hpp
-@@ -36,7 +36,6 @@
-     boost::io::ios_flags_saver iflags(os);
-     typedef local_date_time time_type;//::utc_time_type typename 
-     typedef date_time::time_facet<time_type, CharT> custom_time_facet;
--    typedef std::time_put<CharT> std_time_facet;
-     std::ostreambuf_iterator<CharT> oitr(os);
- 
-     if(std::has_facet<custom_time_facet>(os.getloc())) {
-@@ -123,7 +122,6 @@
-              const boost::local_time::local_time_period& p) {
-     boost::io::ios_flags_saver iflags(os);
-     typedef boost::date_time::time_facet<local_date_time, CharT> custom_facet;
--    typedef std::time_put<CharT> std_time_facet;
-     std::ostreambuf_iterator<CharT> oitr(os);
-     if (std::has_facet<custom_facet>(os.getloc())) {
-       std::use_facet<custom_facet>(os.getloc()).put(oitr, os, os.fill(), p);
---- misc/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp
-+++ misc/build/boost_1_44_0/boost/date_time/posix_time/posix_time_io.hpp
-@@ -47,7 +47,6 @@
-              const ptime& p) {
-     boost::io::ios_flags_saver iflags(os);
-     typedef boost::date_time::time_facet<ptime, CharT> custom_ptime_facet;
--    typedef std::time_put<CharT>                  std_ptime_facet;
-     std::ostreambuf_iterator<CharT> oitr(os);
-     if (std::has_facet<custom_ptime_facet>(os.getloc()))
-       std::use_facet<custom_ptime_facet>(os.getloc()).put(oitr, os, os.fill(), p);
-@@ -114,7 +113,6 @@
-              const boost::posix_time::time_period& p) {
-     boost::io::ios_flags_saver iflags(os);
-     typedef boost::date_time::time_facet<ptime, CharT> custom_ptime_facet;
--    typedef std::time_put<CharT>                  std_time_facet;
-     std::ostreambuf_iterator<CharT> oitr(os);
-     if (std::has_facet<custom_ptime_facet>(os.getloc())) {
-       std::use_facet<custom_ptime_facet>(os.getloc()).put(oitr, os, os.fill(), p);
-@@ -180,7 +178,6 @@
-   {
-     boost::io::ios_flags_saver iflags(os);
-     typedef boost::date_time::time_facet<ptime, CharT> custom_ptime_facet;
--    typedef std::time_put<CharT>                  std_ptime_facet;
-     std::ostreambuf_iterator<CharT> oitr(os);
-     if (std::has_facet<custom_ptime_facet>(os.getloc()))
-       std::use_facet<custom_ptime_facet>(os.getloc()).put(oitr, os, os.fill(), td);
---- misc/boost_1_44_0/boost/date_time/string_convert.hpp
-+++ misc/build/boost_1_44_0/boost/date_time/string_convert.hpp
-@@ -21,7 +21,6 @@
-   inline
-   std::basic_string<OutputT> convert_string_type(const std::basic_string<InputT>& inp_str)
-   {
--    typedef std::basic_string<InputT> input_type;
-     typedef std::basic_string<OutputT> output_type;
-     output_type result;
-     result.insert(result.begin(), inp_str.begin(), inp_str.end());
---- misc/boost_1_44_0/boost/date_time/strings_from_facet.hpp
-+++ misc/build/boost_1_44_0/boost/date_time/strings_from_facet.hpp
-@@ -35,7 +35,6 @@
- {
-   typedef std::basic_string<charT> string_type;
-   typedef std::vector<string_type> collection_type;
--  typedef std::basic_ostringstream<charT> ostream_type;
-   typedef std::ostreambuf_iterator<charT> ostream_iter_type;
-   typedef std::basic_ostringstream<charT> stringstream_type;
-   typedef std::time_put<charT>           time_put_facet_type;
-@@ -85,7 +84,6 @@
- {
-   typedef std::basic_string<charT> string_type;
-   typedef std::vector<string_type> collection_type;
--  typedef std::basic_ostringstream<charT> ostream_type;
-   typedef std::ostreambuf_iterator<charT> ostream_iter_type;
-   typedef std::basic_ostringstream<charT> stringstream_type;
-   typedef std::time_put<charT>           time_put_facet_type;
diff --git a/external/boost/boost.endian.patch b/external/boost/boost.endian.patch
deleted file mode 100644
index 0982090..0000000
--- a/external/boost/boost.endian.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- foo/foo/foo/boost/predef/other/endian.h
-+++ foo/foo/foo/boost/predef/other/endian.h
-@@ -53,7 +53,7 @@
-  */
- #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
-     !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
--#   if BOOST_LIB_C_GNU
-+#   if BOOST_LIB_C_GNU || defined(__ANDROID__)
- #       include <endian.h>
- #   else
- #       if BOOST_OS_MACOS
diff --git a/external/boost/boost.gcc47679.patch b/external/boost/boost.gcc47679.patch
index e62a874..06cbd0f 100644
--- a/external/boost/boost.gcc47679.patch
+++ b/external/boost/boost.gcc47679.patch
@@ -1,24 +1,34 @@
---- misc/boost_1_44_0/boost/utility/compare_pointees.hpp	2011-02-10 16:39:05.960176555 +0000
-+++ misc/build/boost_1_44_0/boost/utility/compare_pointees.hpp	2011-02-10 16:40:59.091423279 +0000
-@@ -29,7 +29,11 @@
- inline
- bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
- {
--  return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
-+  if (!x && !y)
-+    return true;
-+  if (!x || !y)
-+    return false;
-+  return (*x) == (*y);
- }
+diff -ru boost.orig/boost/optional/optional.hpp boost/boost/optional/optional.hpp
+--- foo/misc/boost.orig/boost/optional/optional.hpp	2015-07-18 11:27:36.168127029 +0200
++++ foo/misc/boost/boost/optional/optional.hpp	2015-07-18 20:36:13.777997833 +0200
+@@ -53,6 +53,8 @@
  
- template<class OptionalPointee>
---- misc/boost_1_44_0/boost/spirit/home/classic/core/primitives/impl/numerics.ipp	2011-03-02 12:22:47.222870106 +0000
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/core/primitives/impl/numerics.ipp	2011-03-02 12:22:47.222870106 +0000
-@@ -219,6 +219,20 @@
+ #include <boost/optional/optional_fwd.hpp>
+ 
++#include <string.h>
++
+ #if (defined BOOST_NO_CXX11_RVALUE_REFERENCES) || (defined BOOST_OPTIONAL_CONFIG_NO_RVALUE_REFERENCES)
+ #define BOOST_OPTIONAL_DETAIL_NO_RVALUE_REFERENCES
+ #endif
+@@ -134,6 +136,11 @@
+ 
+   public:
+ 
++    aligned_storage()
++    {
++      memset(&dummy_, 0, sizeof(dummy_));
++    }
++
+ #if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
+     void const* address() const { return &dummy_; }
+     void      * address()       { return &dummy_; }
+diff -ru boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp
+--- foo/misc/boost.orig/boost/spirit/home/classic/core/primitives/impl/numerics.ipp	2015-07-18 11:27:36.169127029 +0200
++++ foo/misc/boost/boost/spirit/home/classic/core/primitives/impl/numerics.ipp	2015-07-18 20:34:32.110998976 +0200
+@@ -218,6 +218,19 @@
+                 }
              }
          };
- 
 +        template <int Radix>
 +        struct negative_accumulate<unsigned char, Radix>
 +        {
@@ -32,30 +42,22 @@
 +                return true;
 +            }
 +        };
-+
+ 
          template <int MaxDigits>
          inline bool allow_more_digits(std::size_t i)
-         {
---- misc/boost_1_44_0/boost/optional/optional.hpp	2011-04-05 13:19:01.223587256 +0100
-+++ misc/build/boost_1_44_0/boost/optional/optional.hpp	2011-04-05 13:19:01.223587256 +0100
-@@ -31,6 +31,8 @@
- 
- #include <boost/optional/optional_fwd.hpp>
- 
-+#include <string.h>
-+
- #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
- // VC6.0 has the following bug:
- //   When a templated assignment operator exist, an implicit conversion
-@@ -114,6 +116,11 @@
- 
-   public:
+diff -ru boost.orig/boost/utility/compare_pointees.hpp boost/boost/utility/compare_pointees.hpp
+--- foo/misc/boost.orig/boost/utility/compare_pointees.hpp	2015-02-27 07:26:11.000000000 +0100
++++ foo/misc/boost/boost/utility/compare_pointees.hpp	2015-07-18 20:20:41.388988458 +0200
+@@ -29,7 +29,11 @@
+ inline
+ bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
+ {
+-  return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
++  if (!x && !y)
++    return true;
++  if (!x || !y)
++    return false;
++  return (*x) == (*y);
+ }
  
-+    aligned_storage()
-+    {
-+      memset(&dummy_, 0, sizeof(dummy_));
-+    }
-+
- #if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
-     void const* address() const { return &dummy_; }
-     void      * address()       { return &dummy_; }
+ template<class OptionalPointee>
diff --git a/external/boost/boost.loplugin.patch b/external/boost/boost.loplugin.patch
deleted file mode 100644
index 7c35d33..0000000
--- a/external/boost/boost.loplugin.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- foo/foo/foo/boost/lexical_cast.hpp
-+++ foo/foo/foo/boost/lexical_cast.hpp
-@@ -1016,7 +1016,7 @@
-                 if( !has_minus ) value = std::numeric_limits<T>::quiet_NaN();
-                 else value = (boost::math::changesign) (std::numeric_limits<T>::quiet_NaN());
-                 return true;
--            } else
-+            } else {
-             if (( /* 'INF' or 'inf' */
-                   end-begin==3
-                   &&
-@@ -1031,6 +1031,7 @@
-                 else value = (boost::math::changesign) (std::numeric_limits<T>::infinity());
-                 return true;
-             }
-+            }
- 
-             return false;
-         }
diff --git a/external/boost/boost.math.Wdeprecated-register.patch.0 b/external/boost/boost.math.Wdeprecated-register.patch.0
deleted file mode 100644
index d11de3a..0000000
--- a/external/boost/boost.math.Wdeprecated-register.patch.0
+++ /dev/null
@@ -1,36 +0,0 @@
---- boost/math/special_functions/detail/lanczos_sse2.hpp
-+++ boost/math/special_functions/detail/lanczos_sse2.hpp
-@@ -51,11 +51,11 @@
-       static_cast<double>(23531376880.41075968857200767445163675473L),
-       static_cast<double>(0u)
-    };
--   register __m128d vx = _mm_load1_pd(&x);
--   register __m128d sum_even = _mm_load_pd(coeff);
--   register __m128d sum_odd = _mm_load_pd(coeff+2);
--   register __m128d nc_odd, nc_even;
--   register __m128d vx2 = _mm_mul_pd(vx, vx);
-+   __m128d vx = _mm_load1_pd(&x);
-+   __m128d sum_even = _mm_load_pd(coeff);
-+   __m128d sum_odd = _mm_load_pd(coeff+2);
-+   __m128d nc_odd, nc_even;
-+   __m128d vx2 = _mm_mul_pd(vx, vx);
- 
-    sum_even = _mm_mul_pd(sum_even, vx2);
-    nc_even = _mm_load_pd(coeff + 4);
-@@ -136,11 +136,11 @@
-          static_cast<double>(56906521.91347156388090791033559122686859L),
-          static_cast<double>(0u)
-    };
--   register __m128d vx = _mm_load1_pd(&x);
--   register __m128d sum_even = _mm_load_pd(coeff);
--   register __m128d sum_odd = _mm_load_pd(coeff+2);
--   register __m128d nc_odd, nc_even;
--   register __m128d vx2 = _mm_mul_pd(vx, vx);
-+   __m128d vx = _mm_load1_pd(&x);
-+   __m128d sum_even = _mm_load_pd(coeff);
-+   __m128d sum_odd = _mm_load_pd(coeff+2);
-+   __m128d nc_odd, nc_even;
-+   __m128d vx2 = _mm_mul_pd(vx, vx);
- 
-    sum_even = _mm_mul_pd(sum_even, vx2);
-    nc_even = _mm_load_pd(coeff + 4);
diff --git a/external/boost/boost.math.Wunused-local-typedefs.warnings.patch b/external/boost/boost.math.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index e74c149..0000000
--- a/external/boost/boost.math.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/b/boost/boost/math/special_functions/fpclassify.hpp	2013-05-31 14:02:13.660436127 +0200
-+++ a/b/boost/boost/math/special_functions/fpclassify.hpp	2013-05-31 14:01:17.372246240 +0200
-@@ -339,7 +338,6 @@
- { //!< \brief return true if floating-point type t is finite.
-    typedef detail::fp_traits<long double>::type traits;
-    typedef traits::method method;
--   typedef boost::is_floating_point<long double>::type fp_tag;
-    typedef long double value_type;
-    return detail::isfinite_impl(static_cast<value_type>(x), method());
- }
-@@ -410,7 +407,6 @@
- {
-    typedef detail::fp_traits<long double>::type traits;
-    typedef traits::method method;
--   typedef boost::is_floating_point<long double>::type fp_tag;
-    typedef long double value_type;
-    return detail::isnormal_impl(static_cast<value_type>(x), method());
- }
-@@ -499,7 +494,6 @@
- {
-    typedef detail::fp_traits<long double>::type traits;
-    typedef traits::method method;
--   typedef boost::is_floating_point<long double>::type fp_tag;
-    typedef long double value_type;
-    return detail::isinf_impl(static_cast<value_type>(x), method());
- }
-@@ -585,7 +578,6 @@
- { //!< \brief return true if floating-point type t is NaN (Not A Number).
-    typedef detail::fp_traits<long double>::type traits;
-    typedef traits::method method;
--   typedef boost::is_floating_point<long double>::type fp_tag;
-    return detail::isnan_impl(x, method());
- }
- #endif
diff --git a/external/boost/boost.multi_array.C4510.warnings.patch b/external/boost/boost.multi_array.C4510.warnings.patch
index 11fdace..d450ace 100644
--- a/external/boost/boost.multi_array.C4510.warnings.patch
+++ b/external/boost/boost.multi_array.C4510.warnings.patch
@@ -1,6 +1,7 @@
---- misc/boost_1_44_0/boost/multi_array/concept_checks.hpp
-+++ misc/build/boost_1_44_0/boost/multi_array/concept_checks.hpp
-@@ -56,6 +56,13 @@
+diff -ru boost.orig/boost/multi_array/concept_checks.hpp boost/boost/multi_array/concept_checks.hpp
+--- foo/misc/boost.orig/boost/multi_array/concept_checks.hpp	2014-04-23 17:36:51.000000000 +0200
++++ foo/misc/boost/boost/multi_array/concept_checks.hpp	2015-07-18 20:58:17.222982959 +0200
+@@ -58,6 +58,13 @@
  
  } // namespace detail
  
@@ -14,7 +15,7 @@
  
    template <typename Array, std::size_t NumDims >
    struct ConstMultiArrayConcept
-@@ -117,6 +124,9 @@
+@@ -119,6 +126,9 @@
      index_range range;
    };
  
diff --git a/external/boost/boost.multi_array.Wshadow.warnings.patch.2 b/external/boost/boost.multi_array.Wshadow.warnings.patch.2
deleted file mode 100644
index 1f8f0b5..0000000
--- a/external/boost/boost.multi_array.Wshadow.warnings.patch.2
+++ /dev/null
@@ -1,46 +0,0 @@
-From d28b2bc733d85b0bb194f395375f2a460b9be00d Mon Sep 17 00:00:00 2001
-From: Michael Stahl <mstahl at redhat.com>
-Date: Wed, 30 Apr 2014 12:27:55 +0200
-Subject: [PATCH] multi_array: suppress GCC -Wshadow warnings (fixes: #9886)
-
----
- include/boost/multi_array.hpp | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/include/boost/multi_array.hpp b/include/boost/multi_array.hpp
-index 8193699..72b2294 100644
---- a/include/boost/multi_array.hpp
-+++ b/include/boost/multi_array.hpp
-@@ -18,6 +18,16 @@
- // declaration and definition
- //
- 
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406)
-+#  pragma GCC diagnostic push
-+#  pragma GCC diagnostic ignored "-Wshadow"
-+#endif
-+
-+#if defined(__clang__)
-+#  pragma clang diagnostic push
-+#  pragma clang diagnostic ignored "-Wshadow"
-+#endif
-+
- #include "boost/multi_array/base.hpp"
- #include "boost/multi_array/collection_concept.hpp"
- #include "boost/multi_array/copy_array.hpp"
-@@ -496,4 +501,12 @@ private:
- 
- } // namespace boost
- 
-+#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406)
-+#  pragma GCC diagnostic pop
-+#endif
-+
-+#if defined(__clang__)
-+#  pragma clang diagnostic pop
-+#endif
-+
- #endif // BOOST_MULTI_ARRAY_RG071801_HPP
--- 
-1.8.3.1
-
diff --git a/external/boost/boost.multi_array.Wundef.warnings.patch b/external/boost/boost.multi_array.Wundef.warnings.patch
deleted file mode 100644
index e17c734..0000000
--- a/external/boost/boost.multi_array.Wundef.warnings.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- foo/foo/foo/boost/multi_array/base.hpp
-+++ foo/foo/foo/boost/multi_array/base.hpp
-@@ -65,7 +65,7 @@
- // object creation in small-memory environments.  Thus, the objects
- // can be left undefined by defining BOOST_MULTI_ARRAY_NO_GENERATORS 
- // before loading multi_array.hpp.
--#if !BOOST_MULTI_ARRAY_NO_GENERATORS
-+#if !defined(BOOST_MULTI_ARRAY_NO_GENERATORS) || !BOOST_MULTI_ARRAY_NO_GENERATORS
- namespace {
-   multi_array_types::extent_gen extents;
-   multi_array_types::index_gen indices;
diff --git a/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch b/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch
index b0be548..3edcfcc 100644
--- a/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch
+++ b/external/boost/boost.multi_array.Wunused-local-typedefs.warnings.patch
@@ -1,5 +1,6 @@
---- misc/boost_1_44_0/boost/multi_array/concept_checks.hpp
-+++ misc/build/boost_1_44_0/boost/multi_array/concept_checks.hpp
+diff -ru boost.orig/boost/multi_array/concept_checks.hpp boost/boost/multi_array/concept_checks.hpp
+--- foo/misc/boost.orig/boost/multi_array/concept_checks.hpp	2015-07-18 21:20:26.353996242 +0200
++++ foo/misc/boost/boost/multi_array/concept_checks.hpp	2015-07-18 21:21:05.202995805 +0200
 @@ -39,8 +39,6 @@
  
      template <typename Array, typename IdxGen, typename Call_Type>
diff --git a/external/boost/boost.multi_index.Wshadow.warnings.patch.1 b/external/boost/boost.multi_index.Wshadow.warnings.patch.1
deleted file mode 100644
index 58c39c0..0000000
--- a/external/boost/boost.multi_index.Wshadow.warnings.patch.1
+++ /dev/null
@@ -1,94 +0,0 @@
---- boost/boost/multi_index/sequenced_index.hpp	2008-07-03 18:51:53.000000000 +0200
-+++ boost/boost/multi_index/sequenced_index.hpp	2013-05-17 15:44:15.265289335 +0200
-@@ -346,7 +346,7 @@
-   }
- 
-   template<typename Modifier,typename Rollback>
--  bool modify(iterator position,Modifier mod,Rollback back)
-+  bool modify(iterator position,Modifier mod,Rollback back_)
-   {
-     BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position);
-     BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position);
-@@ -363,7 +363,7 @@
- #endif
- 
-     return this->final_modify_(
--      mod,back,static_cast<final_node_type*>(position.get_node()));
-+      mod,back_,static_cast<final_node_type*>(position.get_node()));
-   }
- 
-   void swap(sequenced_index<SuperMeta,TagList>& x)
---- boost/boost/multi_index_container.hpp	2010-07-24 11:20:29.000000000 +0200
-+++ boost/boost/multi_index_container.hpp	2013-05-17 15:45:56.723899853 +0200
-@@ -360,7 +360,7 @@
-     IteratorType it
-     BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))
-   {
--    typedef typename nth_index<N>::type index;
-+    typedef typename nth_index<N>::type index_;
- 
- #if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */
-     BOOST_STATIC_ASSERT(
-@@ -371,7 +371,7 @@
-     BOOST_MULTI_INDEX_CHECK_IS_OWNER(
-       it,static_cast<typename IteratorType::container_type&>(*this));
- 
--    return index::make_iterator(static_cast<node_type*>(it.get_node()));
-+    return index_::make_iterator(static_cast<node_type*>(it.get_node()));
-   }
- 
-   template<int N,typename IteratorType>
-@@ -379,7 +379,7 @@
-     IteratorType it
-     BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))const
-   {
--    typedef typename nth_index<N>::type index;
-+    typedef typename nth_index<N>::type index_;
- 
- #if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */
-     BOOST_STATIC_ASSERT((
-@@ -390,7 +390,7 @@
-     BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
-     BOOST_MULTI_INDEX_CHECK_IS_OWNER(
-       it,static_cast<const typename IteratorType::container_type&>(*this));
--    return index::make_iterator(static_cast<node_type*>(it.get_node()));
-+    return index_::make_iterator(static_cast<node_type*>(it.get_node()));
-   }
- #endif
- 
-@@ -414,7 +414,7 @@
-     IteratorType it
-     BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))
-   {
--    typedef typename index<Tag>::type index;
-+    typedef typename index<Tag>::type index_;
- 
- #if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */
-     BOOST_STATIC_ASSERT(
-@@ -424,7 +424,7 @@
-     BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
-     BOOST_MULTI_INDEX_CHECK_IS_OWNER(
-       it,static_cast<typename IteratorType::container_type&>(*this));
--    return index::make_iterator(static_cast<node_type*>(it.get_node()));
-+    return index_::make_iterator(static_cast<node_type*>(it.get_node()));
-   }
- 
-   template<typename Tag,typename IteratorType>
-@@ -432,7 +432,7 @@
-     IteratorType it
-     BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))const
-   {
--    typedef typename index<Tag>::type index;
-+    typedef typename index<Tag>::type index_;
- 
- #if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */
-     BOOST_STATIC_ASSERT((
-@@ -443,7 +443,7 @@
-     BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it);
-     BOOST_MULTI_INDEX_CHECK_IS_OWNER(
-       it,static_cast<const typename IteratorType::container_type&>(*this));
--    return index::make_iterator(static_cast<node_type*>(it.get_node()));
-+    return index_::make_iterator(static_cast<node_type*>(it.get_node()));
-   }
- #endif
- 
diff --git a/external/boost/boost.predef.Wundef.warnings.patch b/external/boost/boost.predef.Wundef.warnings.patch
deleted file mode 100644
index 81e8e23..0000000
--- a/external/boost/boost.predef.Wundef.warnings.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- foo/foo/foo/boost/predef/other/endian.h
-+++ foo/foo/foo/boost/predef/other/endian.h
-@@ -77,7 +77,7 @@
- #           undef BOOST_ENDIAN_LITTLE_BYTE
- #           define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
- #       endif
--#       if (__BYTE_ORDER == __PDP_ENDIAN)
-+#       if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN)
- #           undef BOOST_ENDIAN_LITTLE_WORD
- #           define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
- #       endif
diff --git a/external/boost/boost.preprocessor.Wundef.warnings.patch b/external/boost/boost.preprocessor.Wundef.warnings.patch
index 63fa958..1dc9888 100644
--- a/external/boost/boost.preprocessor.Wundef.warnings.patch
+++ b/external/boost/boost.preprocessor.Wundef.warnings.patch
@@ -1,18 +1,32 @@
---- foo/foo/foo/boost/preprocessor/config/config.hpp
-+++ foo/foo/foo/boost/preprocessor/config/config.hpp
-@@ -90,7 +90,7 @@
- #            define BOOST_PP_VARIADICS 0
- #        endif
+diff -ur boost.orig/boost/preprocessor/config/config.hpp boost/boost/preprocessor/config/config.hpp
+--- foo/misc/boost.orig/boost/preprocessor/config/config.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/config/config.hpp	2015-07-16 07:47:54.969987660 +0200
+@@ -79,7 +79,7 @@
+ #        define BOOST_PP_VARIADICS 1
+ #        define BOOST_PP_VARIADICS_MSVC 1
  #    /* Wave (C/C++), GCC (C++) */
 -#    elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
-+#    elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && defined __GXX_EXPERIMENTAL_CXX0X__ && __GXX_EXPERIMENTAL_CXX0X__
++#    elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__
  #        define BOOST_PP_VARIADICS 1
  #    /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
  #    elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
---- foo/foo/foo/boost/preprocessor/tuple/elem.hpp
-+++ foo/foo/foo/boost/preprocessor/tuple/elem.hpp
-@@ -22,7 +22,7 @@
- # include <boost/preprocessor/variadic/elem.hpp>
+diff -ur boost.orig/boost/preprocessor/tuple/detail/is_single_return.hpp boost/boost/preprocessor/tuple/detail/is_single_return.hpp
+--- foo/misc/boost.orig/boost/preprocessor/tuple/detail/is_single_return.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/tuple/detail/is_single_return.hpp	2015-07-16 07:57:29.881981198 +0200
+@@ -16,7 +16,7 @@
+ #
+ # /* BOOST_PP_TUPLE_IS_SINGLE_RETURN */
+ #
+-# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC
++# if BOOST_PP_VARIADICS && defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
+ # include <boost/preprocessor/control/iif.hpp>
+ # include <boost/preprocessor/facilities/is_1.hpp>
+ # include <boost/preprocessor/tuple/size.hpp>
+diff -ur boost.orig/boost/preprocessor/tuple/elem.hpp boost/boost/preprocessor/tuple/elem.hpp
+--- foo/misc/boost.orig/boost/preprocessor/tuple/elem.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/tuple/elem.hpp	2015-07-16 07:49:08.509986833 +0200
+@@ -24,7 +24,7 @@
+ # include <boost/preprocessor/tuple/detail/is_single_return.hpp>
  #
  # if BOOST_PP_VARIADICS
 -#    if BOOST_PP_VARIADICS_MSVC
@@ -20,9 +34,30 @@
  #        define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
  #        define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
  #        define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
---- foo/foo/foo/boost/preprocessor/tuple/rem.hpp
-+++ foo/foo/foo/boost/preprocessor/tuple/rem.hpp
-@@ -105,7 +105,7 @@
+diff -ur boost.orig/boost/preprocessor/tuple/rem.hpp boost/boost/preprocessor/tuple/rem.hpp
+--- foo/misc/boost.orig/boost/preprocessor/tuple/rem.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/tuple/rem.hpp	2015-07-16 07:59:19.084979971 +0200
+@@ -22,7 +22,7 @@
+ # /* BOOST_PP_REM */
+ #
+ # if BOOST_PP_VARIADICS
+-# 	 if BOOST_PP_VARIADICS_MSVC
++# 	 if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
+ 		/* To be used internally when __VA_ARGS__ could be empty ( or is a single element ) */
+ #    	define BOOST_PP_REM_CAT(...) BOOST_PP_CAT(__VA_ARGS__,)
+ # 	 endif
+@@ -36,8 +36,8 @@
+ /*
+   VC++8.0 cannot handle the variadic version of BOOST_PP_TUPLE_REM(size)
+ */
+-# if BOOST_PP_VARIADICS && !(BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
+-# 	 if BOOST_PP_VARIADICS_MSVC
++# if BOOST_PP_VARIADICS && !(defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
++# 	 if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
+ 		/* To be used internally when the size could be 0 ( or 1 ) */
+ #    	define BOOST_PP_TUPLE_REM_CAT(size) BOOST_PP_REM_CAT
+ # 	 endif
+@@ -120,7 +120,7 @@
  # /* BOOST_PP_TUPLE_REM_CTOR */
  #
  # if BOOST_PP_VARIADICS
@@ -31,9 +66,22 @@
  #        define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
  #        define BOOST_PP_TUPLE_REM_CTOR_I(m, args) BOOST_PP_TUPLE_REM_CTOR_II(m, args)
  #        define BOOST_PP_TUPLE_REM_CTOR_II(m, args) BOOST_PP_CAT(m ## args,)
---- foo/foo/foo/boost/preprocessor/tuple/to_list.hpp
-+++ foo/foo/foo/boost/preprocessor/tuple/to_list.hpp
-@@ -23,7 +23,7 @@
+diff -ur boost.orig/boost/preprocessor/tuple/size.hpp boost/boost/preprocessor/tuple/size.hpp
+--- foo/misc/boost.orig/boost/preprocessor/tuple/size.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/tuple/size.hpp	2015-07-16 07:58:30.296980519 +0200
+@@ -18,7 +18,7 @@
+ # include <boost/preprocessor/variadic/size.hpp>
+ #
+ # if BOOST_PP_VARIADICS
+-#    if BOOST_PP_VARIADICS_MSVC
++#    if defined(BOOST_PP_VARIADICS_MSVC) && BOOST_PP_VARIADICS_MSVC
+ #        define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE tuple,)
+ #    else
+ #        define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_VARIADIC_SIZE tuple
+diff -ur boost.orig/boost/preprocessor/tuple/to_list.hpp boost/boost/preprocessor/tuple/to_list.hpp
+--- foo/misc/boost.orig/boost/preprocessor/tuple/to_list.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/tuple/to_list.hpp	2015-07-16 07:51:25.693985291 +0200
+@@ -24,7 +24,7 @@
  # /* BOOST_PP_TUPLE_TO_LIST */
  #
  # if BOOST_PP_VARIADICS
@@ -42,8 +90,9 @@
  #        define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
  #        define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args)
  #        define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
---- foo/foo/foo/boost/preprocessor/variadic/elem.hpp
-+++ foo/foo/foo/boost/preprocessor/variadic/elem.hpp
+diff -ur boost.orig/boost/preprocessor/variadic/elem.hpp boost/boost/preprocessor/variadic/elem.hpp
+--- foo/misc/boost.orig/boost/preprocessor/variadic/elem.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/variadic/elem.hpp	2015-07-16 07:54:03.513983517 +0200
 @@ -19,7 +19,7 @@
  # /* BOOST_PP_VARIADIC_ELEM */
  #
@@ -53,8 +102,9 @@
  #        define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_VARIADIC_ELEM_I(n,__VA_ARGS__)
  #        define BOOST_PP_VARIADIC_ELEM_I(n, ...) BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
  #    else
---- foo/foo/foo/boost/preprocessor/variadic/size.hpp
-+++ foo/foo/foo/boost/preprocessor/variadic/size.hpp
+diff -ur boost.orig/boost/preprocessor/variadic/size.hpp boost/boost/preprocessor/variadic/size.hpp
+--- foo/misc/boost.orig/boost/preprocessor/variadic/size.hpp	2015-03-28 09:19:20.000000000 +0100
++++ foo/misc/boost/boost/preprocessor/variadic/size.hpp	2015-07-16 07:52:45.303984396 +0200
 @@ -19,7 +19,7 @@
  # /* BOOST_PP_VARIADIC_SIZE */
  #
@@ -64,3 +114,24 @@
  #        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),)
  #    else
  #        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
+diff -ur boost.orig/boost/tuple/detail/tuple_basic.hpp boost/boost/tuple/detail/tuple_basic.hpp
+--- foo/misc/boost.orig/boost/tuple/detail/tuple_basic.hpp	2014-05-12 01:27:34.000000000 +0200
++++ foo/misc/boost/boost/tuple/detail/tuple_basic.hpp	2015-07-16 08:00:29.269979182 +0200
+@@ -41,7 +41,7 @@
+ 
+ #include "boost/detail/workaround.hpp" // needed for BOOST_WORKAROUND
+ 
+-#if BOOST_GCC >= 40700
++#if defined(BOOST_GCC) && BOOST_GCC >= 40700
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+ #endif
+@@ -979,7 +979,7 @@
+ } // end of namespace boost
+ 
+ 
+-#if BOOST_GCC >= 40700
++#if defined(BOOST_GCC) && BOOST_GCC >= 40700
+ #pragma GCC diagnostic pop
+ #endif
+ 
diff --git a/external/boost/boost.property_tree.Wshadow.warnings.patch.1 b/external/boost/boost.property_tree.Wshadow.warnings.patch.1
index 65e4cae..64d020b 100644
--- a/external/boost/boost.property_tree.Wshadow.warnings.patch.1
+++ b/external/boost/boost.property_tree.Wshadow.warnings.patch.1
@@ -1,5 +1,6 @@
---- boost/boost/property_tree/detail/json_parser_error.hpp	2007-05-13 00:02:53.000000000 +0200
-+++ boost/boost/property_tree/detail/json_parser_error.hpp	2013-05-17 15:36:44.605902442 +0200
+diff -ru boost.orig/boost/property_tree/detail/json_parser_error.hpp boost/boost/property_tree/detail/json_parser_error.hpp
+--- boost.orig/boost/property_tree/detail/json_parser_error.hpp	2015-07-07 14:20:48.000000000 +0200
++++ boost/boost/property_tree/detail/json_parser_error.hpp	2015-07-19 11:16:35.699957767 +0200
 @@ -20,10 +20,10 @@
      class json_parser_error: public file_parser_error
      {
@@ -8,92 +9,17 @@
 -                          const std::string &filename, 
 -                          unsigned long line): 
 -            file_parser_error(message, filename, line)
-+        json_parser_error(const std::string &message_,
-+                          const std::string &filename_,
-+                          unsigned long line_):
++        json_parser_error(const std::string &message_, 
++                          const std::string &filename_, 
++                          unsigned long line_): 
 +            file_parser_error(message_, filename_, line_)
          { 
          }
      };
---- boost/boost/property_tree/detail/json_parser_read.hpp	2013-05-17 15:57:23.740638395 +0200
-+++ boost/boost/property_tree/detail/json_parser_read.hpp	2013-05-17 15:31:05.666857356 +0200
-@@ -45,7 +45,7 @@
-         struct a_object_s
-         {
-             context &c;
--            a_object_s(context &c): c(c) { }
-+            a_object_s(context &c_): c(c_) { }
-             void operator()(Ch) const
-             {
-                 if (c.stack.empty())
-@@ -63,7 +63,7 @@
-         struct a_object_e
-         {
-             context &c;
--            a_object_e(context &c): c(c) { }
-+            a_object_e(context &c_): c(c_) { }
-             void operator()(Ch) const
-             {
-                 BOOST_ASSERT(c.stack.size() >= 1);
-@@ -74,7 +74,7 @@
-         struct a_name
-         {
-             context &c;
--            a_name(context &c): c(c) { }
-+            a_name(context &c_): c(c_) { }
-             void operator()(It, It) const
-             {
-                 c.name.swap(c.string);
-@@ -85,7 +85,7 @@
-         struct a_string_val
-         {
-             context &c;
--            a_string_val(context &c): c(c) { }
-+            a_string_val(context &c_): c(c_) { }
-             void operator()(It, It) const
-             {
-                 BOOST_ASSERT(c.stack.size() >= 1);
-@@ -98,7 +98,7 @@
-         struct a_literal_val
-         {
-             context &c;
--            a_literal_val(context &c): c(c) { }
-+            a_literal_val(context &c_): c(c_) { }
-             void operator()(It b, It e) const
-             {
-                 BOOST_ASSERT(c.stack.size() >= 1);
-@@ -111,8 +111,8 @@
-         struct a_char
-         {
-             context &c;
--            a_char(context &c): c(c) { }
--            void operator()(It b, It e) const
-+            a_char(context &c_): c(c_) { }
-+            void operator()(It b, It /* e */) const
-             {
-                 c.string += *b;
-             }
-@@ -121,7 +121,7 @@
-         struct a_escape
-         {
-             context &c;
--            a_escape(context &c): c(c) { }
-+            a_escape(context &c_): c(c_) { }
-             void operator()(Ch ch) const
-             {
-                 switch (ch)
-@@ -142,7 +142,7 @@
-         struct a_unicode
-         {
-             context &c;
--            a_unicode(context &c): c(c) { }
-+            a_unicode(context &c_): c(c_) { }
-             void operator()(unsigned long u) const
-             {
-                 u = (std::min)(u, static_cast<unsigned long>((std::numeric_limits<Ch>::max)()));
---- boost/boost/property_tree/detail/ptree_implementation.hpp	2010-07-03 22:59:45.000000000 +0200
-+++ boost/boost/property_tree/detail/ptree_implementation.hpp	2013-05-17 15:55:56.449713452 +0200
-@@ -539,48 +539,48 @@
+diff -ru boost.orig/boost/property_tree/detail/ptree_implementation.hpp boost/boost/property_tree/detail/ptree_implementation.hpp
+--- boost.orig/boost/property_tree/detail/ptree_implementation.hpp	2015-07-07 14:20:48.000000000 +0200
++++ boost/boost/property_tree/detail/ptree_implementation.hpp	2015-07-18 23:33:04.165906803 +0200
+@@ -568,48 +568,48 @@
  
      template<class K, class D, class C>
      basic_ptree<K, D, C> &
@@ -153,7 +79,7 @@
          self_type *n = walk_path(p);
          if (!n) {
              return optional<self_type&>();
-@@ -590,9 +590,9 @@
+@@ -619,9 +619,9 @@
  
      template<class K, class D, class C>
      optional<const basic_ptree<K, D, C> &>
@@ -165,7 +91,7 @@
          self_type *n = walk_path(p);
          if (!n) {
              return optional<const self_type&>();
-@@ -602,10 +602,10 @@
+@@ -631,10 +631,10 @@
  
      template<class K, class D, class C>
      basic_ptree<K, D, C> &
@@ -178,7 +104,7 @@
          self_type &parent = force_path(p);
          // Got the parent. Now get the correct child.
          key_type fragment = p.reduce();
-@@ -620,10 +620,10 @@
+@@ -649,10 +649,10 @@
  
      template<class K, class D, class C>
      basic_ptree<K, D, C> &
@@ -191,7 +117,7 @@
          self_type &parent = force_path(p);
          // Got the parent.
          key_type fragment = p.reduce();
-@@ -709,26 +709,26 @@
+@@ -738,26 +738,26 @@
      template<class K, class D, class C>
      template<class Type, class Translator> inline
      typename boost::enable_if<detail::is_translator<Translator>, Type>::type
@@ -224,7 +150,7 @@
      }
  
      template<class K, class D, class C>
-@@ -738,18 +738,18 @@
+@@ -767,18 +767,18 @@
          std::basic_string<Ch>
      >::type
      basic_ptree<K, D, C>::get(
@@ -247,7 +173,7 @@
      }
  
      template<class K, class D, class C>
-@@ -759,17 +759,17 @@
+@@ -788,17 +788,17 @@
          std::basic_string<Ch>
      >::type
      basic_ptree<K, D, C>::get(
@@ -269,7 +195,7 @@
              return child.get().
                  BOOST_NESTED_TEMPLATE get_value_optional<Type>(tr);
          else
-@@ -778,9 +778,9 @@
+@@ -808,9 +808,9 @@
      template<class K, class D, class C>
      template<class Type>
      optional<Type> basic_ptree<K, D, C>::get_optional(
@@ -281,7 +207,7 @@
              return child.get().BOOST_NESTED_TEMPLATE get_value_optional<Type>();
          else
              return optional<Type>();
-@@ -809,13 +809,13 @@
+@@ -839,13 +839,13 @@
      template<class K, class D, class C>
      template<class Type, typename Translator>
      basic_ptree<K, D, C> & basic_ptree<K, D, C>::put(
@@ -298,7 +224,7 @@
              child2.put_value(value, tr);
              return child2;
          }
-@@ -824,18 +824,18 @@
+@@ -854,18 +854,18 @@
      template<class K, class D, class C>
      template<class Type> inline
      basic_ptree<K, D, C> & basic_ptree<K, D, C>::put(
@@ -321,7 +247,7 @@
          child.put_value(value, tr);
          return child;
      }
-@@ -843,9 +843,9 @@
+@@ -873,9 +873,9 @@
      template<class K, class D, class C>
      template<class Type> inline
      basic_ptree<K, D, C> & basic_ptree<K, D, C>::add(
@@ -333,11 +259,12 @@
                     typename translator_between<data_type, Type>::type());
      }
  
---- a/boost/property_tree/string_path.hpp
-+++ a/boost/property_tree/string_path.hpp
-@@ -88,14 +88,14 @@ namespace boost { namespace property_tree
+diff -ru boost.orig/boost/property_tree/string_path.hpp boost/boost/property_tree/string_path.hpp
+--- boost.orig/boost/property_tree/string_path.hpp	2015-07-07 14:20:48.000000000 +0200
++++ boost/boost/property_tree/string_path.hpp	2015-07-18 23:33:41.749906380 +0200
+@@ -88,14 +88,14 @@
          typedef typename String::value_type char_type;
-
+ 
          /// Create an empty path.
 -        explicit string_path(char_type separator = char_type('.'));
 +        explicit string_path(char_type separator_ = char_type('.'));
@@ -352,25 +279,25 @@
                      Translator tr = Translator());
          /// Create a path by parsing the given string.
          /// @param value A zero-terminated array of values. Only use if zero-
-@@ -106,7 +106,7 @@ namespace boost { namespace property_tree
+@@ -106,7 +106,7 @@
          /// @param tr The translator used by this path to convert the individual
          ///           parts to keys.
          string_path(const char_type *value,
 -                    char_type separator = char_type('.'),
 +                    char_type separator_ = char_type('.'),
                      Translator tr = Translator());
-
+ 
          // Default copying doesn't do the right thing with the iterator
-@@ -162,23 +162,23 @@ namespace boost { namespace property_tree
+@@ -162,23 +162,23 @@
      };
-
+ 
      template <typename String, typename Translator> inline
 -    string_path<String, Translator>::string_path(char_type separator)
 -        : m_separator(separator), m_start(m_value.begin())
 +    string_path<String, Translator>::string_path(char_type separator_)
 +        : m_separator(separator_), m_start(m_value.begin())
      {}
-
+ 
      template <typename String, typename Translator> inline
      string_path<String, Translator>::string_path(const String &value,
 -                                                 char_type separator,
@@ -380,7 +307,7 @@
 +        : m_value(value), m_separator(separator_),
            m_tr(tr), m_start(m_value.begin())
      {}
-
+ 
      template <typename String, typename Translator> inline
      string_path<String, Translator>::string_path(const char_type *value,
 -                                                 char_type separator,
@@ -390,4 +317,4 @@
 +        : m_value(value), m_separator(separator_),
            m_tr(tr), m_start(m_value.begin())
      {}
-
+ 
diff --git a/external/boost/boost.property_tree.Wtype-limits.warnings.patch.1 b/external/boost/boost.property_tree.Wtype-limits.warnings.patch.1
deleted file mode 100644
index e4c7ede..0000000
--- a/external/boost/boost.property_tree.Wtype-limits.warnings.patch.1
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -ur boost.org/boost/property_tree/detail/json_parser_write.hpp boost/boost/property_tree/detail/json_parser_write.hpp
---- boost.org/boost/property_tree/detail/json_parser_write.hpp	2014-04-20 13:27:59.126224368 +0300
-+++ boost/boost/property_tree/detail/json_parser_write.hpp	2014-04-20 13:32:35.206229552 +0300
-@@ -29,25 +29,26 @@
-         typename std::basic_string<Ch>::const_iterator e = s.end();
-         while (b != e)
-         {
-+            typename std::basic_string<Ch>::traits_type::int_type bDref = *b;
-             // This assumes an ASCII superset. But so does everything in PTree.
-             // We escape everything outside ASCII, because this code can't
-             // handle high unicode characters.
--            if (*b == 0x20 || *b == 0x21 || (*b >= 0x23 && *b <= 0x2E) ||
--                (*b >= 0x30 && *b <= 0x5B) || (*b >= 0x5D && *b <= 0xFF))
--                result += *b;
--            else if (*b == Ch('\b')) result += Ch('\\'), result += Ch('b');
--            else if (*b == Ch('\f')) result += Ch('\\'), result += Ch('f');
--            else if (*b == Ch('\n')) result += Ch('\\'), result += Ch('n');
--            else if (*b == Ch('\r')) result += Ch('\\'), result += Ch('r');
--            else if (*b == Ch('/')) result += Ch('\\'), result += Ch('/');
--            else if (*b == Ch('"'))  result += Ch('\\'), result += Ch('"');
--            else if (*b == Ch('\\')) result += Ch('\\'), result += Ch('\\');
-+            if (bDref == 0x20 || bDref == 0x21 || (bDref >= 0x23 && bDref <= 0x2E) ||
-+                (bDref >= 0x30 && bDref <= 0x5B) || (bDref >= 0x5D && bDref <= 0xFF))
-+                result += bDref;
-+            else if (bDref == Ch('\b')) result += Ch('\\'), result += Ch('b');
-+            else if (bDref == Ch('\f')) result += Ch('\\'), result += Ch('f');
-+            else if (bDref == Ch('\n')) result += Ch('\\'), result += Ch('n');
-+            else if (bDref == Ch('\r')) result += Ch('\\'), result += Ch('r');
-+            else if (bDref == Ch('/')) result += Ch('\\'), result += Ch('/');
-+            else if (bDref == Ch('"'))  result += Ch('\\'), result += Ch('"');
-+            else if (bDref == Ch('\\')) result += Ch('\\'), result += Ch('\\');
-             else
-             {
-                 const char *hexdigits = "0123456789ABCDEF";
-                 typedef typename make_unsigned<Ch>::type UCh;
-                 unsigned long u = (std::min)(static_cast<unsigned long>(
--                                                 static_cast<UCh>(*b)),
-+                                                 static_cast<UCh>(bDref)),
-                                              0xFFFFul);
-                 int d1 = u / 4096; u -= d1 * 4096;
-                 int d2 = u / 256; u -= d2 * 256;
diff --git a/external/boost/boost.random.Wshadow.warnings.patch b/external/boost/boost.random.Wshadow.warnings.patch
deleted file mode 100644
index 17c0f59..0000000
--- a/external/boost/boost.random.Wshadow.warnings.patch
+++ /dev/null
@@ -1,277 +0,0 @@
---- misc/boost_1_44_0/boost/random/mersenne_twister.hpp
-+++ misc/build/boost_1_44_0/boost/random/mersenne_twister.hpp
-@@ -195,19 +195,19 @@
-      * Returns true if the two generators are in the same state,
-      * and will thus produce identical sequences.
-      */
--    friend bool operator==(const mersenne_twister_engine& x,
--                           const mersenne_twister_engine& y)
-+    friend bool operator==(const mersenne_twister_engine& x_arg,
-+                           const mersenne_twister_engine& y_arg)
-     {
--        if(x.i < y.i) return x.equal_imp(y);
--        else return y.equal_imp(x);
-+        if(x_arg.i < y_arg.i) return x_arg.equal_imp(y_arg);
-+        else return y_arg.equal_imp(x_arg);
-     }
-     
-     /**
-      * Returns true if the two generators are in different states.
-      */
--    friend bool operator!=(const mersenne_twister_engine& x,
--                           const mersenne_twister_engine& y)
--    { return !(x == y); }
-+    friend bool operator!=(const mersenne_twister_engine& x_arg,
-+                           const mersenne_twister_engine& y_arg)
-+    { return !(x_arg == y_arg); }
- 
- private:
-     /// \cond show_private
---- foo/foo/foo/boost/random/binomial_distribution.hpp
-+++ foo/foo/foo/boost/random/binomial_distribution.hpp
-@@ -272,21 +272,21 @@
-         using std::sqrt;
-         using std::pow;
- 
--        RealType p = (0.5 < _p)? (1 - _p) : _p;
--        IntType t = _t;
-+        RealType p_lcl = (0.5 < _p)? (1 - _p) : _p;
-+        IntType t_lcl = _t;
-         
--        m = static_cast<IntType>((t+1)*p);
-+        m = static_cast<IntType>((t_lcl+1)*p_lcl);
- 
-         if(use_inversion()) {
--            q_n = pow((1 - p), static_cast<RealType>(t));
-+            q_n = pow((1 - p_lcl), static_cast<RealType>(t_lcl));
-         } else {
--            btrd.r = p/(1-p);
--            btrd.nr = (t+1)*btrd.r;
--            btrd.npq = t*p*(1-p);
-+            btrd.r = p_lcl/(1-p_lcl);
-+            btrd.nr = (t_lcl+1)*btrd.r;
-+            btrd.npq = t_lcl*p_lcl*(1-p_lcl);
-             RealType sqrt_npq = sqrt(btrd.npq);
-             btrd.b = 1.15 + 2.53 * sqrt_npq;
--            btrd.a = -0.0873 + 0.0248*btrd.b + 0.01*p;
--            btrd.c = t*p + 0.5;
-+            btrd.a = -0.0873 + 0.0248*btrd.b + 0.01*p_lcl;
-+            btrd.c = t_lcl*p_lcl + 0.5;
-             btrd.alpha = (2.83 + 5.1/btrd.b) * sqrt_npq;
-             btrd.v_r = 0.92 - 4.2/btrd.b;
-             btrd.u_rv_r = 0.86*btrd.v_r;
-@@ -304,9 +304,9 @@
-             RealType u;
-             RealType v = uniform_01<RealType>()(urng);
-             if(v <= btrd.u_rv_r) {
--                RealType u = v/btrd.v_r - 0.43;
-+                RealType u_lcl = v/btrd.v_r - 0.43;
-                 return static_cast<IntType>(floor(
--                    (2*btrd.a/(0.5 - abs(u)) + btrd.b)*u + btrd.c));
-+                    (2*btrd.a/(0.5 - abs(u_lcl)) + btrd.b)*u_lcl + btrd.c));
-             }
- 
-             if(v >= btrd.v_r) {
-@@ -344,9 +344,9 @@
-                 v = log(v);
-                 RealType rho =
-                     (km/btrd.npq)*(((km/3. + 0.625)*km + 1./6)/btrd.npq + 0.5);
--                RealType t = -km*km/(2*btrd.npq);
--                if(v < t - rho) return k;
--                if(v > t + rho) continue;
-+                RealType t_lcl = -km*km/(2*btrd.npq);
-+                if(v < t_lcl - rho) return k;
-+                if(v > t_lcl + rho) continue;
- 
-                 IntType nm = _t - m + 1;
-                 RealType h = (m + 0.5)*log((m + 1)/(btrd.r*nm))
-@@ -367,11 +367,11 @@
-     }
- 
-     template<class URNG>
--    IntType invert(IntType t, RealType p, URNG& urng) const
-+    IntType invert(IntType t_arg, RealType p_arg, URNG& urng) const
-     {
--        RealType q = 1 - p;
--        RealType s = p / q;
--        RealType a = (t + 1) * s;
-+        RealType q = 1 - p_arg;
-+        RealType s = p_arg / q;
-+        RealType a = (t_arg + 1) * s;
-         RealType r = q_n;
-         RealType u = uniform_01<RealType>()(urng);
-         IntType x = 0;
---- foo/foo/foo/boost/random/geometric_distribution.hpp
-+++ foo/foo/foo/boost/random/geometric_distribution.hpp
-@@ -104,8 +104,8 @@
-      *
-      * Requires: 0 < p < 1
-      */
--    explicit geometric_distribution(const RealType& p = RealType(0.5))
--      : _p(p)
-+    explicit geometric_distribution(const RealType& p_arg = RealType(0.5))
-+      : _p(p_arg)
-     {
-         BOOST_ASSERT(RealType(0) < _p && _p < RealType(1));
-         init();
---- foo/foo/foo/boost/random/shuffle_order.hpp
-+++ foo/foo/foo/boost/random/shuffle_order.hpp
-@@ -200,8 +200,8 @@
-     }
- 
-     /** Returns true if the two generators will produce identical sequences. */
--    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(shuffle_order_engine, x, y)
--    { return x._rng == y._rng && x.y == y.y && std::equal(x.v, x.v+k, y.v); }
-+    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(shuffle_order_engine, x, y_arg)
-+    { return x._rng == y_arg._rng && x.y == y_arg.y && std::equal(x.v, x.v+k, y_arg.v); }
-     /** Returns true if the two generators will produce different sequences. */
-     BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(shuffle_order_engine)
- 
---- foo/foo/foo/boost/random/subtract_with_carry.hpp
-+++ foo/foo/foo/boost/random/subtract_with_carry.hpp
-@@ -249,10 +249,10 @@
-      * Returns true if the two generators will produce identical
-      * sequences of values.
-      */
--    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_engine, x, y)
-+    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_engine, x_arg, y_arg)
-     {
-         for(unsigned int j = 0; j < r; ++j)
--            if(x.compute(j) != y.compute(j))
-+            if(x_arg.compute(j) != y_arg.compute(j))
-                 return false;
-         return true;
-     }
-@@ -268,21 +268,21 @@
- 
-     friend struct detail::subtract_with_carry_discard;
- 
--    IntType do_update(std::size_t current, std::size_t short_index, IntType carry)
-+    IntType do_update(std::size_t current, std::size_t short_index, IntType carry_arg)
-     {
-         IntType delta;
--        IntType temp = x[current] + carry;
-+        IntType temp = x[current] + carry_arg;
-         if (x[short_index] >= temp) {
-             // x(n) >= 0
-             delta =  x[short_index] - temp;
--            carry = 0;
-+            carry_arg = 0;
-         } else {
-             // x(n) < 0
-             delta = modulus - temp + x[short_index];
--            carry = 1;
-+            carry_arg = 1;
-         }
-         x[current] = delta;
--        return carry;
-+        return carry_arg;
-     }
-     /// \endcond
- 
-@@ -483,10 +483,10 @@
-     }
- 
-     /** Returns true if the two generators will produce identical sequences. */
--    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_01_engine, x, y)
-+    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_01_engine, x_arg, y_arg)
-     {
-         for(unsigned int j = 0; j < r; ++j)
--            if(x.compute(j) != y.compute(j))
-+            if(x_arg.compute(j) != y_arg.compute(j))
-                 return false;
-         return true;
-     }
-@@ -498,17 +498,17 @@
- 
-     friend struct detail::subtract_with_carry_discard;
- 
--    RealType do_update(std::size_t current, std::size_t short_index, RealType carry)
-+    RealType do_update(std::size_t current, std::size_t short_index, RealType carry_arg)
-     {
--        RealType delta = x[short_index] - x[current] - carry;
-+        RealType delta = x[short_index] - x[current] - carry_arg;
-         if(delta < 0) {
-             delta += RealType(1);
--            carry = RealType(1)/_modulus;
-+            carry_arg = RealType(1)/_modulus;
-         } else {
--            carry = 0;
-+            carry_arg = 0;
-         }
-         x[current] = delta;
--        return carry;
-+        return carry_arg;
-     }
-     /// \endcond
-     std::size_t k;
---- misc/boost_1_44_0/boost/random/lagged_fibonacci.hpp
-+++ misc/build/boost_1_44_0/boost/random/lagged_fibonacci.hpp
-@@ -148,8 +148,8 @@
-     BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, lagged_fibonacci_engine, f)
-     {
-         os << f.i;
--        for(unsigned int i = 0; i < f.long_lag; ++i)
--            os << ' ' << f.x[i];
-+        for(unsigned int i_index = 0; i_index < f.long_lag; ++i_index)
-+            os << ' ' << f.x[i_index];
-         return os;
-     }
-     
-@@ -159,17 +159,17 @@
-     BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, lagged_fibonacci_engine, f)
-     {
-         is >> f.i >> std::ws;
--        for(unsigned int i = 0; i < f.long_lag; ++i)
--            is >> f.x[i] >> std::ws;
-+        for(unsigned int i_index = 0; i_index < f.long_lag; ++i_index)
-+            is >> f.x[i_index] >> std::ws;
-         return is;
-     }
-     
-     /**
-      * Returns true if the two generators will produce identical
-      * sequences of outputs.
-      */
--    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(lagged_fibonacci_engine, x, y)
--    { return x.i == y.i && std::equal(x.x, x.x+long_lag, y.x); }
-+    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(lagged_fibonacci_engine, x_arg, y_arg)
-+    { return x_arg.i == y_arg.i && std::equal(x_arg.x, x_arg.x+long_lag, y_arg.x); }
-     
-     /**
-      * Returns true if the two generators will produce different
-@@ -359,8 +359,8 @@
-         using std::pow;
-         os << f.i;
-         std::ios_base::fmtflags oldflags = os.flags(os.dec | os.fixed | os.left); 
--        for(unsigned int i = 0; i < f.long_lag; ++i)
--            os << ' ' << f.x[i] * f.modulus();
-+        for(unsigned int i_index = 0; i_index < f.long_lag; ++i_index)
-+            os << ' ' << f.x[i_index] * f.modulus();
-         os.flags(oldflags);
-         return os;
-     }
-@@ -371,10 +371,10 @@
-     BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, lagged_fibonacci_01_engine, f)
-     {
-         is >> f.i;
--        for(unsigned int i = 0; i < f.long_lag; ++i) {
-+        for(unsigned int i_index = 0; i_index < f.long_lag; ++i_index) {
-             typename lagged_fibonacci_01_engine::result_type value;
-             is >> std::ws >> value;
--            f.x[i] = value / f.modulus();
-+            f.x[i_index] = value / f.modulus();
-         }
-         return is;
-     }
-@@ -383,8 +383,8 @@
-      * Returns true if the two generators will produce identical
-      * sequences of outputs.
-      */
--    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(lagged_fibonacci_01_engine, x, y)
--    { return x.i == y.i && std::equal(x.x, x.x+long_lag, y.x); }
-+    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(lagged_fibonacci_01_engine, x_arg, y_arg)
-+    { return x_arg.i == y_arg.i && std::equal(x_arg.x, x_arg.x+long_lag, y_arg.x); }
-     
-     /**
-      * Returns true if the two generators will produce different
diff --git a/external/boost/boost.random.Wunused-local-typedefs.warnings.patch b/external/boost/boost.random.Wunused-local-typedefs.warnings.patch
index 7d48742..73f8c0b 100644
--- a/external/boost/boost.random.Wunused-local-typedefs.warnings.patch
+++ b/external/boost/boost.random.Wunused-local-typedefs.warnings.patch
@@ -1,20 +1,11 @@
---- a/b/boost/boost/random/generate_canonical.hpp	2013-05-31 18:13:09.804149686 +0200
-+++ a/b/boost/boost/random/generate_canonical.hpp	2013-05-31 18:13:30.020195845 +0200
-@@ -55,7 +55,6 @@
-     using std::floor;
-     BOOST_ASSERT((g.min)() == 0);
-     BOOST_ASSERT((g.max)() == 1);
+diff -ru boost.orig/boost/random/generate_canonical.hpp boost/boost/random/generate_canonical.hpp
+--- a/b/boost.orig/boost/random/generate_canonical.hpp	2015-02-27 18:44:45.000000000 +0100
++++ a/b/boost/boost/random/generate_canonical.hpp	2015-07-18 21:55:44.152972440 +0200
+@@ -32,7 +32,6 @@
+ RealType generate_canonical_impl(URNG& g, boost::mpl::true_ /*is_integral*/)
+ {
+     using std::pow;
 -    typedef typename URNG::result_type base_result;
      std::size_t digits = std::numeric_limits<RealType>::digits;
-     std::size_t engine_bits = detail::generator_bits<URNG>::value();
-     std::size_t b = (std::min)(bits, digits);
---- a/b/boost/boost/random/uniform_real_distribution.hpp	2013-05-31 18:15:04.571429634 +0200
-+++ a/b/boost/boost/random/uniform_real_distribution.hpp	2013-05-31 18:14:28.452337186 +0200
-@@ -36,7 +36,6 @@
- {
-     for(;;) {
-         typedef T result_type;
--        typedef typename Engine::result_type base_result;
-         result_type numerator = static_cast<T>(eng() - (eng.min)());
-         result_type divisor = static_cast<T>((eng.max)() - (eng.min)());
-         BOOST_ASSERT(divisor > 0);
+     RealType R = RealType((g.max)()) - RealType((g.min)()) + 1;
+     RealType mult = R;
diff --git a/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch b/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch
index babe844..5551080 100644
--- a/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch
+++ b/external/boost/boost.spirit.Wunused-local-typedefs.warnings.patch
@@ -1,23 +1,23 @@
---- misc/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
-@@ -307,7 +307,6 @@
+diff -ru boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp
+--- foo/misc/boost.orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp	2015-07-18 21:46:45.774978491 +0200
++++ foo/misc/boost/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp	2015-07-18 21:59:52.339969650 +0200
+@@ -282,12 +282,12 @@
  #if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
          typedef impl::grammar_helper_base<GrammarT> helper_base_t;
          typedef grammar_helper_list<GrammarT> helper_list_t;
 -        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
  
          helper_list_t&  helpers =
- # if !defined(__GNUC__) || (__GNUC__ > 2)
-@@ -318,6 +317,7 @@
+         grammartract_helper_list::do_(self);
  
- # if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
-     || defined(BOOST_INTEL_CXX_VERSION)
+ # if defined(BOOST_INTEL_CXX_VERSION)
 +        typedef typename helper_list_t::vector_t::reverse_iterator iterator_t;
          for (iterator_t i = helpers.rbegin(); i != helpers.rend(); ++i)
              (*i)->undefine(self);
  # else
---- misc/boost_1_44_0/boost/spirit/home/classic/core/primitives/primitives.hpp
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/core/primitives/primitives.hpp
+diff -ru boost.orig/boost/spirit/home/classic/core/primitives/primitives.hpp boost/boost/spirit/home/classic/core/primitives/primitives.hpp
+--- foo/misc/boost.orig/boost/spirit/home/classic/core/primitives/primitives.hpp	2015-07-18 21:46:45.775978491 +0200
++++ foo/misc/boost/boost/spirit/home/classic/core/primitives/primitives.hpp	2015-07-18 22:03:35.695967140 +0200
 @@ -47,7 +47,6 @@
          typename parser_result<self_t, ScannerT>::type
          parse(ScannerT const& scan) const
@@ -26,8 +26,9 @@
              typedef typename ScannerT::value_t value_t;
              typedef typename ScannerT::iterator_t iterator_t;
  
---- misc/boost_1_44_0/boost/spirit/home/classic/error_handling/exceptions.hpp
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/error_handling/exceptions.hpp
+diff -ru boost.orig/boost/spirit/home/classic/error_handling/exceptions.hpp boost/boost/spirit/home/classic/error_handling/exceptions.hpp
+--- foo/misc/boost.orig/boost/spirit/home/classic/error_handling/exceptions.hpp	2015-07-18 21:46:45.768978491 +0200
++++ foo/misc/boost/boost/spirit/home/classic/error_handling/exceptions.hpp	2015-07-18 22:00:33.396969189 +0200
 @@ -140,7 +140,6 @@
          parse(ScannerT const& scan) const
          {
@@ -36,14 +37,3 @@
  
              result_t hit = this->subject().parse(scan);
              if (!hit)
---- misc/boost_1_44_0/boost/spirit/home/classic/utility/functor_parser.hpp
-+++ misc/build/boost_1_44_0/boost/spirit/home/classic/utility/functor_parser.hpp
-@@ -49,8 +49,6 @@
-         typename parser_result<self_t, ScannerT>::type
-         parse(ScannerT const& scan) const
-         {
--            typedef typename parser_result<self_t, ScannerT>::type result_t;
--            typedef typename ScannerT::value_t      value_t;
-             typedef typename ScannerT::iterator_t   iterator_t;
- 
-             iterator_t const s(scan.first);
diff --git a/external/boost/boost.std.move.patch b/external/boost/boost.std.move.patch
index c6cc329..7c0dfb9 100644
--- a/external/boost/boost.std.move.patch
+++ b/external/boost/boost.std.move.patch
@@ -1,15 +1,16 @@
---- foo/foo/foo/boost/config/compiler/clang.hpp
-+++ foo/foo/foo/boost/config/compiler/clang.hpp
+diff -ru boost.orig/boost/config/compiler/clang.hpp boost/boost/config/compiler/clang.hpp
+--- foo/misc/boost.orig/boost/config/compiler/clang.hpp	2015-05-07 19:11:52.000000000 +0200
++++ foo/misc/boost/boost/config/compiler/clang.hpp	2015-07-18 22:40:56.304941957 +0200
 @@ -10,6 +10,8 @@
  
  #define BOOST_HAS_PRAGMA_ONCE
  
 +#include <utility>
 +
- #if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
- #  define BOOST_NO_EXCEPTIONS
- #endif
-@@ -128,7 +130,7 @@
+ // Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
+ #if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
+ #   define BOOST_HAS_PRAGMA_DETECT_MISMATCH
+@@ -161,7 +163,7 @@
  #  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
  #endif
  
diff --git a/external/boost/boost.transform_width.patch b/external/boost/boost.transform_width.patch
deleted file mode 100644
index 747a17d..0000000
--- a/external/boost/boost.transform_width.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- foo/foo/foo/boost/archive/iterators/transform_width.hpp
-+++ foo/foo/foo/boost/archive/iterators/transform_width.hpp
-@@ -23,6 +23,8 @@
- // stream length is some common multiple of x and y.  E.G. Base64 6 bit
- // character and 8 bit bytes. Lowest common multiple is 24 => 4 6 bit characters
- // or 3 8 bit characters
-+
-+#include <algorithm>
- 
- #include <boost/config.hpp> // for BOOST_DEDUCED_TYPENAME & PTFO
- #include <boost/serialization/pfto.hpp>
diff --git a/external/boost/boost.tuple.Wunused-local-typedefs.warnings.patch b/external/boost/boost.tuple.Wunused-local-typedefs.warnings.patch
deleted file mode 100644
index dd05a1f..0000000
--- a/external/boost/boost.tuple.Wunused-local-typedefs.warnings.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/b/boost/boost/tuple/detail/tuple_basic.hpp	2013-05-31 13:31:21.682966336 +0200
-+++ a/b/boost/boost/tuple/detail/tuple_basic.hpp	2013-05-31 13:32:44.067231648 +0200
-@@ -225,7 +225,6 @@
- get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-   typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
-       apply<cons<HT, TT> > impl;
--  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
-   return impl::call(c).head;
- }
- 
diff --git a/external/boost/boost.unordered.Wshadow.warnings.patch b/external/boost/boost.unordered.Wshadow.warnings.patch
deleted file mode 100644
index ca93da7..0000000
--- a/external/boost/boost.unordered.Wshadow.warnings.patch
+++ /dev/null
@@ -1,146 +0,0 @@
---- foo/foo/foo/boost/unordered/detail/equivalent.hpp
-+++ foo/foo/foo/boost/unordered/detail/equivalent.hpp
-@@ -536,9 +536,9 @@
-             node_pointer first_node = static_cast<node_pointer>(prev->next_);
-             link_pointer end = first_node->group_prev_->next_;
- 
--            std::size_t count = this->delete_nodes(prev, end);
-+            std::size_t count_lcl = this->delete_nodes(prev, end);
-             this->fix_bucket(bucket_index, prev);
--            return count;
-+            return count_lcl;
-         }
- 
-         iterator erase(c_iterator r)
-@@ -557,21 +557,21 @@
-             return iterator(r2.node_);
-         }
- 
--        link_pointer erase_nodes(node_pointer begin, node_pointer end)
-+        link_pointer erase_nodes(node_pointer begin_arg, node_pointer end)
-         {
--            std::size_t bucket_index = this->hash_to_bucket(begin->hash_);
-+            std::size_t bucket_index = this->hash_to_bucket(begin_arg->hash_);
- 
--            // Split the groups containing 'begin' and 'end'.
--            // And get the pointer to the node before begin while
-+            // Split the groups containing 'begin_arg' and 'end.'
-+            // And get the pointer to the node before begin_arg while
-             // we're at it.
--            link_pointer prev = split_groups(begin, end);
-+            link_pointer prev = split_groups(begin_arg, end);
- 
--            // If we don't have a 'prev' it means that begin is at the
-+            // If we don't have a 'prev' it means that begin_arg is at the
-             // beginning of a block, so search through the blocks in the
-             // same bucket.
-             if (!prev) {
-                 prev = this->get_previous_start(bucket_index);
--                while (prev->next_ != begin)
-+                while (prev->next_ != begin_arg)
-                     prev = static_cast<node_pointer>(prev->next_)->group_prev_;
-             }
- 
-@@ -586,27 +586,27 @@
-             return prev;
-         }
- 
--        static link_pointer split_groups(node_pointer begin, node_pointer end)
-+        static link_pointer split_groups(node_pointer begin_arg, node_pointer end)
-         {
--            node_pointer prev = begin->group_prev_;
--            if (prev->next_ != begin) prev = node_pointer();
-+            node_pointer prev = begin_arg->group_prev_;
-+            if (prev->next_ != begin_arg) prev = node_pointer();
- 
-             if (end) {
-                 node_pointer first = end;
--                while (first != begin && first->group_prev_->next_ == first) {
-+                while (first != begin_arg && first->group_prev_->next_ == first) {
-                     first = first->group_prev_;
-                 }
- 
-                 boost::swap(first->group_prev_, end->group_prev_);
--                if (first == begin) return prev;
-+                if (first == begin_arg) return prev;
-             }
- 
-             if (prev) {
-                 node_pointer first = prev;
-                 while (first->group_prev_->next_ == first) {
-                     first = first->group_prev_;
-                 }
--                boost::swap(first->group_prev_, begin->group_prev_);
-+                boost::swap(first->group_prev_, begin_arg->group_prev_);
-             }
- 
-             return prev;
---- foo/foo/foo/boost/unordered/detail/table.hpp
-+++ foo/foo/foo/boost/unordered/detail/table.hpp
-@@ -256,9 +256,9 @@
-             return prev ? iterator(prev->next_) : iterator();
-         }
-         
--        std::size_t hash_to_bucket(std::size_t hash) const
-+        std::size_t hash_to_bucket(std::size_t hash_arg) const
-         {
--            return policy::to_bucket(bucket_count_, hash);
-+            return policy::to_bucket(bucket_count_, hash_arg);
-         }
- 
-         float load_factor() const
-@@ -655,8 +655,8 @@
-             // assign_nodes takes ownership of the container's elements,
-             // assigning to them if possible, and deleting any that are
-             // left over.
--            assign_nodes<table> assign(*this);
--            table_impl::fill_buckets(x.begin(), *this, assign);
-+            assign_nodes<table> assign_lcl(*this);
-+            table_impl::fill_buckets(x.begin(), *this, assign_lcl);
-         }
- 
-         void assign(table const& x, true_type)
-@@ -732,9 +732,9 @@
-                 // move_assign_nodes takes ownership of the container's
-                 // elements, assigning to them if possible, and deleting
-                 // any that are left over.
--                move_assign_nodes<table> assign(*this);
-+                move_assign_nodes<table> assign_lcl(*this);
-                 node_holder<node_allocator> nodes(x);
--                table_impl::fill_buckets(nodes.begin(), *this, assign);
-+                table_impl::fill_buckets(nodes.begin(), *this, assign_lcl);
-             }
-         }
-         
---- foo/foo/foo/boost/unordered/detail/unique.hpp
-+++ foo/foo/foo/boost/unordered/detail/unique.hpp
-@@ -531,9 +531,9 @@
- 
-             link_pointer end = static_cast<node_pointer>(prev->next_)->next_;
- 
--            std::size_t count = this->delete_nodes(prev, end);
-+            std::size_t count_lcl = this->delete_nodes(prev, end);
-             this->fix_bucket(bucket_index, prev);
--            return count;
-+            return count_lcl;
-         }
- 
-         iterator erase(c_iterator r)
-@@ -552,13 +552,13 @@
-             return iterator(r2.node_);
-         }
- 
--        void erase_nodes(node_pointer begin, node_pointer end)
-+        void erase_nodes(node_pointer begin_arg, node_pointer end)
-         {
--            std::size_t bucket_index = this->hash_to_bucket(begin->hash_);
-+            std::size_t bucket_index = this->hash_to_bucket(begin_arg->hash_);
- 
--            // Find the node before begin.
-+            // Find the node before begin_arg.
-             link_pointer prev = this->get_previous_start(bucket_index);
--            while(prev->next_ != begin) prev = prev->next_;
-+            while(prev->next_ != begin_arg) prev = prev->next_;
- 
-             // Delete the nodes.
-             do {
diff --git a/external/boost/boost.uuid.Wshadow.warnings.patch b/external/boost/boost.uuid.Wshadow.warnings.patch
deleted file mode 100644
index b9296dc..0000000
--- a/external/boost/boost.uuid.Wshadow.warnings.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- misc/boost_1_44_0/boost/uuid/uuid_io.hpp
-+++ misc/build/boost_1_44_0/boost/uuid/uuid_io.hpp
-@@ -59,7 +59,7 @@
-         }
-         
-         if (flags & std::ios_base::left) {
--            for (std::streamsize i=uuid_width; i<width; i++) {
-+            for (std::streamsize s=uuid_width; s<width; ++s) {
-                 os << fill;
-             }
-         }
---- misc/boost_1_44_0/boost/uuid/name_generator.hpp
-+++ misc/build/boost_1_44_0/boost/uuid/name_generator.hpp
-@@ -30,8 +30,8 @@
- public:
-     typedef uuid result_type;
- 
--    explicit name_generator(uuid const& namespace_uuid)
--        : namespace_uuid(namespace_uuid)
-+    explicit name_generator(uuid const& namespace_uuid_)
-+        : namespace_uuid(namespace_uuid_)
-     {}
- 
-     uuid operator()(const char* name) {
diff --git a/external/boost/boost.vc2012.patch b/external/boost/boost.vc2012.patch
deleted file mode 100644
index ac20699..0000000
--- a/external/boost/boost.vc2012.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- misc/build/boost_1_44_0/boost/config/compiler/visualc.hpp
-+++ misc/build/boost_1_44_0/boost/config/compiler/visualc.hpp
-@@ -101,6 +101,11 @@
- #  define BOOST_NO_ADL_BARRIER
- #endif
- 
-+#if _MSC_VER >= 1700  // 1700 == VC++ 11.0
-+   // Removed in VC11:
-+#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
-+#endif
-+
- 
- #if (_MSC_VER <= 1600)
- // MSVC (including the latest checked version) has not yet completely 
-@@ -269,8 +269,8 @@
- #error "Compiler not supported or configured - please reconfigure"
- #endif
- //
--// last known and checked version is 1600 (VC10, aka 2010):
--#if (_MSC_VER > 1600)
-+// last known and checked version is 1700 (VC12, aka 2012):
-+#if (_MSC_VER > 1700)
- #  if defined(BOOST_ASSERT_CONFIG)
- #     error "Unknown compiler version - please run the configure tests and report the results"
- #  else
diff --git a/external/boost/boost.wdeprecated-auto_ptr.patch.0 b/external/boost/boost.wdeprecated-auto_ptr.patch.0
index b92d773..860840d 100644
--- a/external/boost/boost.wdeprecated-auto_ptr.patch.0
+++ b/external/boost/boost.wdeprecated-auto_ptr.patch.0
@@ -1,5 +1,6 @@
---- boost/ptr_container/ptr_map.hpp
-+++ boost/ptr_container/ptr_map.hpp
+diff -ru boost.orig/boost/ptr_container/ptr_map_adapter.hpp boost/boost/ptr_container/ptr_map_adapter.hpp
+--- boost/ptr_container/ptr_map_adapter.hpp	2015-07-18 22:42:11.723941110 +0200
++++ boost/ptr_container/ptr_map_adapter.hpp	2015-07-18 22:45:56.525938583 +0200
 @@ -16,6 +16,11 @@
  # pragma once
  #endif
@@ -9,20 +10,21 @@
 +# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 +#endif
 +
- #include <map>
- #include <boost/ptr_container/ptr_map_adapter.hpp>
- 
-@@ -162,4 +168,8 @@
- 
- }
+ #include <boost/ptr_container/detail/map_iterator.hpp>
+ #include <boost/ptr_container/detail/associative_ptr_container.hpp>
+ #include <boost/ptr_container/detail/meta_functions.hpp>
+@@ -872,4 +877,8 @@
+     
+ } // namespace 'boost'  
  
 +#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
 +# pragma GCC diagnostic pop
 +#endif
 +
  #endif
---- boost/ptr_container/ptr_map_adapter.hpp
-+++ boost/ptr_container/ptr_map_adapter.hpp
+diff -ru boost.orig/boost/ptr_container/ptr_map.hpp boost/boost/ptr_container/ptr_map.hpp
+--- boost/ptr_container/ptr_map.hpp	2015-01-25 20:27:11.000000000 +0100
++++ boost/ptr_container/ptr_map.hpp	2015-07-18 22:44:51.669939312 +0200
 @@ -16,6 +16,11 @@
  # pragma once
  #endif
@@ -32,21 +34,22 @@
 +# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 +#endif
 +
- #include <boost/ptr_container/detail/map_iterator.hpp>
- #include <boost/ptr_container/detail/associative_ptr_container.hpp>
- #include <boost/ptr_container/detail/meta_functions.hpp>
-@@ -876,4 +876,8 @@
-     
- } // namespace 'boost'  
+ #include <map>
+ #include <boost/ptr_container/ptr_map_adapter.hpp>
+ 
+@@ -162,4 +167,8 @@
+ 
+ }
  
 +#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
 +# pragma GCC diagnostic pop
 +#endif
 +
  #endif
---- boost/ptr_container/ptr_set_adapter.hpp
-+++ boost/ptr_container/ptr_set_adapter.hpp
-@@ -16,6 +16,11 @@
+diff -ru boost.orig/boost/ptr_container/ptr_sequence_adapter.hpp boost/boost/ptr_container/ptr_sequence_adapter.hpp
+--- boost/ptr_container/ptr_sequence_adapter.hpp	2015-07-18 22:42:11.734941110 +0200
++++ boost/boost/ptr_container/ptr_sequence_adapter.hpp	2015-07-18 22:47:28.662937548 +0200
+@@ -16,6 +16,10 @@
  # pragma once
  #endif
  
@@ -54,11 +57,10 @@
 +# pragma GCC diagnostic push
 +# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 +#endif
-+
- #include <boost/ptr_container/detail/associative_ptr_container.hpp>
- #include <boost/ptr_container/detail/meta_functions.hpp>
- #include <boost/ptr_container/detail/void_ptr_iterator.hpp>
-@@ -693,4 +693,8 @@
+ 
+ #include <boost/ptr_container/detail/reversible_ptr_container.hpp>
+ #include <boost/ptr_container/indirect_fun.hpp>
+@@ -773,4 +777,8 @@
  
  } // namespace 'boost'  
  
@@ -67,9 +69,10 @@
 +#endif
 +
  #endif
---- boost/ptr_container/ptr_sequence_adapter.hpp
-+++ boost/ptr_container/ptr_sequence_adapter.hpp
-@@ -16,6 +16,10 @@
+diff -ru boost.orig/boost/ptr_container/ptr_set_adapter.hpp boost/boost/ptr_container/ptr_set_adapter.hpp
+--- boost/ptr_container/ptr_set_adapter.hpp	2015-01-25 20:27:11.000000000 +0100
++++ boost/ptr_container/ptr_set_adapter.hpp	2015-07-18 22:46:40.378938090 +0200
+@@ -16,6 +16,11 @@
  # pragma once
  #endif
  
@@ -77,10 +80,11 @@
 +# pragma GCC diagnostic push
 +# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 +#endif
- 
- #include <boost/ptr_container/detail/reversible_ptr_container.hpp>
- #include <boost/ptr_container/indirect_fun.hpp>
-@@ -773,4 +777,8 @@
++
+ #include <boost/ptr_container/detail/associative_ptr_container.hpp>
+ #include <boost/ptr_container/detail/meta_functions.hpp>
+ #include <boost/ptr_container/detail/void_ptr_iterator.hpp>
+@@ -689,4 +694,8 @@
  
  } // namespace 'boost'  
  
@@ -89,8 +93,9 @@
 +#endif
 +
  #endif
---- boost/ptr_container/ptr_vector.hpp
-+++ boost/ptr_container/ptr_vector.hpp
+diff -ru boost.orig/boost/ptr_container/ptr_vector.hpp boost/boost/ptr_container/ptr_vector.hpp
+--- boost/ptr_container/ptr_vector.hpp	2015-01-25 20:27:11.000000000 +0100
++++ boost/ptr_container/ptr_vector.hpp	2015-07-18 22:48:11.431937067 +0200
 @@ -16,6 +16,11 @@
  # pragma once
  #endif
@@ -103,7 +108,7 @@
  #include <vector>
  #include <boost/ptr_container/ptr_sequence_adapter.hpp>
  
-@@ -74,4 +80,8 @@
+@@ -74,4 +79,8 @@
      
  }
  
@@ -112,8 +117,9 @@
 +#endif
 +
  #endif
---- boost/smart_ptr/detail/shared_count.hpp
-+++ boost/smart_ptr/detail/shared_count.hpp
+diff -ru boost.orig/boost/smart_ptr/detail/shared_count.hpp boost/boost/smart_ptr/detail/shared_count.hpp
+--- boost/smart_ptr/detail/shared_count.hpp	2015-06-06 00:40:42.000000000 +0200
++++ boost/smart_ptr/detail/shared_count.hpp	2015-07-18 22:49:13.985936364 +0200
 @@ -18,6 +18,11 @@
  // http://www.boost.org/LICENSE_1_0.txt)
  //
@@ -126,7 +132,7 @@
  #ifdef __BORLANDC__
  # pragma warn -8027     // Functions containing try are not expanded inline
  #endif
-@@ -604,4 +604,8 @@
+@@ -696,4 +701,8 @@
  # pragma warn .8027     // Functions containing try are not expanded inline
  #endif
  
@@ -135,8 +141,9 @@
 +#endif
 +
  #endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
---- boost/smart_ptr/scoped_ptr.hpp
-+++ boost/smart_ptr/scoped_ptr.hpp
+diff -ru boost.orig/boost/smart_ptr/scoped_ptr.hpp boost/boost/smart_ptr/scoped_ptr.hpp
+--- boost/smart_ptr/scoped_ptr.hpp	2015-06-06 00:40:42.000000000 +0200
++++ boost/smart_ptr/scoped_ptr.hpp	2015-07-18 22:50:07.597935761 +0200
 @@ -11,6 +11,11 @@
  //  http://www.boost.org/libs/smart_ptr/scoped_ptr.htm
  //
@@ -149,7 +156,7 @@
  #include <boost/config.hpp>
  #include <boost/assert.hpp>
  #include <boost/checked_delete.hpp>
-@@ -158,4 +158,8 @@
+@@ -154,4 +159,8 @@
  
  } // namespace boost
  
@@ -158,8 +165,9 @@
 +#endif
 +
  #endif // #ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED
---- boost/smart_ptr/shared_ptr.hpp
-+++ boost/smart_ptr/shared_ptr.hpp
+diff -ru boost.orig/boost/smart_ptr/shared_ptr.hpp boost/boost/smart_ptr/shared_ptr.hpp
+--- boost/smart_ptr/shared_ptr.hpp	2015-06-06 00:40:42.000000000 +0200
++++ boost/smart_ptr/shared_ptr.hpp	2015-07-18 22:50:59.615935177 +0200
 @@ -14,6 +14,11 @@
  //  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
  //
@@ -171,10 +179,10 @@
 +
  #include <boost/config.hpp>   // for broken compiler workarounds
  
- #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-@@ -1036,4 +1036,8 @@
+ // In order to avoid circular dependencies with Boost.TR1
+@@ -1064,4 +1069,8 @@
  
- #endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+ } // namespace boost
  
 +#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 406) || defined(__clang__)
 +# pragma GCC diagnostic pop
diff --git a/external/boost/boost.windows.patch b/external/boost/boost.windows.patch
deleted file mode 100644
index befc805..0000000
--- a/external/boost/boost.windows.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- misc/build/boost_1_44_0/boost/pool/detail/mutex.hpp
-+++ misc/build/boost_1_44_0/boost/pool/detail/mutex.hpp
-@@ -45,7 +45,9 @@
- 
- #ifndef BOOST_NO_MT
- # ifdef BOOST_WINDOWS
-+#  define NOMINMAX
- #  include <windows.h>
-+#  undef NOMINMAX
- # endif
- # if defined(_POSIX_THREADS) || defined(BOOST_HAS_PTHREADS)
- #  include <pthread.h>
diff --git a/external/boost/boost_1_44_0-unused-parameters.patch b/external/boost/boost_1_44_0-unused-parameters.patch
index 4fe61ba..d3341bf 100644
--- a/external/boost/boost_1_44_0-unused-parameters.patch
+++ b/external/boost/boost_1_44_0-unused-parameters.patch
@@ -1,6 +1,7 @@
---- misc/boost_1_44_0/boost/bind/bind.hpp	2009-11-30 21:30:22.000000000 +0100
-+++ misc/build/boost_1_44_0/boost/bind/bind.hpp	2012-01-20 12:44:07.111316403 +0100
-@@ -143,7 +143,7 @@
+diff -ru boost.orig/boost/bind/bind.hpp boost/boost/bind/bind.hpp
+--- foo/misc/boost.orig/boost/bind/bind.hpp	2015-05-04 00:08:08.000000000 +0200
++++ foo/misc/boost/boost/bind/bind.hpp	2015-07-16 22:47:55.972950054 +0200
+@@ -145,7 +145,7 @@
  
  template<class F> struct unwrapper
  {
@@ -9,7 +10,7 @@
      {
          return f;
      }
-@@ -226,7 +226,7 @@
+@@ -228,7 +228,7 @@
  
      A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
  
@@ -18,7 +19,7 @@
  
      template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
  
-@@ -238,22 +238,22 @@
+@@ -240,22 +240,22 @@
  
      template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
  
@@ -45,9 +46,14 @@
      {
          unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
      }
-@@ -285,8 +285,8 @@
-     A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
-     A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+@@ -284,11 +284,11 @@
+ 
+     list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}
+ 
+-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
++    A1 operator[] (__attribute__ ((unused)) boost::arg<1>) const { return base_type::a1_; }
++    A2 operator[] (__attribute__ ((unused)) boost::arg<2>) const { return base_type::a2_; }
  
 -    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
 -    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
@@ -56,7 +62,7 @@
  
      template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
  
-@@ -298,22 +298,22 @@
+@@ -300,42 +300,42 @@
  
      template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
  
@@ -83,7 +89,52 @@
      {
          unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
      }
-@@ -377,7 +377,7 @@
+ 
+-    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
++    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a,  __attribute__ ((unused)) int )
+     {
+         return a[ base_type::a1_ ] && a[ base_type::a2_ ];
+     }
+ 
+-    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
++    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a,  __attribute__ ((unused)) int ) const
+     {
+         return a[ base_type::a1_ ] && a[ base_type::a2_ ];
+     }
+ 
+-    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
++    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a,  __attribute__ ((unused)) int )
+     {
+         return a[ base_type::a1_ ] || a[ base_type::a2_ ];
+     }
+ 
+-    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
++    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a,  __attribute__ ((unused)) int ) const
+     {
+         return a[ base_type::a1_ ] || a[ base_type::a2_ ];
+     }
+@@ -361,13 +361,13 @@
+ 
+     list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}
+ 
+-    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }
+-    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }
+-    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }
+-
+-    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }
+-    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }
+-    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list