diff --git a/src/libmemoize/memoize.h b/src/libmemoize/memoize.h
index 17b07446d05006d5c59b3b97e9ab1998d580c0d2..2338c1a726dfa5755d76c41e473c47f32a8d0fab 100644
--- a/src/libmemoize/memoize.h
+++ b/src/libmemoize/memoize.h
@@ -89,7 +89,7 @@ struct memoize_hash_t {
 #include <x86intrin.h>
 #endif //_MSC_VER
 
- ticks getticks(void) {
+ticks getticks(void) {
 
 #ifdef MEMOIZE_HAVE_RDTSC
     /*
diff --git a/src/librchash/README.md b/src/librchash/README.md
index 842f7e311ea6c626bf6e599319cc7d306d8efdf0..7ea4308a907d24c1cdd11d90620112185b3429e1 100644
--- a/src/librchash/README.md
+++ b/src/librchash/README.md
@@ -8,7 +8,7 @@ as simply as they are in Perl or Python, but in C, and then output
 them to JSON format or input using jsmn.
 
 
-Copyright 2020 Robert Izzard.
+Copyright 2021 Robert Izzard.
 
 Please see the file LICENCE for licensing conditions, particularly
 note the attribution clause (2a), requirements for use in commercial
diff --git a/src/librinterpolate/rinterpolate_build_flags.c b/src/librinterpolate/rinterpolate_build_flags.c
index 8fe4be48f1905efbfd9712e7e0acc189e1ff98f9..29cd32fae42d445e073587eace2b75ee9d003c0e 100644
--- a/src/librinterpolate/rinterpolate_build_flags.c
+++ b/src/librinterpolate/rinterpolate_build_flags.c
@@ -16,7 +16,7 @@
 
 /*
  * Macro to convert a macro to a string
- */ 
+ */
 #ifndef Stringify
 #define Stringify(item) "" #item
 #endif
@@ -39,7 +39,7 @@
                    Stringify(macro)) ? "on" : "off" ));
 #endif
 
