Commit 50027272 authored by simonmar's avatar simonmar

[project @ 2001-03-23 16:36:20 by simonmar]

Changes to support bootstrapping the compiler from .hc files.  It's
not quite working yet, but it's not far off.

  - the biggest change is that any injected #includes are now placed in
    the .hc file at generation time, rather than compilation time.  I
    can't see any reason not to do this - it makes it clear by looking at
    the .hc file which files are being #included, it means one less
    temporary file at compilation time, and it means the .hc file is more
    standalone.

  - all the gruesomeness is in mk/bootstrap.mk, which handles building
    .hc files without a ghc driver.
parent 4f4e61a3
...@@ -9,12 +9,6 @@ ...@@ -9,12 +9,6 @@
TOP=. TOP=.
include $(TOP)/mk/boilerplate.mk include $(TOP)/mk/boilerplate.mk
#
# Totally evil hack to make the setting of SUBDIRS be dependent
# on whether we do `make install' or not. Having a $(ifeq ... ) would
# be preferable..
CURRENT_TARGET = $(MAKECMDGOALS)
# find the projects that actually exist... # find the projects that actually exist...
SUBDIRS = $(filter $(patsubst %/, %, $(wildcard */)), $(AllProjects)) SUBDIRS = $(filter $(patsubst %/, %, $(wildcard */)), $(AllProjects))
...@@ -29,6 +23,10 @@ ifneq "$(Project)" "" ...@@ -29,6 +23,10 @@ ifneq "$(Project)" ""
include $(shell echo $(Project) | tr A-Z a-z)/mk/config.mk include $(shell echo $(Project) | tr A-Z a-z)/mk/config.mk
endif endif
# -----------------------------------------------------------------------------
# Certain targets require that Project is set from the command line.
CURRENT_TARGET = $(MAKECMDGOALS)
project-check : project-check :
@if [ "$(Project)" = "" ]; then \ @if [ "$(Project)" = "" ]; then \
echo " You need to set \"Project\" in order to make $(CURRENT_TARGET)"; \ echo " You need to set \"Project\" in order to make $(CURRENT_TARGET)"; \
......
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# $Id: Makefile,v 1.14 2000/11/06 13:14:52 simonmar Exp $ # $Id: Makefile,v 1.15 2001/03/23 16:36:20 simonmar Exp $
# #
TOP=. TOP=.
...@@ -20,10 +20,10 @@ include $(TOP)/mk/boilerplate.mk ...@@ -20,10 +20,10 @@ include $(TOP)/mk/boilerplate.mk
# If we're booting from .hc files, swap the order # If we're booting from .hc files, swap the order
# we descend into compiler/ and lib/ # we descend into compiler/ and lib/
# #
ifeq "$(GhcWithHscBuiltViaC)" "NO" ifeq "$(BootingFromHc)" "YES"
SUBDIRS = includes utils driver docs compiler rts lib SUBDIRS = includes driver rts docs lib compiler
else else
SUBDIRS = includes utils driver rts docs lib compiler SUBDIRS = includes utils driver docs compiler rts lib
endif endif
# Easier to copy # Easier to copy
......
...@@ -20,6 +20,7 @@ import IlxGen ( ilxGen ) ...@@ -20,6 +20,7 @@ import IlxGen ( ilxGen )
import JavaGen ( javaGen ) import JavaGen ( javaGen )
import qualified PrintJava import qualified PrintJava
import DriverState ( v_HCHeader )
import TyCon ( TyCon ) import TyCon ( TyCon )
import Id ( Id ) import Id ( Id )
import CoreSyn ( CoreBind ) import CoreSyn ( CoreBind )
...@@ -34,8 +35,8 @@ import Outputable ...@@ -34,8 +35,8 @@ import Outputable
import CmdLineOpts ( DynFlags, HscLang(..), dopt_OutName ) import CmdLineOpts ( DynFlags, HscLang(..), dopt_OutName )
import TmpFiles ( newTempName ) import TmpFiles ( newTempName )
import IO ( IOMode(..), hClose, openFile, Handle ) import IOExts
import IO ( hPutStr, stderr) -- Debugging import IO
\end{code} \end{code}
...@@ -99,7 +100,10 @@ doOutput filenm io_action ...@@ -99,7 +100,10 @@ doOutput filenm io_action
\begin{code} \begin{code}
outputC dflags filenm flat_absC outputC dflags filenm flat_absC
= do dumpIfSet_dyn dflags Opt_D_dump_realC "Real C" (dumpRealC flat_absC) = do dumpIfSet_dyn dflags Opt_D_dump_realC "Real C" (dumpRealC flat_absC)
doOutput filenm (\ h -> writeRealC h flat_absC) header <- readIORef v_HCHeader
doOutput filenm $ \ h -> do
hPutStr h header
writeRealC h flat_absC
\end{code} \end{code}
......
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- $Id: DriverPipeline.hs,v 1.56 2001/03/22 03:51:08 hwloidl Exp $ -- $Id: DriverPipeline.hs,v 1.57 2001/03/23 16:36:20 simonmar Exp $
-- --
-- GHC Driver -- GHC Driver
-- --
...@@ -322,12 +322,7 @@ run_phase Unlit _basename _suff input_fn output_fn ...@@ -322,12 +322,7 @@ run_phase Unlit _basename _suff input_fn output_fn
run_phase Cpp basename suff input_fn output_fn run_phase Cpp basename suff input_fn output_fn
= do src_opts <- getOptionsFromSource input_fn = do src_opts <- getOptionsFromSource input_fn
unhandled_flags <- processArgs dynamic_flags src_opts [] unhandled_flags <- processArgs dynamic_flags src_opts []
checkProcessArgsResult unhandled_flags basename suff
when (not (null unhandled_flags))
(throwDyn (OtherError (
basename ++ "." ++ suff
++ ": static flags are not allowed in {-# OPTIONS #-} pragmas:\n\t"
++ unwords unhandled_flags)) (ExitFailure 1))
do_cpp <- dynFlag cppFlag do_cpp <- dynFlag cppFlag
if do_cpp if do_cpp
...@@ -443,6 +438,20 @@ run_phase Hsc basename suff input_fn output_fn ...@@ -443,6 +438,20 @@ run_phase Hsc basename suff input_fn output_fn
Nothing -> basename ++ '.':hisuf Nothing -> basename ++ '.':hisuf
Just fn -> fn Just fn -> fn
-- figure out which header files to #include in a generated .hc file
c_includes <- getPackageCIncludes
cmdline_includes <- dynFlag cmdlineHcIncludes -- -#include options
let cc_injects = unlines (map mk_include
(c_includes ++ reverse cmdline_includes))
mk_include h_file =
case h_file of
'"':_{-"-} -> "#include "++h_file
'<':_ -> "#include "++h_file
_ -> "#include \""++h_file++"\""
writeIORef v_HCHeader cc_injects
-- figure out if the source has changed, for recompilation avoidance. -- figure out if the source has changed, for recompilation avoidance.
-- only do this if we're eventually going to generate a .o file. -- only do this if we're eventually going to generate a .o file.
-- (ToDo: do when generating .hc files too?) -- (ToDo: do when generating .hc files too?)
...@@ -519,7 +528,7 @@ run_phase Hsc basename suff input_fn output_fn ...@@ -519,7 +528,7 @@ run_phase Hsc basename suff input_fn output_fn
-- we don't support preprocessing .c files (with -E) now. Doing so introduces -- we don't support preprocessing .c files (with -E) now. Doing so introduces
-- way too many hacks, and I can't say I've ever used it anyway. -- way too many hacks, and I can't say I've ever used it anyway.
run_phase cc_phase _basename _suff input_fn output_fn run_phase cc_phase basename suff input_fn output_fn
| cc_phase == Cc || cc_phase == HCc | cc_phase == Cc || cc_phase == HCc
= do cc <- readIORef v_Pgm_c = do cc <- readIORef v_Pgm_c
cc_opts <- (getOpts opt_c) cc_opts <- (getOpts opt_c)
...@@ -534,26 +543,6 @@ run_phase cc_phase _basename _suff input_fn output_fn ...@@ -534,26 +543,6 @@ run_phase cc_phase _basename _suff input_fn output_fn
let include_paths = map (\p -> "-I"++p) (cmdline_include_dirs let include_paths = map (\p -> "-I"++p) (cmdline_include_dirs
++ pkg_include_dirs) ++ pkg_include_dirs)
c_includes <- getPackageCIncludes
cmdline_includes <- dynFlag cmdlineHcIncludes -- -#include options
let cc_injects | hcc = unlines (map mk_include
(c_includes ++ reverse cmdline_includes))
| otherwise = ""
mk_include h_file =
case h_file of
'"':_{-"-} -> "#include "++h_file
'<':_ -> "#include "++h_file
_ -> "#include \""++h_file++"\""
cc_help <- newTempName "c"
h <- openFile cc_help WriteMode
hPutStr h cc_injects
hPutStrLn h ("#include \"" ++ input_fn ++ "\"\n")
hClose h
ccout <- newTempName "ccout"
mangle <- readIORef v_Do_asm_mangling mangle <- readIORef v_Do_asm_mangling
(md_c_flags, md_regd_c_flags) <- machdepCCOpts (md_c_flags, md_regd_c_flags) <- machdepCCOpts
...@@ -572,7 +561,7 @@ run_phase cc_phase _basename _suff input_fn output_fn ...@@ -572,7 +561,7 @@ run_phase cc_phase _basename _suff input_fn output_fn
excessPrecision <- readIORef v_Excess_precision excessPrecision <- readIORef v_Excess_precision
runSomething "C Compiler" runSomething "C Compiler"
(unwords ([ cc, "-x", "c", cc_help, "-o", output_fn ] (unwords ([ cc, "-x", "c", input_fn, "-o", output_fn ]
++ md_c_flags ++ md_c_flags
++ (if cc_phase == HCc && mangle ++ (if cc_phase == HCc && mangle
then md_regd_c_flags then md_regd_c_flags
...@@ -584,7 +573,6 @@ run_phase cc_phase _basename _suff input_fn output_fn ...@@ -584,7 +573,6 @@ run_phase cc_phase _basename _suff input_fn output_fn
++ (if excessPrecision then [] else [ "-ffloat-store" ]) ++ (if excessPrecision then [] else [ "-ffloat-store" ])
++ include_paths ++ include_paths
++ pkg_extra_cc_opts ++ pkg_extra_cc_opts
-- ++ [">", ccout]
)) ))
return True return True
...@@ -764,6 +752,15 @@ mk_pvm_wrapper_script pvm_executable pvm_executable_base sysMan = unlines $ ...@@ -764,6 +752,15 @@ mk_pvm_wrapper_script pvm_executable pvm_executable_base sysMan = unlines $
"exit($return_val);" "exit($return_val);"
] ]
-----------------------------------------------------------------------------
-- Complain about non-dynamic flags in OPTIONS pragmas
checkProcessArgsResult flags basename suff
= do when (not (null flags)) (throwDyn (OtherError (
basename ++ "." ++ suff
++ ": static flags are not allowed in {-# OPTIONS #-} pragmas:\n\t"
++ unwords flags)) (ExitFailure 1))
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Linking -- Linking
......
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- $Id: DriverState.hs,v 1.34 2001/03/22 03:51:08 hwloidl Exp $ -- $Id: DriverState.hs,v 1.35 2001/03/23 16:36:20 simonmar Exp $
-- --
-- Settings for the driver -- Settings for the driver
-- --
...@@ -322,6 +322,8 @@ addToDirList ref path ...@@ -322,6 +322,8 @@ addToDirList ref path
= do paths <- readIORef ref = do paths <- readIORef ref
writeIORef ref (paths ++ split split_marker path) writeIORef ref (paths ++ split split_marker path)
GLOBAL_VAR(v_HCHeader, "", String)
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- Packages -- Packages
......
...@@ -30,7 +30,7 @@ import Directory ...@@ -30,7 +30,7 @@ import Directory
import List import List
import IO import IO
import Monad import Monad
import Outputable ( showSDoc, ppr ) -- debugging only import Outputable
\end{code} \end{code}
The Finder provides a thin filesystem abstraction to the rest of the The Finder provides a thin filesystem abstraction to the rest of the
...@@ -211,5 +211,5 @@ getDirectoryContents' d ...@@ -211,5 +211,5 @@ getDirectoryContents' d
("WARNING: error while reading directory " ++ d) ("WARNING: error while reading directory " ++ d)
return [] return []
) )
\end{code} \end{code}
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# $Id: Makefile,v 1.2 2000/11/03 16:54:52 simonmar Exp $ # $Id: Makefile,v 1.3 2001/03/23 16:36:21 simonmar Exp $
TOP=../.. TOP=../..
include $(TOP)/mk/boilerplate.mk include $(TOP)/mk/boilerplate.mk
...@@ -14,4 +14,9 @@ INSTALL_LIBEXEC_SCRIPTS += $(SCRIPT_PROG) ...@@ -14,4 +14,9 @@ INSTALL_LIBEXEC_SCRIPTS += $(SCRIPT_PROG)
CLEAN_FILES += $(SCRIPT_OBJS) CLEAN_FILES += $(SCRIPT_OBJS)
# needed for bootstrapping with HC files
ifeq "$(BootingFromHc)" "YES"
boot :: all
endif
include $(TOP)/mk/target.mk include $(TOP)/mk/target.mk
...@@ -22,8 +22,7 @@ endif ...@@ -22,8 +22,7 @@ endif
# Setting the standard variables # Setting the standard variables
# #
HC = $(GHC_INPLACE) HC = $(GHC_INPLACE)
CC = $(GHC_INPLACE)
ifneq "$(DLLized)" "YES" ifneq "$(DLLized)" "YES"
PACKAGE = -package-name std PACKAGE = -package-name std
...@@ -72,8 +71,12 @@ PrelPrimopWrappers.hs: ../../compiler/prelude/primops.txt ...@@ -72,8 +71,12 @@ PrelPrimopWrappers.hs: ../../compiler/prelude/primops.txt
PrelGHC.$(way_)hi : PrelGHC.hi-boot PrelGHC.$(way_)hi : PrelGHC.hi-boot
cp $< $@ cp $< $@
boot :: PrelPrimopWrappers.hs PrelGHC.hi $(foreach way, $(WAYS), PrelGHC.$(way)_hi) boot :: PrelGHC.hi $(foreach way, $(WAYS), PrelGHC.$(way)_hi)
all :: PrelPrimopWrappers.hs
ifneq "$(BootingFromHc)" "YES"
boot :: PrelPrimopWrappers.hs
all :: PrelPrimopWrappers.hs
endif
DLL_DESCRIPTION="GHC-compiled Haskell Prelude" DLL_DESCRIPTION="GHC-compiled Haskell Prelude"
......
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# $Id: paths.mk,v 1.29 2001/03/05 10:29:00 simonmar Exp $ # $Id: paths.mk,v 1.30 2001/03/23 16:36:22 simonmar Exp $
# #
# ghc project specific make variables # ghc project specific make variables
# #
...@@ -35,15 +35,3 @@ GHC_SPLIT = $(GHC_SPLIT_DIR)/ghc-split ...@@ -35,15 +35,3 @@ GHC_SPLIT = $(GHC_SPLIT_DIR)/ghc-split
GHC_SYSMAN = $(GHC_RUNTIME_DIR)/parallel/SysMan GHC_SYSMAN = $(GHC_RUNTIME_DIR)/parallel/SysMan
GHC_SYSMAN_DIR = $(GHC_RUNTIME_DIR)/parallel GHC_SYSMAN_DIR = $(GHC_RUNTIME_DIR)/parallel
#-----------------------------------------------------------------------------
# Stuff for the C-compiling phase in particular...
#
# There's no need to compute dependencies when booting from .hc files
#
ifneq "$(GhcWithHscBuiltViaC)" "YES"
MKDEPENDHS_SRCS = $(HS_SRCS)
else
MKDEPENDHS_SRCS =
endif
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* $Id: Exception.hc,v 1.19 2001/03/22 03:51:10 hwloidl Exp $ * $Id: Exception.hc,v 1.20 2001/03/23 16:36:21 simonmar Exp $
* *
* (c) The GHC Team, 1998-2000 * (c) The GHC Team, 1998-2000
* *
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* *
* ---------------------------------------------------------------------------*/ * ---------------------------------------------------------------------------*/
#include "Stg.h"
#include "Rts.h" #include "Rts.h"
#include "Exception.h" #include "Exception.h"
#include "Schedule.h" #include "Schedule.h"
......
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* $Id: HeapStackCheck.hc,v 1.15 2000/12/14 15:19:48 sewardj Exp $ * $Id: HeapStackCheck.hc,v 1.16 2001/03/23 16:36:21 simonmar Exp $
* *
* (c) The GHC Team, 1998-1999 * (c) The GHC Team, 1998-1999
* *
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* *
* ---------------------------------------------------------------------------*/ * ---------------------------------------------------------------------------*/
#include "Stg.h"
#include "Rts.h" #include "Rts.h"
#include "Storage.h" /* for CurrentTSO */ #include "Storage.h" /* for CurrentTSO */
#include "StgRun.h" /* for StgReturn and register saving */ #include "StgRun.h" /* for StgReturn and register saving */
......
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# $Id: Makefile,v 1.43 2001/01/26 14:40:18 simonmar Exp $ # $Id: Makefile,v 1.44 2001/03/23 16:36:21 simonmar Exp $
# #
# This is the Makefile for the runtime-system stuff. # This is the Makefile for the runtime-system stuff.
# This stuff is written in C (and cannot be written in Haskell). # This stuff is written in C (and cannot be written in Haskell).
...@@ -32,13 +32,13 @@ else ...@@ -32,13 +32,13 @@ else
SRCS_RTS_C := $(filter-out Main.c, $(SRCS_RTS_C)) SRCS_RTS_C := $(filter-out Main.c, $(SRCS_RTS_C))
endif endif
#-----------------------------------------------------------------------------
# creating and installing libHSrts.a (in its many flavors)
#
LIBOBJS = $(patsubst %.c,%.$(way_)o,$(SRCS_RTS_C)) \ LIBOBJS = $(patsubst %.c,%.$(way_)o,$(SRCS_RTS_C)) \
$(patsubst %.hc,%.$(way_)o,$(SRCS_RTS_HC)) \ $(patsubst %.hc,%.$(way_)o,$(SRCS_RTS_HC)) \
$(patsubst %.S,%.$(way_)o,$(SRCS_RTS_S)) $(patsubst %.S,%.$(way_)o,$(SRCS_RTS_S))
#-----------------------------------------------------------------------------
# Flags for compiling RTS .c and .hc files
# gcc provides lots of useful warnings if you ask it. # gcc provides lots of useful warnings if you ask it.
# This is a pretty good list to start with - use a # to comment out # This is a pretty good list to start with - use a # to comment out
# any you don't like. # any you don't like.
...@@ -60,7 +60,6 @@ WARNING_OPTS += -optc-Wbad-function-cast ...@@ -60,7 +60,6 @@ WARNING_OPTS += -optc-Wbad-function-cast
#WARNING_OPTS += -optc-Wconversion #WARNING_OPTS += -optc-Wconversion
SRC_HC_OPTS += -I../includes -I. -Iparallel $(WARNING_OPTS) $(GhcRtsHcOpts) -optc-DCOMPILING_RTS SRC_HC_OPTS += -I../includes -I. -Iparallel $(WARNING_OPTS) $(GhcRtsHcOpts) -optc-DCOMPILING_RTS
SRC_CC_OPTS = $(GhcRtsCcOpts)
ifneq "$(DLLized)" "YES" ifneq "$(DLLized)" "YES"
SRC_HC_OPTS += -static SRC_HC_OPTS += -static
...@@ -71,6 +70,11 @@ ifeq "$(way)" "mp" ...@@ -71,6 +70,11 @@ ifeq "$(way)" "mp"
SRC_HC_OPTS += -I$$PVM_ROOT/include SRC_HC_OPTS += -I$$PVM_ROOT/include
endif endif
# compiling straight C files: use all the HC_OPTS, plus any extra options in
# $(GhcRtsCcOpts).
SRC_CC_OPTS += $(GhcRtsCcOpts)
SRC_CC_OPTS += $(HC_OPTS)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Include the Front panel code? # Include the Front panel code?
...@@ -100,7 +104,16 @@ SRC_MKDEPENDC_OPTS += -I. -I../includes ...@@ -100,7 +104,16 @@ SRC_MKDEPENDC_OPTS += -I. -I../includes
# ../driver/ghc (a better C compiler :-) to compile the # ../driver/ghc (a better C compiler :-) to compile the
# different RTS pieces # different RTS pieces
# #
CC=$(GHC_INPLACE) $(HC_OPTS) $($*_HC_OPTS)
ifeq "$(BootingFromHc)" "YES"
# use the normal $(CC) when booting from .hc files
SRC_CC_OPTS := $(patsubst -optc%,%,$(SRC_CC_OPTS))
SRC_CC_OPTS += $(PLATFORM_CC_OPTS)
else
# otherwise, use $(GHC_INPLACE) as the C compiler.
CC=$(GHC_INPLACE)
endif
HC=$(GHC_INPLACE) HC=$(GHC_INPLACE)
# prevent this value from leaking into the GMP makefile # prevent this value from leaking into the GMP makefile
......
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* $Id: PrimOps.hc,v 1.74 2001/03/22 03:51:10 hwloidl Exp $ * $Id: PrimOps.hc,v 1.75 2001/03/23 16:36:21 simonmar Exp $
* *
* (c) The GHC Team, 1998-2000 * (c) The GHC Team, 1998-2000
* *
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* *
* ---------------------------------------------------------------------------*/ * ---------------------------------------------------------------------------*/
#include "Stg.h"
#include "Rts.h" #include "Rts.h"
#include "RtsFlags.h" #include "RtsFlags.h"
......
/* --------------------------------------------------------------------------- /* ---------------------------------------------------------------------------
* $Id: Schedule.c,v 1.94 2001/03/22 03:51:10 hwloidl Exp $ * $Id: Schedule.c,v 1.95 2001/03/23 16:36:21 simonmar Exp $
* *
* (c) The GHC Team, 1998-2000 * (c) The GHC Team, 1998-2000
* *
...@@ -1478,7 +1478,6 @@ createThread_(nat size, rtsBool have_lock) ...@@ -1478,7 +1478,6 @@ createThread_(nat size, rtsBool have_lock)
tso->why_blocked = NotBlocked; tso->why_blocked = NotBlocked;
tso->blocked_exceptions = NULL; tso->blocked_exceptions = NULL;
//tso->splim = (P_)&(tso->stack) + RESERVED_STACK_WORDS;
tso->stack_size = stack_size; tso->stack_size = stack_size;
tso->max_stack_size = round_to_mblocks(RtsFlags.GcFlags.maxStkSize) tso->max_stack_size = round_to_mblocks(RtsFlags.GcFlags.maxStkSize)
- TSO_STRUCT_SIZEW; - TSO_STRUCT_SIZEW;
...@@ -2245,7 +2244,6 @@ threadStackOverflow(StgTSO *tso) ...@@ -2245,7 +2244,6 @@ threadStackOverflow(StgTSO *tso)
diff = (P_)new_sp - (P_)tso->sp; /* In *words* */ diff = (P_)new_sp - (P_)tso->sp; /* In *words* */
dest->su = (StgUpdateFrame *) ((P_)dest->su + diff); dest->su = (StgUpdateFrame *) ((P_)dest->su + diff);
dest->sp = new_sp; dest->sp = new_sp;
//dest->splim = (P_)dest->splim + (nat)((P_)dest - (P_)tso);
dest->stack_size = new_stack_size; dest->stack_size = new_stack_size;
/* and relocate the update frame list */ /* and relocate the update frame list */
......
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* $Id: StgMiscClosures.hc,v 1.65 2001/02/15 14:30:07 sewardj Exp $ * $Id: StgMiscClosures.hc,v 1.66 2001/03/23 16:36:21 simonmar Exp $
* *
* (c) The GHC Team, 1998-2000 * (c) The GHC Team, 1998-2000
* *
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* *
* ---------------------------------------------------------------------------*/ * ---------------------------------------------------------------------------*/
#include "Stg.h"
#include "Rts.h" #include "Rts.h"
#include "RtsUtils.h" #include "RtsUtils.h"
#include "RtsFlags.h" #include "RtsFlags.h"
......
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* $Id: StgStartup.hc,v 1.14 2001/02/09 13:09:16 simonmar Exp $ * $Id: StgStartup.hc,v 1.15 2001/03/23 16:36:21 simonmar Exp $
* *
* (c) The GHC Team, 1998-1999 * (c) The GHC Team, 1998-1999
* *
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* *
* ---------------------------------------------------------------------------*/ * ---------------------------------------------------------------------------*/
#include "Stg.h"
#include "Rts.h" #include "Rts.h"
#include "StgRun.h" /* StgReturn */ #include "StgRun.h" /* StgReturn */
#include "StgStartup.h" #include "StgStartup.h"
......
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* $Id: StgStdThunks.hc,v 1.14 2000/12/04 12:31:21 simonmar Exp $ * $Id: StgStdThunks.hc,v 1.15 2001/03/23 16:36:21 simonmar Exp $
* *
* (c) The GHC Team, 1998-2000 * (c) The GHC Team, 1998-2000
* *
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* *