From 9e2dfd19e8429356b9941d61afc03d7d4ab2cb28 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 00:20:53 +0200
Subject: [PATCH 01/28] minor cleanup

---
 src/json.hpp      | 17 +++++++++--------
 src/json.hpp.re2c | 17 +++++++++--------
 2 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 43646763..9312c4f4 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1461,13 +1461,13 @@ class basic_json
 
     @since version 2.0.0
     */
-    template < typename CompatibleNumberUnsignedType, typename
-               std::enable_if <
-                   std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
-                   std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
-                   !std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
-                   CompatibleNumberUnsignedType >::type
-               = 0 >
+    template <typename CompatibleNumberUnsignedType, typename
+              std::enable_if <
+                  std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
+                  std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
+                  not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
+                  CompatibleNumberUnsignedType>::type
+              = 0>
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
           m_value(static_cast<number_unsigned_t>(val))
@@ -5079,6 +5079,7 @@ class basic_json
             throw std::domain_error("iterator does not fit current value");
         }
 
+        // check if range iterators belong to the same JSON object
         if (first.m_object != last.m_object)
         {
             throw std::domain_error("iterators do not fit");
@@ -7332,7 +7333,7 @@ class basic_json
 
         @return string representation of the code point
 
-        @throw std::out_of_range if code point is >0x10ffff; example: `"code
+        @throw std::out_of_range if code point is > 0x10ffff; example: `"code
         points above 0x10FFFF are invalid"`
         @throw std::invalid_argument if the low surrogate is invalid; example:
         `""missing or wrong low surrogate""`
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index ba4fc007..2ab300ec 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -1461,13 +1461,13 @@ class basic_json
 
     @since version 2.0.0
     */
-    template < typename CompatibleNumberUnsignedType, typename
-               std::enable_if <
-                   std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
-                   std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
-                   !std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
-                   CompatibleNumberUnsignedType >::type
-               = 0 >
+    template <typename CompatibleNumberUnsignedType, typename
+              std::enable_if <
+                  std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
+                  std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
+                  not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
+                  CompatibleNumberUnsignedType>::type
+              = 0>
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
           m_value(static_cast<number_unsigned_t>(val))
@@ -5079,6 +5079,7 @@ class basic_json
             throw std::domain_error("iterator does not fit current value");
         }
 
