[project @ 2000-07-06 16:31:45 by simonpj]
[ghc-hetmet.git] / ghc / interpreter / connect.h
index 3fe4658..a93a265 100644 (file)
@@ -9,8 +9,8 @@
  * included in the distribution.
  *
  * $RCSfile: connect.h,v $
- * $Revision: 1.39 $
- * $Date: 2000/04/25 17:43:49 $
+ * $Revision: 1.44 $
+ * $Date: 2000/06/28 10:42:17 $
  * ------------------------------------------------------------------------*/
 
 /* --------------------------------------------------------------------------
@@ -362,7 +362,7 @@ extern  Void   machdep          ( Int );
 extern  Void   liftControl      ( Int );
 extern  Void   substitution     ( Int );
 extern  Void   typeChecker      ( Int );
-extern  Void   interface        ( Int );
+extern  Void   interfayce       ( Int );
 extern  Void   storage          ( Int );
 
 
@@ -451,6 +451,7 @@ extern  Void  foreignImport     ( Cell,Text,Pair,Cell,Cell );
 extern  Void  foreignExport     ( Cell,Text,Cell,Cell,Cell );
 
 extern  Void  implementForeignImport ( Name );
+extern  Text  makeTypeDescrText      ( Type );
 extern  Void  implementForeignExport ( Name );
 
 extern  List  foreignExports;            /* foreign export declarations     */
@@ -526,20 +527,6 @@ extern FILE *outputStream;             /* current output stream            */
 extern Int  outColumn;                 /* current output column number     */
 
 
-
-/*---------------------------------------------------------------------------
- * Crude profiling (probably doesn't work)
- *-------------------------------------------------------------------------*/
-
-#ifdef CRUDE_PROFILING
-extern void cp_init             ( void );
-extern void cp_enter            ( Cell /*StgVar*/ );
-extern void cp_bill_words       ( int );
-extern void cp_bill_insns       ( int );
-extern void cp_show             ( void );
-#endif
-
-
 /*---------------------------------------------------------------------------
  * For dynamic.c and general object-related stuff
  *-------------------------------------------------------------------------*/
@@ -579,6 +566,9 @@ extern HugsBreakAction setBreakAction ( HugsBreakAction );
    to get the signal mask to a sane state each time.
 */
 #include <signal.h>
+
+#if !defined(mingw32_TARGET_OS)
+
 #define setHandler(bh)          { sigset_t mask; \
                           signal(SIGINT,bh); \
                           sigemptyset(&mask); \
@@ -586,6 +576,13 @@ extern HugsBreakAction setBreakAction ( HugsBreakAction );
                           sigprocmask(SIG_UNBLOCK, &mask, NULL); \
                         }
 
+#else
+
+#define setHandler(bh)  { void* old_hdlr = signal(SIGINT,bh);\
+                          if (old_hdlr == SIG_ERR) internal("setHandler"); \
+                         }
+
+#endif /* !defined(mingw32_TARGET_OS) */
 
 /*---------------------------------------------------------------------------
  * Environment variables and the registry
@@ -788,7 +785,6 @@ extern Command readCommand      ( struct cmd *, Char, Char );
  * Freevar analysis: list of free vars after
  * Lambda lifting:   freevar list or UNIT on input, discarded after
  * Code generation:  unused
- * Optimisation:     number of uses (sort-of) of let-bound variable
  * ------------------------------------------------------------------------*/
 
 typedef Cell   StgRhs;
@@ -886,16 +882,12 @@ extern  Name  implementRecShw        ( Text );
 extern  Name  implementRecEq         ( Text );
 #endif
 
-/* Association list storing globals assigned to dictionaries, tuples, etc */
-extern List stgGlobals;
-
-extern List    liftBinds        ( List binds );
+extern void    liftModule       ( Module );
 extern StgExpr substExpr        ( List sub, StgExpr e );
 extern List    freeVarsBind     ( List, StgVar );
 
 
-extern Void    cgBinds          ( StgRhs );
-extern void*   closureOfVar     ( StgVar );
+extern Void    cgModule         ( Module );
 extern char*   lookupHugsName   ( void* );