Description: Make the preprocessor reproducible.
Forwarded: yes, will appear in next release.
Author: Filip Strömbäck <filip@fprg.se>
--- a/CppTypes/Main.cpp
+++ b/CppTypes/Main.cpp
@@ -9,6 +9,7 @@
 
 void findHeaders(const Path &in, vector<Path> &out) {
 	vector<Path> c = in.children();
+	std::sort(c.begin(), c.end());
 	for (nat i = 0; i < c.size(); i++) {
 		if (c[i].isDir()) {
 			findHeaders(c[i], out);
@@ -28,6 +29,7 @@
 
 void findLicenses(const Path &in, vector<Path> &out) {
 	vector<Path> c = in.children();
+	std::sort(c.begin(), c.end());
 	for (nat i = 0; i < c.size(); i++) {
 		if (c[i].isDir()) {
 			findLicenses(c[i], out);
@@ -47,6 +49,7 @@
 
 void findVersions(const Path &in, vector<Path> &out) {
 	vector<Path> c = in.children();
+	std::sort(c.begin(), c.end());
 	for (nat i = 0; i < c.size(); i++) {
 		if (c[i].isDir()) {
 			findVersions(c[i], out);
--- a/CppTypes/World.cpp
+++ b/CppTypes/World.cpp
@@ -102,7 +102,7 @@
 		}
 	};
 
-	sort(functions.begin(), functions.end(), pred());
+	stable_sort(functions.begin(), functions.end(), pred());
 }
 
 void World::orderTemplates() {
