simonm [Mon, 15 Mar 1999 16:30:29 +0000 (16:30 +0000)]
[project @ 1999-03-15 16:30:24 by simonm]
Remove flags field from info tables; create a separate table of flags
indexed by the closure type in the RTS.
simonpj [Mon, 15 Mar 1999 15:11:11 +0000 (15:11 +0000)]
[project @ 1999-03-15 15:11:03 by simonpj]
Make clear in HsType whether a for-all is explicit
in the source program or not. Implicit for-alls now
look like
HsForAllTy Nothing ctxt ty
while explicit ones look like
HsForAllTy (Just tvs) ctxt ty
Before this, the scope analysis stuff in RnSource was
actually wrong (not that anyone had noticed), but Alex Ferguson
did notice a bogus (sort-of-duplicate) error message on types
like
f :: Eq a => Int -> Int
which led me to spot the deeper problem. Anyway, it's all
cool now.
simonm [Mon, 15 Mar 1999 13:25:04 +0000 (13:25 +0000)]
[project @ 1999-03-15 13:25:04 by simonm]
Move mkdependHS to lib.
simonpj [Thu, 11 Mar 1999 17:39:18 +0000 (17:39 +0000)]
[project @ 1999-03-11 17:39:18 by simonpj]
Fix loadInterface to avoid repeated loading of PrelPack.hi-boot
simonm [Thu, 11 Mar 1999 11:32:29 +0000 (11:32 +0000)]
[project @ 1999-03-11 11:32:22 by simonm]
Save a few bytes by ommitting the static link field on closures with
an empty SRT.
simonm [Thu, 11 Mar 1999 11:21:47 +0000 (11:21 +0000)]
[project @ 1999-03-11 11:21:45 by simonm]
HPUX fixes.
sof [Thu, 11 Mar 1999 10:26:56 +0000 (10:26 +0000)]
[project @ 1999-03-11 10:26:56 by sof]
Pass -fcompiling-prelude through.
sof [Thu, 11 Mar 1999 09:46:31 +0000 (09:46 +0000)]
[project @ 1999-03-11 09:46:30 by sof]
-fcompiling-prelude is back!
When compiling the Prelude we need to distinguish between wired-in
module references that are DLL-bound or not. (Just having -static
didn't cut it in the end, since it also encompasses RTS references.)
On platforms that don't use Win32 DLLs, Preludes compiled with and
without -fcompiling-prelude will be observationally equivalent.
simonm [Thu, 11 Mar 1999 09:31:53 +0000 (09:31 +0000)]
[project @ 1999-03-11 09:31:53 by simonm]
Fix a small bug in weak ptr support.
sof [Thu, 11 Mar 1999 09:11:38 +0000 (09:11 +0000)]
[project @ 1999-03-11 09:11:38 by sof]
After 'make install' has completed, make sure we regenerate the
script in a state that's useable.
sof [Wed, 10 Mar 1999 18:50:24 +0000 (18:50 +0000)]
[project @ 1999-03-10 18:50:24 by sof]
Last commit made empty where bodies illegal, i.e.,
x = 2 where
Re-added support for this "feature".
sof [Wed, 10 Mar 1999 14:10:49 +0000 (14:10 +0000)]
[project @ 1999-03-10 14:10:47 by sof]
Some Haskell98-related regression tests
sof [Wed, 10 Mar 1999 11:03:51 +0000 (11:03 +0000)]
[project @ 1999-03-10 11:03:48 by sof]
Neural network regression test app; contains painfully long list of
constants.
simonm [Wed, 10 Mar 1999 10:53:40 +0000 (10:53 +0000)]
[project @ 1999-03-10 10:53:26 by simonm]
Put mkdependHS in libexecdir, not bindir.
sewardj [Tue, 9 Mar 1999 17:33:51 +0000 (17:33 +0000)]
[project @ 1999-03-09 17:33:51 by sewardj]
Now lives in ghc/interpreter/lib, along with other libraries.
sewardj [Tue, 9 Mar 1999 15:33:16 +0000 (15:33 +0000)]
[project @ 1999-03-09 15:33:16 by sewardj]
Handle CAF_UNENTERED (ie, reverted) in scavenge_mut_once_list
sewardj [Tue, 9 Mar 1999 14:51:30 +0000 (14:51 +0000)]
[project @ 1999-03-09 14:51:03 by sewardj]
Many improvements resulting from first attempt to run nofib suite:
-- More libraries (lib/*.hs) brought into operation
-- Prelude error handling and basic I/O improved
-- Changed bytecode immediate value fields so large constant
-- tables can be compiled
-- Fixed bugs: translation of FATBAR, negative floating point
-- literals, strict constructors, handling of CAFs
sewardj [Tue, 9 Mar 1999 14:27:06 +0000 (14:27 +0000)]
[project @ 1999-03-09 14:27:06 by sewardj]
#ifdeffery to make it work with interpreter.
sewardj [Tue, 9 Mar 1999 14:24:46 +0000 (14:24 +0000)]
[project @ 1999-03-09 14:24:43 by sewardj]
Include CAF_ENTEREDs on the mutables list so they get scavenged correctly.
simonm [Mon, 8 Mar 1999 17:05:41 +0000 (17:05 +0000)]
[project @ 1999-03-08 17:05:41 by simonm]
Fix bug in mkRegLiveness causing bogus heap checks to be generated on the Sparc.
sof [Mon, 8 Mar 1999 16:41:42 +0000 (16:41 +0000)]
[project @ 1999-03-08 16:41:42 by sof]
docfix
sof [Mon, 8 Mar 1999 16:41:24 +0000 (16:41 +0000)]
[project @ 1999-03-08 16:41:24 by sof]
enlargeStablePtrTable: initialise the whole table (incl. index 0) the first
time around.
simonm [Mon, 8 Mar 1999 10:40:46 +0000 (10:40 +0000)]
[project @ 1999-03-08 10:40:46 by simonm]
s/show/showSDoc/
Discovered-by: removing instance Show (->) :-)
kw217 [Fri, 5 Mar 1999 12:43:26 +0000 (12:43 +0000)]
[project @ 1999-03-05 12:43:26 by kw217]
More counters reinstated; this should be the lot now:
ENT_AP_UPD_ctr, ENT_BH_ctr, RET_UNBOXED_TUP_ctr, RET_UNBOXED_TUP_hst[]
kw217 [Fri, 5 Mar 1999 12:02:33 +0000 (12:02 +0000)]
[project @ 1999-03-05 12:02:33 by kw217]
Counter UPD_PAP_IN_PLACE_ctr erroneously missed from raw Ticky dump.
sof [Fri, 5 Mar 1999 10:21:33 +0000 (10:21 +0000)]
[project @ 1999-03-05 10:21:22 by sof]
Support for unsafely thawing your (Byte)Arrays, i.e., added the
following ops:
MutableArray.unsafeThawArray :: Ix ix => Array ix elt -> ST s (MutableArray s ix elt)
MutableArray.unsafeThawByteArray :: Ix ix => ByteArray ix -> ST s (MutableByteArray s ix)
MutableArray.thawByteArray :: Ix ix => ByteArray ix -> ST s (MutableByteArray s ix)
ST.unsafeThawSTArray :: Ix ix => Array ix elt -> ST s (STArray s ix elt)
LazyST.unsafeThawSTArray :: Ix ix => Array ix elt -> ST s (STArray s ix elt)
IOExts.unsafeFreezeIOArray :: Ix ix => IOArray ix elt -> IO (Array ix elt)
IOExts.unsafeThawIOArray :: Ix ix => Array ix elt -> IO (IOArray ix elt)
+ removed the re-exportation of Monad that ST and LazyST did.
sof [Fri, 5 Mar 1999 09:38:43 +0000 (09:38 +0000)]
[project @ 1999-03-05 09:38:43 by sof]
Remove the Show instance for (a->b). It will not be missed..
simonm [Thu, 4 Mar 1999 17:52:08 +0000 (17:52 +0000)]
[project @ 1999-03-04 17:52:08 by simonm]
Top-level non-updatable thunks get closure type FUN_STATIC, not
THUNK_STATIC. (helps the garbage collector decide where the static
link field should be).
simonm [Thu, 4 Mar 1999 13:26:49 +0000 (13:26 +0000)]
[project @ 1999-03-04 13:26:48 by simonm]
Make type substitution strict. This partially fixes the space leak,
and seems to improve performance marginally.
sof [Thu, 4 Mar 1999 13:07:48 +0000 (13:07 +0000)]
[project @ 1999-03-04 13:07:48 by sof]
more cygwin tweakage, this time for b19
sof [Thu, 4 Mar 1999 10:56:51 +0000 (10:56 +0000)]
[project @ 1999-03-04 10:56:51 by sof]
Previous mingw32 related commit upset things on the cygwin side.
sewardj [Thu, 4 Mar 1999 10:18:02 +0000 (10:18 +0000)]
[project @ 1999-03-04 10:18:02 by sewardj]
Amalgamated pp.c into stg.c.
sof [Wed, 3 Mar 1999 19:28:23 +0000 (19:28 +0000)]
[project @ 1999-03-03 19:28:23 by sof]
DLL_IMPORT_DATA_VAR fix
sof [Wed, 3 Mar 1999 19:27:23 +0000 (19:27 +0000)]
[project @ 1999-03-03 19:27:23 by sof]
Define HEAP_ALLOCED macro in non Win32 DLL land too
sof [Wed, 3 Mar 1999 19:26:31 +0000 (19:26 +0000)]
[project @ 1999-03-03 19:26:31 by sof]
COMPILING_RTS is now defined when compiling the rts. It is used for
the following:
- the contents of includes/Prelude.h is only visible when COMPILING_RTS
is on.
- getting the DLLIMPORT declarations right on various labels defined by
the Prelude or the RTS.
sof [Wed, 3 Mar 1999 19:20:42 +0000 (19:20 +0000)]
[project @ 1999-03-03 19:20:41 by sof]
Win32 DLL tweaks
sof [Wed, 3 Mar 1999 19:20:15 +0000 (19:20 +0000)]
[project @ 1999-03-03 19:20:15 by sof]
rts_get*: peer through indirections, if needs be.
sof [Wed, 3 Mar 1999 19:16:29 +0000 (19:16 +0000)]
[project @ 1999-03-03 19:16:29 by sof]
Extend the reaches of #ifdef INTERPRETER a little bit.
sof [Wed, 3 Mar 1999 19:11:43 +0000 (19:11 +0000)]
[project @ 1999-03-03 19:11:43 by sof]
StgNat64 --> StgWord64
sof [Wed, 3 Mar 1999 19:10:37 +0000 (19:10 +0000)]
[project @ 1999-03-03 19:10:37 by sof]
- moved the Bool closure table to here (don't want to end up accidentally mangling it.)
- startupHaskell: for Win32 DLLs, initialise the various closure tables now that
the DLLs have been loaded and the closure addresses are in scope.
sof [Wed, 3 Mar 1999 19:07:39 +0000 (19:07 +0000)]
[project @ 1999-03-03 19:07:39 by sof]
StgNat* --> StgWord*
sof [Wed, 3 Mar 1999 19:05:55 +0000 (19:05 +0000)]
[project @ 1999-03-03 19:05:55 by sof]
remove unused include + macros
sof [Wed, 3 Mar 1999 19:04:57 +0000 (19:04 +0000)]
[project @ 1999-03-03 19:04:56 by sof]
Added is_heap_alloced() to the API - returns true if an address is
within the range of addresses that we've been given back from the
OS.
Only needed for Win32 DLLs, so it's only defined when compiling up
a Win32 RTS DLL.
sof [Wed, 3 Mar 1999 19:00:07 +0000 (19:00 +0000)]
[project @ 1999-03-03 19:00:07 by sof]
mingw32 tweaks
sof [Wed, 3 Mar 1999 18:58:53 +0000 (18:58 +0000)]
[project @ 1999-03-03 18:58:53 by sof]
scavenge_srt: To deal with SRT entries that refer to closures that live
in DLLs, the compiler will set the LSB of the address. scavenge_srt()
checks for this, and if LSB is set, does an extra level of indirection
to get at the next closure to scavenge.
sof [Wed, 3 Mar 1999 18:16:15 +0000 (18:16 +0000)]
[project @ 1999-03-03 18:16:15 by sof]
On the Win32 DLL side, tidied up the defns of LOOKS_LIKE_STATIC() and
LOOKS_LIKE_STATIC_CLOSURE() a little.
simonm [Wed, 3 Mar 1999 17:41:13 +0000 (17:41 +0000)]
[project @ 1999-03-03 17:41:13 by simonm]
Make a few things strict.
simonm [Wed, 3 Mar 1999 17:22:11 +0000 (17:22 +0000)]
[project @ 1999-03-03 17:22:11 by simonm]
Nat --> Word
simonm [Wed, 3 Mar 1999 17:17:05 +0000 (17:17 +0000)]
[project @ 1999-03-03 17:17:05 by simonm]
temp. hack around timezone problems on solaris.
simonm [Wed, 3 Mar 1999 16:05:21 +0000 (16:05 +0000)]
[project @ 1999-03-03 16:05:21 by simonm]
HPPA tweaks.
sof [Tue, 2 Mar 1999 20:23:37 +0000 (20:23 +0000)]
[project @ 1999-03-02 20:23:37 by sof]
Don't prefix the generated output with \n
sof [Tue, 2 Mar 1999 20:16:16 +0000 (20:16 +0000)]
[project @ 1999-03-02 20:16:16 by sof]
doc tweaks
sof [Tue, 2 Mar 1999 20:14:02 +0000 (20:14 +0000)]
[project @ 1999-03-02 20:14:00 by sof]
mingw32 tweaks
sof [Tue, 2 Mar 1999 20:10:17 +0000 (20:10 +0000)]
[project @ 1999-03-02 20:10:17 by sof]
StgNat* --> StgWord*
sof [Tue, 2 Mar 1999 20:05:41 +0000 (20:05 +0000)]
[project @ 1999-03-02 20:05:41 by sof]
barf: paranoidly flush stderr..
sof [Tue, 2 Mar 1999 20:04:04 +0000 (20:04 +0000)]
[project @ 1999-03-02 20:04:03 by sof]
mingw32 tweaks.
sof [Tue, 2 Mar 1999 20:01:55 +0000 (20:01 +0000)]
[project @ 1999-03-02 20:01:55 by sof]
No signal support with mingw32
sof [Tue, 2 Mar 1999 20:00:50 +0000 (20:00 +0000)]
[project @ 1999-03-02 20:00:50 by sof]
Win32 platforms: use native API to compute elapsed and user times.
sof [Tue, 2 Mar 1999 19:59:40 +0000 (19:59 +0000)]
[project @ 1999-03-02 19:59:40 by sof]
When putting the RTS in a DLL, we have to delay filling in the
Charlike and Intlike tables until load-time.
sof [Tue, 2 Mar 1999 19:52:24 +0000 (19:52 +0000)]
[project @ 1999-03-02 19:52:24 by sof]
StgNat64 --> StgWord64
sof [Tue, 2 Mar 1999 19:51:54 +0000 (19:51 +0000)]
[project @ 1999-03-02 19:51:54 by sof]
typo
sof [Tue, 2 Mar 1999 19:50:47 +0000 (19:50 +0000)]
[project @ 1999-03-02 19:50:47 by sof]
StgNat64 --> StgWord64
sof [Tue, 2 Mar 1999 19:50:12 +0000 (19:50 +0000)]
[project @ 1999-03-02 19:50:12 by sof]
initStorage: initialise gos0->to_space
sof [Tue, 2 Mar 1999 19:44:23 +0000 (19:44 +0000)]
[project @ 1999-03-02 19:44:07 by sof]
- misc changes to support DLLs
- StgNat* --> StgWord*
sof [Tue, 2 Mar 1999 19:15:27 +0000 (19:15 +0000)]
[project @ 1999-03-02 19:15:27 by sof]
Partial support for working with DLLs. On mingw32, unless you supply
the -static command line option, the default is now to assume
that you're using DLLs when compiling and linking.
ToDo: support the construction of DLLs via the driver.
sof [Tue, 2 Mar 1999 19:10:07 +0000 (19:10 +0000)]
[project @ 1999-03-02 19:10:07 by sof]
On mingw32, which is the only 'platform' where we support producing
DLLs, prefix each static closure with a zero word. This is needed so
that we can distinguish between pointers to (reversed!) info tables
and static closures just by checking whether there's a zero word just
above the pointed-to entity. Wish there was a better way..
sof [Tue, 2 Mar 1999 19:01:58 +0000 (19:01 +0000)]
[project @ 1999-03-02 19:01:56 by sof]
Remove out-of-date use of -fcompiling-prelude
sof [Tue, 2 Mar 1999 18:54:47 +0000 (18:54 +0000)]
[project @ 1999-03-02 18:54:47 by sof]
Compile CgCase with -fno-prune-tydecls on
sof [Tue, 2 Mar 1999 18:31:58 +0000 (18:31 +0000)]
[project @ 1999-03-02 18:31:51 by sof]
import list adjustments
sof [Tue, 2 Mar 1999 17:46:51 +0000 (17:46 +0000)]
[project @ 1999-03-02 17:46:51 by sof]
One new option:
-static produce code for use in statically linked binaries.
The driver makes sure that this option is on for
platforms that doesn't support DLLs. Leaving it
off won't have any bad effects though.
sof [Tue, 2 Mar 1999 17:18:27 +0000 (17:18 +0000)]
[project @ 1999-03-02 17:18:27 by sof]
ppr bugfix for dcons that are locally qualified
(omit braces around context if there isn't one.)
sof [Tue, 2 Mar 1999 17:12:58 +0000 (17:12 +0000)]
[project @ 1999-03-02 17:12:54 by sof]
Directories can now be flagged as containing interface files that have
their corresponding object codes living in Win32 DLLs.
The compiler needs to keep track of whether a name refers to something
in a DLL or not, since Win32 DLLs forces you to distinguish between
the two at the point of use. For example, the code generated for
the following snippet
return (x+2);
will differ. If 'x' resides in a DLL, you need to perform an extra
indirection to get at its value. Effectively, the generated code
becomes
return (*x+2);
For functions, the distinction can be made transparent, but we
can avoid jumping through an extra level of indirection if we
do indicate that a label will be imported from a DLL.
Back to the renamer and its scheme, directories that contain
the file ".dLL_ifs.hi" (name chosen to lessen the risk of a clash..)
are considered as containing 'DLL interface files'. There's two
caveats to this scheme:
- interface files found in "." are not considered to be referring
to something in a DLL.
- if the compiler has got -static on the command line, then all
interface file in scope are considered to be 'normal'.
sof [Tue, 2 Mar 1999 16:44:28 +0000 (16:44 +0000)]
[project @ 1999-03-02 16:44:26 by sof]
Win32 only: emit code that declares the DLLness of a label we're
making use of.
simonm [Tue, 2 Mar 1999 16:09:28 +0000 (16:09 +0000)]
[project @ 1999-03-02 16:09:28 by simonm]
Add missing default case to mkRegLiveness.
sof [Tue, 2 Mar 1999 15:45:53 +0000 (15:45 +0000)]
[project @ 1999-03-02 15:45:50 by sof]
Support for deriving 'proper' Show & Read instances for infix constructors.
sof [Tue, 2 Mar 1999 15:43:28 +0000 (15:43 +0000)]
[project @ 1999-03-02 15:43:27 by sof]
PrelMods - use mkPrelModule instead of mkSrcModule to reflect distinction
we need to make between the two when compiling up code that's destined
for 'Win32 DLL'dom.
sof [Tue, 2 Mar 1999 15:40:11 +0000 (15:40 +0000)]
[project @ 1999-03-02 15:40:08 by sof]
Fix to allow local, non-exported actions to be 'foreign export'ed.
sof [Tue, 2 Mar 1999 14:34:38 +0000 (14:34 +0000)]
[project @ 1999-03-02 14:34:33 by sof]
- import list tweaks
- moved the code that decides that a StgCon really shouldn't
be mapped to a static constructor but an updateable thunk
if it contains lit-lits from the codegen into the CoreToStg
translation.
Added an extra case to this code to deal with StgCon's that contain
references to values that reside in a DLL, where we also have to
opt for an updateable thunk instead of a static constructor. Only
applies when compiling on/for Win32 platforms.
sof [Tue, 2 Mar 1999 14:22:46 +0000 (14:22 +0000)]
[project @ 1999-03-02 14:22:43 by sof]
mostly import list re-shuffling
sof [Tue, 2 Mar 1999 14:20:44 +0000 (14:20 +0000)]
[project @ 1999-03-02 14:20:44 by sof]
Separated out Module type and ops from OccName.
simonm [Tue, 2 Mar 1999 11:46:28 +0000 (11:46 +0000)]
[project @ 1999-03-02 11:46:28 by simonm]
Install the docs in $real_datadir, not $datadir.
sof [Tue, 2 Mar 1999 11:11:18 +0000 (11:11 +0000)]
[project @ 1999-03-02 11:11:18 by sof]
Tweaks:
- only trailing empty decls were accepted.
- empty export lists where being flagged as there being none.
sof [Tue, 2 Mar 1999 10:40:42 +0000 (10:40 +0000)]
[project @ 1999-03-02 10:40:40 by sof]
Updates + added empty decl regression test
simonm [Tue, 2 Mar 1999 09:17:03 +0000 (09:17 +0000)]
[project @ 1999-03-02 09:17:02 by simonm]
makeForeignObj --> mkForeignObj
simonm [Mon, 1 Mar 1999 17:42:11 +0000 (17:42 +0000)]
[project @ 1999-03-01 17:42:11 by simonm]
hppa1.1 support, first cut.
simonm [Mon, 1 Mar 1999 17:41:50 +0000 (17:41 +0000)]
[project @ 1999-03-01 17:41:50 by simonm]
recurse into gmp on 'make clean'
simonm [Mon, 1 Mar 1999 17:41:24 +0000 (17:41 +0000)]
[project @ 1999-03-01 17:41:21 by simonm]
Some native codegen updates.
simonm [Mon, 1 Mar 1999 17:40:55 +0000 (17:40 +0000)]
[project @ 1999-03-01 17:40:55 by simonm]
hppa1.1 support, first cut.
simonm [Mon, 1 Mar 1999 17:39:54 +0000 (17:39 +0000)]
[project @ 1999-03-01 17:39:54 by simonm]
Use 'data_start' as the end-of-text marker if it exists. This includes
the read-only text section on Linux/ELF, which is what we want.
simonm [Mon, 1 Mar 1999 15:17:43 +0000 (15:17 +0000)]
[project @ 1999-03-01 15:17:43 by simonm]
Bring in rev. 1.22.2.1 - Don't apply -monly-n-reg patches to _regBlah
functions (profiling cost-centre register things)
sewardj [Mon, 1 Mar 1999 14:58:56 +0000 (14:58 +0000)]
[project @ 1999-03-01 14:58:56 by sewardj]
Minor Makefile mods. Add a Prelude.hs which suits new STGhugs.
sewardj [Mon, 1 Mar 1999 14:47:09 +0000 (14:47 +0000)]
[project @ 1999-03-01 14:46:42 by sewardj]
Mods to make STG-hugs able to compile and run small examples. This
commit also includes proper implementations of seq, raise and catch.
simonm [Mon, 1 Mar 1999 10:25:20 +0000 (10:25 +0000)]
[project @ 1999-03-01 10:25:20 by simonm]
Missing { in mulIntCzh
sof [Mon, 1 Mar 1999 10:20:39 +0000 (10:20 +0000)]
[project @ 1999-03-01 10:20:39 by sof]
Handle block comments that haven't been closed a little bit better: record
(and report) the start of the comment.
Simple implementation - doesn't bother dealing with nested comments.
simonm [Mon, 1 Mar 1999 10:17:15 +0000 (10:17 +0000)]
[project @ 1999-03-01 10:17:15 by simonm]
typo
sof [Mon, 1 Mar 1999 09:44:05 +0000 (09:44 +0000)]
[project @ 1999-03-01 09:44:05 by sof]
import list tweak
sof [Mon, 1 Mar 1999 09:43:37 +0000 (09:43 +0000)]
[project @ 1999-03-01 09:43:37 by sof]
Remove unused defns, forall and exists.
sof [Mon, 1 Mar 1999 09:27:49 +0000 (09:27 +0000)]
[project @ 1999-03-01 09:27:49 by sof]
mingw32 tweak
sof [Mon, 1 Mar 1999 09:26:45 +0000 (09:26 +0000)]
[project @ 1999-03-01 09:26:45 by sof]
mingw32: stay well clear of any tty stuff - just don't have
support for it.
sof [Mon, 1 Mar 1999 09:23:58 +0000 (09:23 +0000)]
[project @ 1999-03-01 09:23:58 by sof]
mingw32: no select() in sight.