Commit 0d5d32bf authored by simonmar's avatar simonmar

[project @ 2000-03-13 10:53:55 by simonmar]

Move Prelude.h from ghc/includes into ghc/rts.  It's essentially a
list of the things from the Prelude that the RTS depends on, and isn't
relevant to STG code.  Furthermore, this helps to clarify which parts
of the RTS depend on things from the Prelude (by an explicity
#include).
parent 53f56234
/* -----------------------------------------------------------------------------
* $Id: Stg.h,v 1.22 2000/01/13 14:34:01 hwloidl Exp $
* $Id: Stg.h,v 1.23 2000/03/13 10:53:55 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
......@@ -156,9 +156,6 @@ void _stgAssert (char *, unsigned int);
/* GNU mp library */
#include "gmp.h"
/* Wired-in Prelude identifiers */
#include "Prelude.h"
/* Storage Manager */
#include "StgStorage.h"
......
/* -----------------------------------------------------------------------------
* $Id: Main.c,v 1.16 2000/01/14 13:38:54 simonmar Exp $
* $Id: Main.c,v 1.17 2000/03/13 10:53:55 simonmar Exp $
*
* (c) The GHC Team 1998-1999
*
......@@ -14,6 +14,7 @@
#include "SchedAPI.h"
#include "RtsFlags.h"
#include "RtsUtils.h"
#include "Prelude.h"
#ifdef DEBUG
# include "Printer.h" /* for printing */
......
/* -----------------------------------------------------------------------------
* $Id: Prelude.h,v 1.1 2000/03/13 10:53:56 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
* Prelude identifiers that we sometimes need to refer to in the RTS.
*
* ---------------------------------------------------------------------------*/
#ifndef PRELUDE_H
#define PRELUDE_H
#ifdef COMPILING_RTS
#ifdef COMPILER
extern DLL_IMPORT const StgClosure PrelBase_Z91Z93_static_closure;
extern DLL_IMPORT const StgClosure PrelBase_Z40Z41_static_closure;
extern DLL_IMPORT const StgClosure PrelBase_True_static_closure;
extern DLL_IMPORT const StgClosure PrelBase_False_static_closure;
extern DLL_IMPORT const StgClosure PrelPack_unpackCString_closure;
extern DLL_IMPORT const StgClosure PrelException_stackOverflow_closure;
extern DLL_IMPORT const StgClosure PrelException_heapOverflow_closure;
extern DLL_IMPORT const StgClosure PrelException_PutFullMVar_static_closure;
extern DLL_IMPORT const StgClosure PrelException_NonTermination_static_closure;
extern const StgClosure PrelMain_mainIO_closure;
extern DLL_IMPORT const StgInfoTable PrelBase_Czh_static_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Izh_static_info;
extern DLL_IMPORT const StgInfoTable PrelFloat_Fzh_static_info;
extern DLL_IMPORT const StgInfoTable PrelFloat_Dzh_static_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Azh_static_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Wzh_static_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Czh_con_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Izh_con_info;
extern DLL_IMPORT const StgInfoTable PrelFloat_Fzh_con_info;
extern DLL_IMPORT const StgInfoTable PrelFloat_Dzh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Azh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Wzh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_I64zh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_W64zh_con_info;
extern DLL_IMPORT const StgInfoTable PrelStable_StablePtr_static_info;
extern DLL_IMPORT const StgInfoTable PrelStable_StablePtr_con_info;
/* Define canonical names so we can abstract away from the actual
* module these names are defined in.
*/
#define Nil_closure PrelBase_ZMZN_static_closure
#define Unit_closure PrelBase_Z0T_static_closure
#define True_closure PrelBase_True_static_closure
#define False_closure PrelBase_False_static_closure
#define stackOverflow_closure PrelException_stackOverflow_closure
#define heapOverflow_closure PrelException_heapOverflow_closure
#define PutFullMVar_closure PrelException_PutFullMVar_static_closure
#define NonTermination_closure PrelException_NonTermination_static_closure
#define Czh_static_info PrelBase_Czh_static_info
#define Izh_static_info PrelBase_Izh_static_info
#define Fzh_static_info PrelFloat_Fzh_static_info
#define Dzh_static_info PrelFloat_Dzh_static_info
#define Azh_static_info PrelAddr_Azh_static_info
#define Wzh_static_info PrelAddr_Wzh_static_info
#define Czh_con_info PrelBase_Czh_con_info
#define Izh_con_info PrelBase_Izh_con_info
#define Fzh_con_info PrelFloat_Fzh_con_info
#define Dzh_con_info PrelFloat_Dzh_con_info
#define Azh_con_info PrelAddr_Azh_con_info
#define Wzh_con_info PrelAddr_Wzh_con_info
#define W64zh_con_info PrelAddr_W64zh_con_info
#define I64zh_con_info PrelAddr_I64zh_con_info
#define StablePtr_static_info PrelStable_StablePtr_static_info
#define StablePtr_con_info PrelStable_StablePtr_con_info
#define mainIO_closure PrelMain_mainIO_closure
#define unpackCString_closure PrelPack_unpackCString_closure
#else /* INTERPRETER, I guess */
extern const StgInfoTable Czh_con_info;
extern const StgInfoTable Izh_con_info;
extern const StgInfoTable I64zh_con_info;
extern const StgInfoTable Fzh_con_info;
extern const StgInfoTable Dzh_con_info;
extern const StgInfoTable Azh_con_info;
extern const StgInfoTable Wzh_con_info;
extern const StgInfoTable StablePtr_con_info;
extern const StgInfoTable Czh_static_info;
extern const StgInfoTable Izh_static_info;
extern const StgInfoTable I64zh_static_info;
extern const StgInfoTable Fzh_static_info;
extern const StgInfoTable Dzh_static_info;
extern const StgInfoTable Azh_static_info;
extern const StgInfoTable Wzh_static_info;
extern const StgInfoTable StablePtr_static_info;
#define W64zh_con_info I64zh_con_info
#define W64zh_static_info I64zh_con_info
#endif
#endif /* COMPILING_RTS */
#endif /* PRELUDE_H */
/* -----------------------------------------------------------------------------
* $Id: PrimOps.hc,v 1.43 2000/02/28 13:59:43 simonmar Exp $
* $Id: PrimOps.hc,v 1.44 2000/03/13 10:53:56 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
......@@ -19,6 +19,7 @@
#include "StablePriv.h"
#include "HeapStackCheck.h"
#include "StgRun.h"
#include "Prelude.h"
/* ** temporary **
......@@ -903,7 +904,8 @@ FN_(putMVarzh_fast)
#endif
if (info == &FULL_MVAR_info) {
barf("putMVar#: MVar already full");
R1.cl = (StgClosure *)&PutFullMVar_closure;
JMP_(raisezh_fast);
}
mvar->value = R2.cl;
......
/* ----------------------------------------------------------------------------
* $Id: RtsAPI.c,v 1.10 1999/11/02 15:05:59 simonmar Exp $
* $Id: RtsAPI.c,v 1.11 2000/03/13 10:53:56 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
......@@ -13,6 +13,7 @@
#include "SchedAPI.h"
#include "RtsFlags.h"
#include "RtsUtils.h"
#include "Prelude.h"
/* ----------------------------------------------------------------------------
Building Haskell objects from C datatypes.
......
/* ---------------------------------------------------------------------------
* $Id: Schedule.c,v 1.50 2000/03/13 09:57:16 simonmar Exp $
* $Id: Schedule.c,v 1.51 2000/03/13 10:53:56 simonmar Exp $
*
* (c) The GHC Team, 1998-2000
*
......@@ -72,6 +72,7 @@
#include "Sanity.h"
#include "Stats.h"
#include "Sparks.h"
#include "Prelude.h"
#if defined(GRAN) || defined(PAR)
# include "GranSimRts.h"
# include "GranSim.h"
......
/* -----------------------------------------------------------------------------
* $Id: StgMiscClosures.hc,v 1.36 2000/03/01 16:57:57 sewardj Exp $
* $Id: StgMiscClosures.hc,v 1.37 2000/03/13 10:53:55 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
......@@ -15,6 +15,7 @@
#include "Storage.h"
#include "StoragePriv.h"
#include "ProfRts.h"
#include "Prelude.h"
#include "SMP.h"
#if defined(GRAN) || defined(PAR)
# include "GranSimRts.h" /* for DumpRawGranEvent */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment