* 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 $
* ------------------------------------------------------------------------*/
/* --------------------------------------------------------------------------
extern Void liftControl ( Int );
extern Void substitution ( Int );
extern Void typeChecker ( Int );
-extern Void interface ( Int );
+extern Void interfayce ( Int );
extern Void storage ( Int );
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 */
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
*-------------------------------------------------------------------------*/
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); \
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
* 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;
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* );