#endif
#include "Stg.h"
+// Turn off inlining when debugging - it obfuscates things
+#ifdef DEBUG
+# undef STATIC_INLINE
+# define STATIC_INLINE static
+#endif
+
#include "RtsTypes.h"
#if __GNUC__ >= 3
#define __MSVCRT__ 1
#endif
+/* Needed to get the macro version of errno on some OSs, and also to
+ get prototypes for the _r versions of C library functions. */
+#define _REENTRANT 1
+
/*
* We often want to know the size of something in units of an
* StgWord... (rounded up, of course!)
#define ASSERT(predicate) /* nothing */
#else
-extern void _assertFail (char *, unsigned int);
+extern void _assertFail (const char *, unsigned int);
#define ASSERT(predicate) \
if (predicate) \
#define USED_IF_NOT_THREADS
#endif
+/*
+ * Getting printf formats right for platform-dependent typedefs
+ */
+#if SIZEOF_LONG == 8
+#define FMT_Word64 "lu"
+#define FMT_Int64 "ld"
+#else
+#define FMT_Word64 "llu"
+#define FMT_Int64 "lld"
+#endif
+
/* -----------------------------------------------------------------------------
Include everything STG-ish
-------------------------------------------------------------------------- */
#include "OSThreads.h"
#include "SMP.h"
-/* STG/Optimised-C related stuff */
-#include "Block.h"
-
/* GNU mp library */
#include "gmp.h"
/* Macros for STG/C code */
+#include "Block.h"
#include "ClosureMacros.h"
#include "StgTicky.h"
-#include "Stable.h"
/* Runtime-system hooks */
#include "Hooks.h"
#include "RtsMessages.h"
+/* for StablePtr/getStablePtr/deRefStablePtr */
+#include "Storage.h"
+#include "Stable.h"
+
#include "ieee-flpt.h"
#include "Signals.h"