-void rinterpolate_build_flags(struct rinterpolate_data_t * RESTRICT const rinterpolate_data)
+void rinterpolate_build_flags(struct rinterpolate_data_t * RESTRICT const rinterpolate_data MAYBE_UNUSED)
 {
     Macrotest(RINTERPOLATE_USE_REALLOC);
     Macrotest(RINTERPOLATE_USE_POINTER_ARITHMETIC);
@@ -56,6 +56,8 @@ void rinterpolate_build_flags(struct rinterpolate_data_t * RESTRICT const rinter
 
 #endif
 
+typedef int prevent_ISO_C_warning;
+
 #endif // __HAVE_LIBRINTERPOLATE__
 
 typedef int prevent_ISO_C_warning;
diff --git a/src/librinterpolate/rinterpolate_internal.h b/src/librinterpolate/rinterpolate_internal.h
index 081c72ee6af917ac96e0c35e32b8443b25b7ea8f..30ea183becab3d2e9f18e685799eda7ab3333dca 100644
--- a/src/librinterpolate/rinterpolate_internal.h
+++ b/src/librinterpolate/rinterpolate_internal.h
@@ -34,32 +34,48 @@
 #define More_than(A,B) ((A)>(B))
 #endif
 
+#undef Concat3
+#define Concat3(A,B,C) A##B##C
+
 #ifndef Max
-#define Max(A,B) __extension__                  \
-    ({                                          \
-        const Autotype(A) _a = (A);             \
-        const Autotype(B) _b = (B);             \
-        More_than(_a,_b) ? _a : _b;             \
-    })
+#define Max(A,B) Max_implementation(__COUNTER__,A,B)
+#define Max_implementation(LINE,A,B) __extension__          \
+    ({                                                      \
+        const Autotype(A) Concat3(Max,LINE,a) = (A);        \
+        const Autotype(B) Concat3(Max,LINE,b) = (B);        \
+        More_than(Concat3(Max,LINE,a),Concat3(Max,LINE,b))  \
+            ? (Concat3(Max,LINE,a))                         \
+            : (Concat3(Max,LINE,b));                        \
+            })
 #endif
 
 #ifndef Min
-#define Min(A,B) __extension__                  \
-    ({                                          \
-        const Autotype(A) _a = (A);             \
-        const Autotype(B) _b = (B);             \
-        Less_than(_a,_b) ? _a : _b;             \
-    })
+#define Min(A,B) Min_implementation(__COUNTER__,A,B)
+#define Min_implementation(LINE,A,B) __extension__          \
+    ({                                                      \
+        const Autotype(A) Concat3(Min,LINE,a) = (A);        \
+        const Autotype(B) Concat3(Min,LINE,b) = (B);        \
+        Less_than(Concat3(Min,LINE,a),Concat3(Min,LINE,b))  \
+            ? (Concat3(Min,LINE,a))                         \
+            : (Concat3(Min,LINE,b));                        \
+            })
 #endif
 
+
 #ifndef Force_range
-#define Force_range(A,B,X) __extension__                \
-    ({                                                  \
-        const Autotype(A) _a = (A);                     \
-        const Autotype(B) _b = (B);                     \
-        const Autotype(X) _x = (X);                     \
-        (unlikely(Less_than(_x,_a))) ? _a :             \
-            (unlikely(More_than(_x,_b)) ? _b : _x);     \
+#define Force_range(A,B,X) Force_range_implementation(LINE,A,B,X)
+#define Force_range_implementation(LINE,A,B,X) __extension__            \
+    ({                                                                  \
+        const Autotype(A) Concat3(Force_range,LINE,a) = (A);            \
+        const Autotype(B) Concat3(Force_range,LINE,b) = (B);            \
+        const Autotype(X) Concat3(Force_range,LINE,x) = (X);            \
+        (unlikely(Less_than(Concat3(Force_range,LINE,x),                \
+                            Concat3(Force_range,LINE,a))))              \
+            ? Concat3(Force_range,LINE,a) :                             \
+            (unlikely(More_than(Concat3(Force_range,LINE,x),            \
+                                Concat3(Force_range,LINE,b)))           \
+             ? Concat3(Force_range,LINE,b)                              \
+             : Concat3(Force_range,LINE,x));                            \
     })
 #endif
 
diff --git a/src/perl/modules_targz/Binning-0.03.tar.gz b/src/perl/modules_targz/Binning-0.03.tar.gz
index e91706941e37da728c9838ae956ef4dd0245a924..6c8ef0e2a388a03b7e06fbb5f472feb45d48238d 100644
Binary files a/src/perl/modules_targz/Binning-0.03.tar.gz and b/src/perl/modules_targz/Binning-0.03.tar.gz differ
diff --git a/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz b/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz
index 68a8d2ddde6e55fba514e62f475ef337a6b78372..7adb40446049416b6119c282cb5525cd9e8a8242 100644
Binary files a/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz and b/src/perl/modules_targz/Data-Serializer-RobJSON-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz b/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz
index 771a95e61e5ef274710ee6f0aa2d8ef60f75391b..a72d8625a26ad07677e544ead8101f1bd09211ff 100644
Binary files a/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz and b/src/perl/modules_targz/Hash-RobMerge-0.14.tar.gz differ
diff --git a/src/perl/modules_targz/Histogram-0.01.tar.gz b/src/perl/modules_targz/Histogram-0.01.tar.gz
index 0d628fcf7f8c5767ea8c7b7090d43a4028a24773..3ce7fa33b305f235ba42d3cdb882b0353f39762e 100644
Binary files a/src/perl/modules_targz/Histogram-0.01.tar.gz and b/src/perl/modules_targz/Histogram-0.01.tar.gz differ
diff --git a/src/perl/modules_targz/IMF-0.05.tar.gz b/src/perl/modules_targz/IMF-0.05.tar.gz
index d5b99f0833cfd9666a5f50fb4c08fe3c66632909..40abcfd5a13f3dd1e4efc420c48318d8e36622a6 100644
Binary files a/src/perl/modules_targz/IMF-0.05.tar.gz and b/src/perl/modules_targz/IMF-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/Maths_Double-0.01.tar.gz b/src/perl/modules_targz/Maths_Double-0.01.tar.gz
index 15b02ce0400deaf649c2077531bffb43bbbf02a7..cca90fd8f2d99e89d12a620d369089fc869068d2 100644
Binary files a/src/perl/modules_targz/Maths_Double-0.01.tar.gz and b/src/perl/modules_targz/Maths_Double-0.01.tar.gz differ
diff --git a/src/perl/modules_targz/binary_grid-v2.2.0.tar.gz b/src/perl/modules_targz/binary_grid-v2.2.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..76ee6e2f3678b06ef1b2b8e6f76c072305b5f82d
Binary files /dev/null and b/src/perl/modules_targz/binary_grid-v2.2.0.tar.gz differ
diff --git a/src/perl/modules_targz/binary_stars-0.05.tar.gz b/src/perl/modules_targz/binary_stars-0.05.tar.gz
index 2d6e56f3c1273aeadf86b75f6fbb88603f151efb..6a516a3a7ede99d9e3c23c2457de4c6ae45b4727 100644
Binary files a/src/perl/modules_targz/binary_stars-0.05.tar.gz and b/src/perl/modules_targz/binary_stars-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/cosmology-0.01.tar.gz b/src/perl/modules_targz/cosmology-0.01.tar.gz
index a6a10f151f12338202cd7388e5862575d4f0597e..54041d1a76c156cf71b765f0ddd41b390196b527 100644
Binary files a/src/perl/modules_targz/cosmology-0.01.tar.gz and b/src/perl/modules_targz/cosmology-0.01.tar.gz differ
diff --git a/src/perl/modules_targz/distribution_functions-0.06.tar.gz b/src/perl/modules_targz/distribution_functions-0.06.tar.gz
index ea220ab9710142f97aee89824ecb3a0375f143cc..530d76b0a4198897478353b3a5de9d88598f64ba 100644
Binary files a/src/perl/modules_targz/distribution_functions-0.06.tar.gz and b/src/perl/modules_targz/distribution_functions-0.06.tar.gz differ
diff --git a/src/perl/modules_targz/rinterpolate-1.5.tar.gz b/src/perl/modules_targz/rinterpolate-1.5.tar.gz
index 7244fa2fc84e5e1b6b0285e1d54e734203477c05..c2ec63afca53eebb39fd412b8c5d79bf3c0e42fa 100644
Binary files a/src/perl/modules_targz/rinterpolate-1.5.tar.gz and b/src/perl/modules_targz/rinterpolate-1.5.tar.gz differ
diff --git a/src/perl/modules_targz/rob_misc-0.17.tar.gz b/src/perl/modules_targz/rob_misc-0.17.tar.gz
index d84844d8746cd33b655111dfe0c4592c87722897..19e3830cb521f2ee0097dd2a5158e2fb1e04cd5c 100644
Binary files a/src/perl/modules_targz/rob_misc-0.17.tar.gz and b/src/perl/modules_targz/rob_misc-0.17.tar.gz differ
diff --git a/src/perl/modules_targz/robqueue-0.05.tar.gz b/src/perl/modules_targz/robqueue-0.05.tar.gz
index 66b173f758b6fd55a0bd3b54bb9b7c59f4522988..5845b076ce4433b9814e5e3af88662f47c8c0d9b 100644
Binary files a/src/perl/modules_targz/robqueue-0.05.tar.gz and b/src/perl/modules_targz/robqueue-0.05.tar.gz differ
diff --git a/src/perl/modules_targz/spacing_functions-0.02.tar.gz b/src/perl/modules_targz/spacing_functions-0.02.tar.gz
index 8d984a19f902c0b39d72d33404de738a9b734a88..baca3e9858009ed3623fbc448cc5f24e4d034414 100644
Binary files a/src/perl/modules_targz/spacing_functions-0.02.tar.gz and b/src/perl/modules_targz/spacing_functions-0.02.tar.gz differ