[project @ 2003-09-24 11:06:51 by simonmar]
[ghc-hetmet.git] / ghc / includes / Stg.h
index b515e21..ff38173 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: Stg.h,v 1.50 2002/12/11 15:36:39 simonmar Exp $
+ * $Id: Stg.h,v 1.56 2003/09/21 13:22:01 igloo Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
 /* Configuration */
 #include "config.h"
 
+/* This needs to be up near the top as the register line on alpha needs
+ * to be before all procedures */
+#include "TailCalls.h"
+
 #if __GNUC__ >= 3
 /* Assume that a flexible array member at the end of a struct
  * can be defined thus: T arr[]; */
@@ -78,9 +82,6 @@
 #  define LAZY_BLACKHOLING
 #endif
 
-/* ToDo: remove */
-#define COMPILER 1
-
 /* TABLES_NEXT_TO_CODE says whether to assume that info tables are
  * assumed to reside just before the code for a function.
  *
@@ -186,12 +187,18 @@ typedef StgWord64       LW_;
 #include "SMP.h"
 #include "MachRegs.h"
 #include "Regs.h"
-#include "TailCalls.h"
 #include "Block.h"
 
 /* RTS public interface */
 #include "RtsAPI.h"
 
+/* System headers: stdlib.h is eeded so that we can use NULL.  It must
+ * come after MachRegs.h, because stdlib.h might define some inline
+ * functions which may only be defined after register variables have
+ * been declared.
+ */
+#include <stdlib.h>
+
 #ifdef SMP
 #include <pthread.h>
 #endif
@@ -225,9 +232,14 @@ typedef StgWord64       LW_;
 /* Misc stuff without a home */
 DLL_IMPORT_RTS extern char **prog_argv;        /* so we can get at these from Haskell */
 DLL_IMPORT_RTS extern int    prog_argc;
+DLL_IMPORT_RTS extern char  *prog_name;
 
 extern void stackOverflow(void);
 
+#if defined(WANT_DOTNET_SUPPORT)
+#include "DNInvoke.h"
+#endif
+
 /* Creating and destroying an adjustor thunk.
    I cannot make myself create a separate .h file
    for these two (sof.)