#elif defined(__INTEL_COMPILER)
#define FACTOR_COMPILER_VERSION \
"Intel C Compiler " FACTOR_STRINGIZE(__INTEL_COMPILER)
+#elif defined(__MINGW32__)
+#define FACTOR_COMPILER_VERSION "MinGW (GCC " __VERSION__ ")"
#elif defined(__GNUC__)
#define FACTOR_COMPILER_VERSION "GCC " __VERSION__
#elif defined(_MSC_FULL_VER)
#define FACTOR_COMPILER_VERSION "unknown"
#endif
-// Record compilation time
-#define FACTOR_COMPILE_TIME __TIMESTAMP__
+#if defined(FACTOR_REPRODUCIBLE)
+ #define FACTOR_COMPILE_TIME "[reproducible]"
+#else
+ // Record compilation time
+ #define FACTOR_COMPILE_TIME __DATE__ " " __TIME__
+#endif
// Detect target CPU type
#if defined(__arm__)
#define FACTOR_ARM
+#elif defined(__aarch64__)
+#define FACTOR_ARM64
+#define FACTOR_64
#elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
#define FACTOR_AMD64
#define FACTOR_64
#error "Unsupported architecture"
#endif
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) || defined (__MINGW32__)
#define WINDOWS
#define WINNT
#elif defined(WIN32)
#include "generic_arrays.hpp"
#include "callstack.hpp"
#include "slot_visitor.hpp"
-#include "collector.hpp"
#include "to_tenured_collector.hpp"
#include "arrays.hpp"
#include "math.hpp"