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.
sof [Mon, 1 Mar 1999 09:11:39 +0000 (09:11 +0000)]
[project @ 1999-03-01 09:11:39 by sof]
mingw32: Turn off file locking. Of questionable value + impl is i-node
based.
sof [Mon, 1 Mar 1999 09:04:07 +0000 (09:04 +0000)]
[project @ 1999-03-01 09:04:07 by sof]
mingw32 tweaks
sof [Mon, 1 Mar 1999 09:03:37 +0000 (09:03 +0000)]
[project @ 1999-03-01 09:03:37 by sof]
mingw32: MS C runtime implementation of mkdir() doesn't allow you
to specify the access permissions to pin on a directory.
sof [Mon, 1 Mar 1999 09:02:04 +0000 (09:02 +0000)]
[project @ 1999-03-01 09:02:04 by sof]
mingw32: No support for set/getting the status of ttys (yet.)
sof [Mon, 1 Mar 1999 08:59:45 +0000 (08:59 +0000)]
[project @ 1999-03-01 08:59:45 by sof]
foreign imports: stdcall --> ccall
sof [Mon, 1 Mar 1999 08:58:53 +0000 (08:58 +0000)]
[project @ 1999-03-01 08:58:53 by sof]
wibble
sof [Mon, 1 Mar 1999 08:57:57 +0000 (08:57 +0000)]
[project @ 1999-03-01 08:57:57 by sof]
mingw32: Use C runtime's version of system()
sof [Mon, 1 Mar 1999 08:38:36 +0000 (08:38 +0000)]
[project @ 1999-03-01 08:38:36 by sof]
Reinstate old signature for 'makeForeignObj', i.e.
makeForeignObj :: Addr -> Addr -> IO ForeignObj
combining the primitive 'makeForeignObj' and addForeignFinalizer(+).
The primitive ForeignObj constructor is now exported as 'mkForeignObj'
sof [Mon, 1 Mar 1999 08:19:49 +0000 (08:19 +0000)]
[project @ 1999-03-01 08:19:49 by sof]
Added:
writeStablePtrOffAddr :: Addr -> Int -> StablePtr a -> IO ()
readStablePtrOffAddr :: Addr -> Int -> IO (StablePtr a)
writeForeignObjOffAddr :: Addr -> Int -> ForeignObj -> IO ()
sof [Mon, 1 Mar 1999 08:16:28 +0000 (08:16 +0000)]
[project @ 1999-03-01 08:16:28 by sof]
- added showListWith, non-overloaded version of showList.
simonm [Fri, 26 Feb 1999 17:46:09 +0000 (17:46 +0000)]
[project @ 1999-02-26 17:46:04 by simonm]
Fix a bug in weak pointer support: if finalize is called on a weak
pointer, then a DEAD_WEAK object could appear on the weak pointer
list.
To avoid needing to double-link this list, add a link field to
DEAD_WEAK objects, and remove them from the list at garbage collection
time.
simonm [Fri, 26 Feb 1999 17:43:55 +0000 (17:43 +0000)]
[project @ 1999-02-26 17:43:55 by simonm]
Allow the memo table itself to be collected when the function becomes
unreachabl.
- individual finalizers refer back to the memo table
via a weak pointer.
- a finalizer for the whole table walks through each
bucket calling 'finalize' on every weak pointer.
simonm [Fri, 26 Feb 1999 16:46:50 +0000 (16:46 +0000)]
[project @ 1999-02-26 16:46:50 by simonm]
Back out accidental commits.
simonm [Fri, 26 Feb 1999 16:44:14 +0000 (16:44 +0000)]
[project @ 1999-02-26 16:44:13 by simonm]
Fix small stats bug in the -G1 case.
simonm [Fri, 26 Feb 1999 13:36:14 +0000 (13:36 +0000)]
[project @ 1999-02-26 13:36:12 by simonm]
Change the semantics of weak pointers - now weak pointer objects
aren't automatically considered reachable, so a weak pointer to a weak
pointer object is now meaningful.
simonm [Fri, 26 Feb 1999 12:46:48 +0000 (12:46 +0000)]
[project @ 1999-02-26 12:46:45 by simonm]
Fix stable pointer bug:
- the 'keep' flag is now a pointer to the stable name object.
- makeStableName always returns an existing stable name object
if one exists.
- re-use stable name table entries iff the stable name object
becomes unreachable (takes into account generational GC now),
and the reference count is 0.
simonm [Fri, 26 Feb 1999 12:43:58 +0000 (12:43 +0000)]
[project @ 1999-02-26 12:43:58 by simonm]
Fix bug in finalizeWeakPointersNow - some weak ptrs could be missed.
simonm [Fri, 26 Feb 1999 12:42:07 +0000 (12:42 +0000)]
[project @ 1999-02-26 12:42:06 by simonm]
Add memo table test.
simonm [Fri, 26 Feb 1999 12:32:51 +0000 (12:32 +0000)]
[project @ 1999-02-26 12:32:51 by simonm]
Fix run queue corruption bug.
simonm [Fri, 26 Feb 1999 09:28:43 +0000 (09:28 +0000)]
[project @ 1999-02-26 09:28:43 by simonm]
Remove bogus TICK_ALLOC_HEAP.
simonm [Thu, 25 Feb 1999 17:52:33 +0000 (17:52 +0000)]
[project @ 1999-02-25 17:52:33 by simonm]
- clean up a little
- add some code to avoid promoting thunks (#ifdefed out)
sof [Thu, 25 Feb 1999 10:18:28 +0000 (10:18 +0000)]
[project @ 1999-02-25 10:18:28 by sof]
hClose: don't raise an exception when passed a handle that's already closed,
i.e.,
h <- openFile "a" ReadMode >> hClose h >> hClose h
will now succeed (provided 'a' exists and is readable, of course.)
Repeated hClose's are just redundant.
simonm [Thu, 25 Feb 1999 10:10:31 +0000 (10:10 +0000)]
[project @ 1999-02-25 10:10:31 by simonm]
Include GC bytes copied in stats string.
simonm [Wed, 24 Feb 1999 17:24:07 +0000 (17:24 +0000)]
[project @ 1999-02-24 17:24:07 by simonm]
Allow eager promotion to be turned off by a compile-time option.
simonm [Wed, 24 Feb 1999 16:30:45 +0000 (16:30 +0000)]
[project @ 1999-02-24 16:30:45 by simonm]
Don't promote blackholes from generation 0 if possible.
simonm [Wed, 24 Feb 1999 16:25:40 +0000 (16:25 +0000)]
[project @ 1999-02-24 16:25:40 by simonm]
- Fix a couple of uninitialized variables
- Fill the nursery with junk after GC if sanity checking is on
sof [Tue, 23 Feb 1999 17:20:34 +0000 (17:20 +0000)]
[project @ 1999-02-23 17:20:34 by sof]
Updates on the Win32 front
simonm [Tue, 23 Feb 1999 17:18:01 +0000 (17:18 +0000)]
[project @ 1999-02-23 17:18:01 by simonm]
- If -H is larger than -M, set -M to -H
- Fix a couple of bugs in calcLive().
simonm [Tue, 23 Feb 1999 15:45:08 +0000 (15:45 +0000)]
[project @ 1999-02-23 15:45:06 by simonm]
- Fix a bug in 2-space (-G1) collection
- Calculate an estimate of the number of bytes copied during GC
for GC stats.
simonm [Tue, 23 Feb 1999 12:02:57 +0000 (12:02 +0000)]
[project @ 1999-02-23 12:02:57 by simonm]
Print time spent collecting each generation.
simonm [Tue, 23 Feb 1999 10:09:49 +0000 (10:09 +0000)]
[project @ 1999-02-23 10:09:49 by simonm]
Integer fixes.
simonm [Mon, 22 Feb 1999 11:47:17 +0000 (11:47 +0000)]
[project @ 1999-02-22 11:47:17 by simonm]
Couple of Integer fixes.
simonm [Mon, 22 Feb 1999 10:51:18 +0000 (10:51 +0000)]
[project @ 1999-02-22 10:51:18 by simonm]
- Fix off-by-one in __encodeFloat;
- Tidy up __encodeDouble a bit.
sof [Mon, 22 Feb 1999 10:22:36 +0000 (10:22 +0000)]
[project @ 1999-02-22 10:22:34 by sof]
Tweaks to make docs build cleanly
sof [Sat, 20 Feb 1999 13:41:27 +0000 (13:41 +0000)]
[project @ 1999-02-20 13:41:27 by sof]
Fixed waitQSemN bug
sewardj [Fri, 19 Feb 1999 18:26:04 +0000 (18:26 +0000)]
[project @ 1999-02-19 18:26:04 by sewardj]
Added field 'StgWord stgexpr' to struct StgBCO, to help with debugging
the interpreter. This field (if nonzero) points into the Hugs heap, at
the STG tree from which the BCO was derived.
simonm [Fri, 19 Feb 1999 17:12:07 +0000 (17:12 +0000)]
[project @ 1999-02-19 17:11:59 by simonm]
Some test updates.
simonm [Fri, 19 Feb 1999 10:48:58 +0000 (10:48 +0000)]
[project @ 1999-02-19 10:48:58 by simonm]
Fix negate (toInteger (minBound :: Int)).
simonm [Fri, 19 Feb 1999 10:48:27 +0000 (10:48 +0000)]
[project @ 1999-02-19 10:48:27 by simonm]
Hack around a couple of explicit uses of the Integer rep.
simonm [Thu, 18 Feb 1999 17:55:40 +0000 (17:55 +0000)]
[project @ 1999-02-18 17:55:40 by simonm]
Eliminate an unnecessary pattern match on J#.
simonpj [Thu, 18 Feb 1999 17:13:55 +0000 (17:13 +0000)]
[project @ 1999-02-18 17:13:54 by simonpj]
Allow completely unbound tyvars of non-type kind
sof [Thu, 18 Feb 1999 16:37:56 +0000 (16:37 +0000)]
[project @ 1999-02-18 16:37:55 by sof]
Added test that caused 3.03 and 4.01 to enter a blackhole
simonm [Thu, 18 Feb 1999 16:33:09 +0000 (16:33 +0000)]
[project @ 1999-02-18 16:33:09 by simonm]
Allow -f flag to override existing symlink tree.
sewardj [Thu, 18 Feb 1999 13:00:28 +0000 (13:00 +0000)]
[project @ 1999-02-18 13:00:27 by sewardj]
Make decoding of RtsFlags.DebugFlags work on big-endian architectures.
simonm [Thu, 18 Feb 1999 12:26:17 +0000 (12:26 +0000)]
[project @ 1999-02-18 12:26:11 by simonm]
Add two new operations to StgPrimFloat.c:
__int_encodeFloat
__int_encodeDouble
for encoding floats/doubles from small integers. This avoids having
to convert small integers to large ones before an encodeFloat
operation, and fixes the two cases of slowdown in nofib after the
small integer changes.
Also:
- remove encodeFloat and decodeFloat as primops
- use foreign import for encode{Float,Double} and
the various isNaN etc. ccalls in PrelNumExtra.
simonm [Thu, 18 Feb 1999 12:21:07 +0000 (12:21 +0000)]
[project @ 1999-02-18 12:21:07 by simonm]
- Fix typo in description of -M
- Add doc line for -H
simonpj [Wed, 17 Feb 1999 21:54:48 +0000 (21:54 +0000)]
[project @ 1999-02-17 21:54:48 by simonpj]
Reinstate specialisations for fromIntegral and realToFrac
simonpj [Wed, 17 Feb 1999 21:53:27 +0000 (21:53 +0000)]
[project @ 1999-02-17 21:53:27 by simonpj]
Add z-encodings for ^ and %
simonm [Wed, 17 Feb 1999 17:47:09 +0000 (17:47 +0000)]
[project @ 1999-02-17 17:47:09 by simonm]
typo
simonm [Wed, 17 Feb 1999 17:35:32 +0000 (17:35 +0000)]
[project @ 1999-02-17 17:35:31 by simonm]
Fix a couple of uninitialized data reads.
simonm [Wed, 17 Feb 1999 15:57:39 +0000 (15:57 +0000)]
[project @ 1999-02-17 15:57:20 by simonm]
Fast Integers. The rep. of Integers is now
data Integer = S# Int#
| J# Int# ByteArray#
- several new primops added for overflow-detecting arithmetic
- negateInteger# removed; it can be done directly
- integer_0, integer_1 etc. removed.
- the compiler now uses S# where it previously used int2Integer.
- the compiler generates small integers for -2^32 .. 2^32-1, instead
of -2^29 .. -2^29-1.
- PrelST.State datatype moved to LazyST (its only use).
- some library code (in Time.lhs) still needs cleaning up, it depends
on the Integer rep.
simonm [Wed, 17 Feb 1999 15:04:40 +0000 (15:04 +0000)]
[project @ 1999-02-17 15:04:40 by simonm]
Be slightly more conservative about allocation area sizing with -H.
sof [Wed, 17 Feb 1999 10:51:42 +0000 (10:51 +0000)]
[project @ 1999-02-17 10:51:42 by sof]
Document __HASKELL98__
sof [Wed, 17 Feb 1999 10:48:06 +0000 (10:48 +0000)]
[project @ 1999-02-17 10:48:06 by sof]
Define __HASKELL98__
sof [Wed, 17 Feb 1999 09:43:32 +0000 (09:43 +0000)]
[project @ 1999-02-17 09:43:32 by sof]
Perl regex tweak, take 55