+        // check if range iterators belong to the same JSON object
         if (first.m_object != last.m_object)
         {
             throw std::domain_error("iterators do not fit");
@@ -7332,7 +7333,7 @@ class basic_json
 
         @return string representation of the code point
 
-        @throw std::out_of_range if code point is >0x10ffff; example: `"code
+        @throw std::out_of_range if code point is > 0x10ffff; example: `"code
         points above 0x10FFFF are invalid"`
         @throw std::invalid_argument if the low surrogate is invalid; example:
         `""missing or wrong low surrogate""`

From 744bae7fc4eac70d01f83bdcd055880234b8ad37 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 07:00:31 +0200
Subject: [PATCH 02/28] trying to fix Travis

---
 .travis.yml | 65 +++++++++++++++++++++++++++++++----------------------
 1 file changed, 38 insertions(+), 27 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 249a8757..ccba5fd1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -44,6 +44,17 @@ matrix:
           branch_pattern: coverity_scan
       env: COMPILER=g++-5
 
+    # from https://github.com/travis-ci/travis-ci/issues/6120
+    - os: linux
+      before_install:
+       - LLVM_VERSION=3.7.0
+       - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang+llvm
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang+llvm --strip-components 1
+       - export PATH=$HOME/clang+llvm/bin:$PATH
+      env: COMPILER=clang++
+
 #    - os: linux
 #      compiler: gcc
 #      addons:
@@ -55,29 +66,29 @@ matrix:
     # Clang 3.5 is not able to compile the code,
     # see https://travis-ci.org/nlohmann/json/jobs/126720186
 
-    - os: linux
-      compiler: clang
-      addons:
-        apt:
-          sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
-          packages: ['clang-3.6', 'valgrind']
-      env: COMPILER=clang++-3.6
-
-    - os: linux
-      compiler: clang
-      addons:
-        apt:
-          sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
-          packages: ['clang-3.7', 'valgrind']
-      env: COMPILER=clang++-3.7
-
-    - os: linux
-      compiler: clang
-      addons:
-        apt:
-          sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.8']
-          packages: ['clang-3.8', 'valgrind']
-      env: COMPILER=clang++-3.8
+#    - os: linux
+#      compiler: clang
+#      addons:
+#        apt:
+#          sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
+#          packages: ['clang-3.6', 'valgrind']
+#      env: COMPILER=clang++-3.6
+#
+#    - os: linux
+#      compiler: clang
+#      addons:
+#        apt:
+#          sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
+#          packages: ['clang-3.7', 'valgrind']
+#      env: COMPILER=clang++-3.7
+#
+#    - os: linux
+#      compiler: clang
+#      addons:
+#        apt:
+#          sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.8']
+#          packages: ['clang-3.8', 'valgrind']
+#      env: COMPILER=clang++-3.8
 
   #  - os: linux
   #    compiler: clang
@@ -97,10 +108,10 @@ matrix:
       compiler: clang
       env: COMPILER=clang
 
-  #  - os: osx
-  #    osx_image: beta-xcode6.3
-  #    compiler: clang
-  #    env: COMPILER=clang
+    - os: osx
+      osx_image: beta-xcode6.3
+      compiler: clang
+      env: COMPILER=clang
 
     - os: osx
       osx_image: xcode6.4

From 5173c1622282abef3c0aaccf6d52b72a3398e5b5 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 07:07:42 +0200
Subject: [PATCH 03/28] another try

---
 .travis.yml | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index ccba5fd1..007d6bb0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -50,10 +50,18 @@ matrix:
        - LLVM_VERSION=3.7.0
        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang+llvm
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang+llvm --strip-components 1
-       - export PATH=$HOME/clang+llvm/bin:$PATH
-      env: COMPILER=clang++
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+      env: COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+
+    - os: linux
+      before_install:
+       - LLVM_VERSION=3.8.0
+       - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+      env: COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
 
 #    - os: linux
 #      compiler: gcc

From e772f06f0d391782f8c1dbf27f1f2e839fa99220 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 07:14:54 +0200
Subject: [PATCH 04/28] another try

---
 .travis.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 007d6bb0..f577ce8c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -47,8 +47,8 @@ matrix:
     # from https://github.com/travis-ci/travis-ci/issues/6120
     - os: linux
       before_install:
-       - LLVM_VERSION=3.7.0
-       - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+       - export LLVM_VERSION=3.7.0
+       - export LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION
        - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
@@ -56,8 +56,8 @@ matrix:
 
     - os: linux
       before_install:
-       - LLVM_VERSION=3.8.0
-       - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+       - export LLVM_VERSION=3.8.0
+       - export LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION
        - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1

From f4ae8f8e2e9ceeab02b8be6549f1bca51b28eb87 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 07:21:17 +0200
Subject: [PATCH 05/28] another try

---
 .travis.yml | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index f577ce8c..29fc4459 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -46,22 +46,14 @@ matrix:
 
     # from https://github.com/travis-ci/travis-ci/issues/6120
     - os: linux
+      env:
+        - LLVM_VERSION=3.7.0
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
       before_install:
-       - export LLVM_VERSION=3.7.0
-       - export LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION
        - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-      env: COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-
-    - os: linux
-      before_install:
-       - export LLVM_VERSION=3.8.0
-       - export LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-      env: COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
 
 #    - os: linux
 #      compiler: gcc

From 32f6682177e31fa7b25d21615c44cde219ae3ba3 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 07:25:11 +0200
Subject: [PATCH 06/28] another try

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 29fc4459..8fe3cf6d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -47,7 +47,7 @@ matrix:
     # from https://github.com/travis-ci/travis-ci/issues/6120
     - os: linux
       env:
-        - LLVM_VERSION=3.7.0
+        - LLVM_VERSION=3.8.0
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
         - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
       before_install:

From dfc39b95ab9becac9385c1569ce1c05bd6a2d723 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 07:54:00 +0200
Subject: [PATCH 07/28] clang does not work with travis right now

---
 .travis.yml | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 8fe3cf6d..7f2dd9b6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -44,16 +44,16 @@ matrix:
           branch_pattern: coverity_scan
       env: COMPILER=g++-5
 
-    # from https://github.com/travis-ci/travis-ci/issues/6120
-    - os: linux
-      env:
-        - LLVM_VERSION=3.8.0
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+#    # from https://github.com/travis-ci/travis-ci/issues/6120
+#    - os: linux
+#      env:
+#        - LLVM_VERSION=3.8.0
+#        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+#        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+#      before_install:
+#       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+#       - mkdir $HOME/clang-$LLVM_VERSION
+#       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
 
 #    - os: linux
 #      compiler: gcc

From 1826d12a22e14f6ce00c1218685011eea982c83e Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 08:28:50 +0200
Subject: [PATCH 08/28] added CPATH

---
 .travis.yml | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 7f2dd9b6..3bfe5eaa 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -44,16 +44,17 @@ matrix:
           branch_pattern: coverity_scan
       env: COMPILER=g++-5
 
-#    # from https://github.com/travis-ci/travis-ci/issues/6120
-#    - os: linux
-#      env:
-#        - LLVM_VERSION=3.8.0
-#        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-#        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-#      before_install:
-#       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-#       - mkdir $HOME/clang-$LLVM_VERSION
-#       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+    # from https://github.com/travis-ci/travis-ci/issues/6120
+    - os: linux
+      env:
+        - LLVM_VERSION=3.8.0
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPATH=$HOME/clang-$LLVM_VERSION/include
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
 
 #    - os: linux
 #      compiler: gcc

From 761880f5b746f3d7040dd8b0da3e9121d573fc14 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 08:32:56 +0200
Subject: [PATCH 09/28] CPATH does not work...

---
 .travis.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 3bfe5eaa..26517d5c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -49,8 +49,7 @@ matrix:
       env:
         - LLVM_VERSION=3.8.0
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPATH=$HOME/clang-$LLVM_VERSION/include
+        - COMPILER="$HOME/clang-$LLVM_VERSION/bin/clang++ -I$HOME/clang-$LLVM_VERSION/include"
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION

From dd542aae7d1e157a49de0748d8347756890e3b88 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 08:40:25 +0200
Subject: [PATCH 10/28] another try

---
 .travis.yml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 26517d5c..76eeafba 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -49,7 +49,8 @@ matrix:
       env:
         - LLVM_VERSION=3.8.0
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER="$HOME/clang-$LLVM_VERSION/bin/clang++ -I$HOME/clang-$LLVM_VERSION/include"
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include"
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION

From dd10c89a3e8e0de8e995dc923e764ee5a6f6d2f4 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 08:53:36 +0200
Subject: [PATCH 11/28] another try

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 76eeafba..ce29a41b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -50,7 +50,7 @@ matrix:
         - LLVM_VERSION=3.8.0
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
         - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include"
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION

From fbbdcb19bce6eadd0a675b560fdcb7dc4080eafc Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 09:01:49 +0200
Subject: [PATCH 12/28] another try

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index ce29a41b..9871b7d4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -137,7 +137,7 @@ matrix:
 script:
   - uname -a
   - $COMPILER --version
-  - make CXX=$COMPILER CXXFLAGS="-lstdc++"
+  - make CXX=$COMPILER
   - ./json_unit "*"
   - if [ `which valgrind` ]; then
     valgrind --error-exitcode=1 --leak-check=full ./json_unit ;

From 32cc6fefcc1c377d3a215f0c595f1f621e100070 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 09:12:53 +0200
Subject: [PATCH 13/28] another try

---
 .travis.yml | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 9871b7d4..76054da8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -51,6 +51,7 @@ matrix:
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
         - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION
@@ -102,37 +103,51 @@ matrix:
     - os: osx
       osx_image: beta-xcode6.1
       compiler: clang
-      env: COMPILER=clang
+      env:
+       - COMPILER=clang
+       - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: beta-xcode6.2
       compiler: clang
-      env: COMPILER=clang
+      env:
+       - COMPILER=clang
+       - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: beta-xcode6.3
       compiler: clang
-      env: COMPILER=clang
+      env:
+       - COMPILER=clang
+       - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode6.4
       compiler: clang
-      env: COMPILER=clang
+      env:
+       - COMPILER=clang
+       - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode7.1
       compiler: clang
-      env: COMPILER=clang
+      env:
+       - COMPILER=clang
+       - CXXFLAGS=-lstdc++
      
     - os: osx
       osx_image: xcode7.2
       compiler: clang
-      env: COMPILER=clang
+      env:
+       - COMPILER=clang
+       - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode7.3
       compiler: clang
-      env: COMPILER=clang
+      env:
+       - COMPILER=clang
+       - CXXFLAGS=-lstdc++
 
 script:
   - uname -a

From f63317dce34ae34a9a26809ae277f867ac6b4348 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 09:34:46 +0200
Subject: [PATCH 14/28] another try

---
 .travis.yml | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 76054da8..205606be 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,10 +23,10 @@ matrix:
       after_success:
         - make clean
         - touch src/json.hpp
-        - make json_unit CXXFLAGS="-fprofile-arcs -ftest-coverage -std=c++11 -lstdc++" CXX=$COMPILER
+        - make json_unit CXXFLAGS="-fprofile-arcs -ftest-coverage -std=c++11 -lstdc++"
         - ./json_unit "*"
         - coveralls --exclude test/src/catch.hpp --exclude test/src/unit.cpp --include src/json.hpp --gcov-options '\-lp' --gcov 'gcov-4.9'
-      env: COMPILER=g++-4.9
+      env: CXX=g++-4.9
 
     - os: linux
       compiler: gcc
@@ -42,16 +42,15 @@ matrix:
           build_command_prepend: "make clean ; sudo cp $(which g++-5) $(which g++)"
           build_command: "make"
           branch_pattern: coverity_scan
-      env: COMPILER=g++-5
+      env: CXX=g++-5
 
     # from https://github.com/travis-ci/travis-ci/issues/6120
     - os: linux
       env:
         - LLVM_VERSION=3.8.0
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CXX=$HOME/clang-$LLVM_VERSION/bin/clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION
@@ -104,55 +103,55 @@ matrix:
       osx_image: beta-xcode6.1
       compiler: clang
       env:
-       - COMPILER=clang
+       - CXX=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: beta-xcode6.2
       compiler: clang
       env:
-       - COMPILER=clang
+       - CXX=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: beta-xcode6.3
       compiler: clang
       env:
-       - COMPILER=clang
+       - CXX=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode6.4
       compiler: clang
       env:
-       - COMPILER=clang
+       - CXX=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode7.1
       compiler: clang
       env:
-       - COMPILER=clang
+       - CXX=clang
        - CXXFLAGS=-lstdc++
      
     - os: osx
       osx_image: xcode7.2
       compiler: clang
       env:
-       - COMPILER=clang
+       - CXX=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode7.3
       compiler: clang
       env:
-       - COMPILER=clang
+       - CXX=clang
        - CXXFLAGS=-lstdc++
 
 script:
   - uname -a
-  - $COMPILER --version
-  - make CXX=$COMPILER
+  - $CXX --version
+  - make
   - ./json_unit "*"
   - if [ `which valgrind` ]; then
     valgrind --error-exitcode=1 --leak-check=full ./json_unit ;

From 6d19bd1108551b1b4c41cb9e83e6b7f025cc5c7f Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 09:49:11 +0200
Subject: [PATCH 15/28] Revert "another try"

This reverts commit f63317dce34ae34a9a26809ae277f867ac6b4348.
---
 .travis.yml | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 205606be..76054da8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -23,10 +23,10 @@ matrix:
       after_success:
         - make clean
         - touch src/json.hpp
-        - make json_unit CXXFLAGS="-fprofile-arcs -ftest-coverage -std=c++11 -lstdc++"
+        - make json_unit CXXFLAGS="-fprofile-arcs -ftest-coverage -std=c++11 -lstdc++" CXX=$COMPILER
         - ./json_unit "*"
         - coveralls --exclude test/src/catch.hpp --exclude test/src/unit.cpp --include src/json.hpp --gcov-options '\-lp' --gcov 'gcov-4.9'
-      env: CXX=g++-4.9
+      env: COMPILER=g++-4.9
 
     - os: linux
       compiler: gcc
@@ -42,15 +42,16 @@ matrix:
           build_command_prepend: "make clean ; sudo cp $(which g++-5) $(which g++)"
           build_command: "make"
           branch_pattern: coverity_scan
-      env: CXX=g++-5
+      env: COMPILER=g++-5
 
     # from https://github.com/travis-ci/travis-ci/issues/6120
     - os: linux
       env:
         - LLVM_VERSION=3.8.0
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - CXX=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION
@@ -103,55 +104,55 @@ matrix:
       osx_image: beta-xcode6.1
       compiler: clang
       env:
-       - CXX=clang
+       - COMPILER=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: beta-xcode6.2
       compiler: clang
       env:
-       - CXX=clang
+       - COMPILER=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: beta-xcode6.3
       compiler: clang
       env:
-       - CXX=clang
+       - COMPILER=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode6.4
       compiler: clang
       env:
-       - CXX=clang
+       - COMPILER=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode7.1
       compiler: clang
       env:
-       - CXX=clang
+       - COMPILER=clang
        - CXXFLAGS=-lstdc++
      
     - os: osx
       osx_image: xcode7.2
       compiler: clang
       env:
-       - CXX=clang
+       - COMPILER=clang
        - CXXFLAGS=-lstdc++
 
     - os: osx
       osx_image: xcode7.3
       compiler: clang
       env:
-       - CXX=clang
+       - COMPILER=clang
        - CXXFLAGS=-lstdc++
 
 script:
   - uname -a
-  - $CXX --version
-  - make
+  - $COMPILER --version
+  - make CXX=$COMPILER
   - ./json_unit "*"
   - if [ `which valgrind` ]; then
     valgrind --error-exitcode=1 --leak-check=full ./json_unit ;

From a97c998791fe9242763ad242585cc5050410f775 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 09:50:43 +0200
Subject: [PATCH 16/28] removed -lc++

---
 .travis.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index 76054da8..ed5b5197 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -51,7 +51,6 @@ matrix:
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
         - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION

From 1f04c0349a85198c931c5279c9c313d2a62c2da0 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 10:03:18 +0200
Subject: [PATCH 17/28] readded -lc++

---
 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.travis.yml b/.travis.yml
index ed5b5197..76054da8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -51,6 +51,7 @@ matrix:
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
         - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION

From cc5cad5b0beabde812ec30ad99132f63b7002d5b Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 10:53:18 +0200
Subject: [PATCH 18/28] another try

---
 .travis.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.travis.yml b/.travis.yml
index 76054da8..b9fc2766 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -52,6 +52,7 @@ matrix:
         - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
         - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION

From 31b24dd5c1f8dad25456218add4db080dc904142 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:02:45 +0200
Subject: [PATCH 19/28] adding more Clang versions

---
 .travis.yml | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index b9fc2766..82814290 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -58,6 +58,110 @@ matrix:
        - mkdir $HOME/clang-$LLVM_VERSION
        - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
 
+    - os: linux
+      env:
+        - LLVM_VERSION=3.7.1
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
+    - os: linux
+      env:
+        - LLVM_VERSION=3.7.0
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
+    - os: linux
+      env:
+        - LLVM_VERSION=3.6.2
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
+    - os: linux
+      env:
+        - LLVM_VERSION=3.6.1
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
+    - os: linux
+      env:
+        - LLVM_VERSION=3.6.0
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
+    - os: linux
+      env:
+        - LLVM_VERSION=3.5.2
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
+    - os: linux
+      env:
+        - LLVM_VERSION=3.5.1
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
+    - os: linux
+      env:
+        - LLVM_VERSION=3.5.0
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
+        - CXXFLAGS=-lc++
+        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+
 #    - os: linux
 #      compiler: gcc
 #      addons:

From ff8f196ca323e4624a27ec61bbd1a01fecec719c Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:13:15 +0200
Subject: [PATCH 20/28] a test

---
 .travis.yml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 82814290..7d2837f4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -155,8 +155,6 @@ matrix:
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
         - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION

From a4058b88ecc9d6a8aaff4374031514d40673364a Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:14:02 +0200
Subject: [PATCH 21/28] another test

---
 .travis.yml | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 7d2837f4..7f0f6ed7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -136,19 +136,6 @@ matrix:
        - mkdir $HOME/clang-$LLVM_VERSION
        - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
 
-    - os: linux
-      env:
-        - LLVM_VERSION=3.5.1
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
     - os: linux
       env:
         - LLVM_VERSION=3.5.0

From c425dc9e04f9a0ad08eb5c2e38abf537ff026bcc Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:25:00 +0200
Subject: [PATCH 22/28] trying to install clang

---
 .travis.yml | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index 7f0f6ed7..71d69037 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,6 +45,18 @@ matrix:
       env: COMPILER=g++-5
 
     # from https://github.com/travis-ci/travis-ci/issues/6120
+    - os: linux
+      env:
+        - LLVM_VERSION=3.8.0
+        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
+        - COMPILER=clang++
+        - CXXFLAGS=-lc++
+      before_install:
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
+       - mkdir $HOME/clang-$LLVM_VERSION
+       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
+       - cd $HOME/clang-$LLVM_VERSION ; sudo cp -R * /usr/local/
+
     - os: linux
       env:
         - LLVM_VERSION=3.8.0

From 62f39c41ecaf5e90e891a772d3e4b40b1cda8fe5 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:29:37 +0200
Subject: [PATCH 23/28] another try

---
 .travis.yml | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 71d69037..f3a074be 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -48,14 +48,11 @@ matrix:
     - os: linux
       env:
         - LLVM_VERSION=3.8.0
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
         - COMPILER=clang++
         - CXXFLAGS=-lc++
       before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-       - cd $HOME/clang-$LLVM_VERSION ; sudo cp -R * /usr/local/
+       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz
+       - sudo tar xf clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -C /usr/local --strip-components 1
 
     - os: linux
       env:

From 3f23e7059883198afbe00d6d3fc777227f2e63e3 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:36:03 +0200
Subject: [PATCH 24/28] another try

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index f3a074be..446981c9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -52,7 +52,7 @@ matrix:
         - CXXFLAGS=-lc++
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz
-       - sudo tar xf clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -C /usr/local --strip-components 1
+       - sudo tar xf clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -C /usr --strip-components 1
 
     - os: linux
       env:

From 19be324f8780dbbf15e97fdc1eee0927fa451df5 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:38:56 +0200
Subject: [PATCH 25/28] ?

---
 .travis.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index 446981c9..df9e9007 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,6 +53,8 @@ matrix:
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz
        - sudo tar xf clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -C /usr --strip-components 1
+       - echo $PATH
+       - which $COMPILER
 
     - os: linux
       env:

From 439563eb04aae069079fda361fe1f306fade293e Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:42:34 +0200
Subject: [PATCH 26/28] export

---
 .travis.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index df9e9007..c105dd67 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,8 +53,7 @@ matrix:
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz
        - sudo tar xf clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -C /usr --strip-components 1
-       - echo $PATH
-       - which $COMPILER
+       - export
 
     - os: linux
       env:

From 97648314a493c474802571d5e2e5584c9937e80b Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 11:52:12 +0200
Subject: [PATCH 27/28] setting explicit path to compiler

---
 .travis.yml | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index c105dd67..5746514b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -48,12 +48,11 @@ matrix:
     - os: linux
       env:
         - LLVM_VERSION=3.8.0
-        - COMPILER=clang++
+        - COMPILER=/usr/bin/clang++
         - CXXFLAGS=-lc++
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz
        - sudo tar xf clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -C /usr --strip-components 1
-       - export
 
     - os: linux
       env:

From 48f69f40e75bbe9384151b556315e53f910ea977 Mon Sep 17 00:00:00 2001
From: Niels <niels.lohmann@gmail.com>
Date: Tue, 7 Jun 2016 12:04:57 +0200
Subject: [PATCH 28/28] enough for today...

---
 .travis.yml | 101 ++--------------------------------------------------
 1 file changed, 2 insertions(+), 99 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 5746514b..eb00f6fc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,117 +45,20 @@ matrix:
       env: COMPILER=g++-5
 
     # from https://github.com/travis-ci/travis-ci/issues/6120
-    - os: linux
-      env:
-        - LLVM_VERSION=3.8.0
-        - COMPILER=/usr/bin/clang++
-        - CXXFLAGS=-lc++
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz
-       - sudo tar xf clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -C /usr --strip-components 1
-
     - os: linux
       env:
         - LLVM_VERSION=3.8.0
         - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
+        - COMPILER=clang++
         - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
         - CXXFLAGS=-lc++
+        - PATH=$HOME/clang-$LLVM_VERSION/bin:$PATH
         - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
       before_install:
        - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
        - mkdir $HOME/clang-$LLVM_VERSION
        - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
 
-    - os: linux
-      env:
-        - LLVM_VERSION=3.7.1
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
-    - os: linux
-      env:
-        - LLVM_VERSION=3.7.0
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
-    - os: linux
-      env:
-        - LLVM_VERSION=3.6.2
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
-    - os: linux
-      env:
-        - LLVM_VERSION=3.6.1
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
-    - os: linux
-      env:
-        - LLVM_VERSION=3.6.0
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
-    - os: linux
-      env:
-        - LLVM_VERSION=3.5.2
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-        - CXXFLAGS=-lc++
-        - LD_LIBRARY_PATH=$HOME/clang-$LLVM_VERSION/lib:$LD_LIBRARY_PATH
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
-    - os: linux
-      env:
-        - LLVM_VERSION=3.5.0
-        - LLVM_ARCHIVE_PATH=$HOME/clang+llvm.tar.xz
-        - COMPILER=$HOME/clang-$LLVM_VERSION/bin/clang++
-        - CPPFLAGS="-I $HOME/clang-$LLVM_VERSION/include/c++/v1"
-      before_install:
-       - wget http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz -O $LLVM_ARCHIVE_PATH
-       - mkdir $HOME/clang-$LLVM_VERSION
-       - tar xf $LLVM_ARCHIVE_PATH -C $HOME/clang-$LLVM_VERSION --strip-components 1
-
 #    - os: linux
 #      compiler: gcc
 #      addons: