ghc-hetmet.git
25 years ago[project @ 1999-03-18 14:16:00 by kw217]
kw217 [Thu, 18 Mar 1999 14:16:00 +0000 (14:16 +0000)]
[project @ 1999-03-18 14:16:00 by kw217]
Minor documentation fixes, and addition of SRT explanation.

25 years ago[project @ 1999-03-18 11:53:34 by simonm]
simonm [Thu, 18 Mar 1999 11:53:34 +0000 (11:53 +0000)]
[project @ 1999-03-18 11:53:34 by simonm]
egcs sometimes leaves a 'popl %ecx' in the epilogue, it seems.

25 years ago[project @ 1999-03-18 09:46:44 by simonm]
simonm [Thu, 18 Mar 1999 09:46:44 +0000 (09:46 +0000)]
[project @ 1999-03-18 09:46:44 by simonm]
Add infixr 1 =<<

25 years ago[project @ 1999-03-17 16:28:34 by sewardj]
sewardj [Wed, 17 Mar 1999 16:28:34 +0000 (16:28 +0000)]
[project @ 1999-03-17 16:28:34 by sewardj]
Make mut_link field be NULL when removing CAF_{UN}ENTERED from
mut_once_list.  Convention is to have the field be NULL iff
the caf is not on a mut_once_list.  This gives a O(1) cost way
to avoid putting a caf onto a mut_once_list more than once.

25 years ago[project @ 1999-03-17 16:25:07 by sewardj]
sewardj [Wed, 17 Mar 1999 16:25:07 +0000 (16:25 +0000)]
[project @ 1999-03-17 16:25:07 by sewardj]
Add missing semicolon

25 years ago[project @ 1999-03-17 13:19:19 by simonm]
simonm [Wed, 17 Mar 1999 13:19:28 +0000 (13:19 +0000)]
[project @ 1999-03-17 13:19:19 by simonm]
- Stack overflow now generates an (AsyncException StackOverflow)
  exception, which can be caught as normal.

- Add a stack overflow handler to the top-level mainIO handler, with
  the standard behaviour (i.e. call the stack overflow hook and then
  exit).

- Add a test for stack overflow catching.

- Fix a couple of bugs in async exception support.

25 years ago[project @ 1999-03-17 11:03:36 by simonm]
simonm [Wed, 17 Mar 1999 11:03:36 +0000 (11:03 +0000)]
[project @ 1999-03-17 11:03:36 by simonm]
Ignore type lambdas for the purposes of occurrence analysis.

25 years ago[project @ 1999-03-17 11:02:35 by simonm]
simonm [Wed, 17 Mar 1999 11:02:35 +0000 (11:02 +0000)]
[project @ 1999-03-17 11:02:35 by simonm]
Print (ICanSafelyBeINLINEd InsideLam _) as "__Ul".

25 years ago[project @ 1999-03-17 10:06:21 by simonpj]
simonpj [Wed, 17 Mar 1999 10:06:22 +0000 (10:06 +0000)]
[project @ 1999-03-17 10:06:21 by simonpj]
Make it so that Local (i.e. non-top-level) names record
whether they originally came from an interface file.  This
means that when unifying two type variables we can readily
choose one that occurred in the source, rather than one
imported from an interface file.  That in turn improves
compiler error messages.  E.g.

  rd :: (RealFloat a, RealFrac b) => b -> Transformation a
  rd degrees  = r ((degrees / 180.0) * pi)

used to say

    Could not deduce `Floating a'
(arising from use of `pi' at Foo.hs:11)
from the context: (RealFloat a1, RealFrac a)
    Probable cause: missing `Floating a' in type signature for `rd'

[here the 'a' came from the signature for 'pi' in PrelBase;
 the 'a1' is a renamed version of the 'a' in the source pgm]

but now says

    Could not deduce `Floating b'
(arising from use of `pi' at Foo.hs:11)
from the context: (RealFloat a, RealFrac b)
    Probable cause: missing `Floating b' in type signature for `rd'

25 years ago[project @ 1999-03-17 09:50:08 by simonm]
simonm [Wed, 17 Mar 1999 09:50:08 +0000 (09:50 +0000)]
[project @ 1999-03-17 09:50:08 by simonm]
When resizing a stack, set the Sp and Su of the old, dead, TSO to be just
beyond the end of its stack so we don't attempt to scavenge any part of
the stack in case we come across this TSO during GC.

25 years ago[project @ 1999-03-17 08:26:30 by simonpj]
simonpj [Wed, 17 Mar 1999 08:26:30 +0000 (08:26 +0000)]
[project @ 1999-03-17 08:26:30 by simonpj]
Complete the hack that lets us give 'error' the type

error :: forall a:?. String -> a

The kind '?' (also known as 'Type AnyBox') means that
error can be applied to unboxed types too.  unsafeCoerce is
similar.  But the 'real' type of error is:

error :: forall bv. forall a:Type bv. String -> a

That is, it's really polymorphic in the boxity of a; that's
different to saying that the type bound to 'a' must have
kind '?'.

The fix was in TcType.inst_tyvar, where we look for the kind '?'
and generate a boxity variable instead.  Sigh.

25 years ago[project @ 1999-03-16 17:07:21 by simonm]
simonm [Tue, 16 Mar 1999 17:07:23 +0000 (17:07 +0000)]
[project @ 1999-03-16 17:07:21 by simonm]
- Document the pragmas we support
- Fix some lies in the vs. Haskell section.

25 years ago[project @ 1999-03-16 13:20:07 by simonm]
simonm [Tue, 16 Mar 1999 13:20:23 +0000 (13:20 +0000)]
[project @ 1999-03-16 13:20:07 by simonm]
Improvements to the threading model.

   - asynchronous exceptions supported.

- killThread# can now raise an exception in the specified
  thread.  It's new type is

killThread# :: ThreadId# -> Exception -> IO ()

  High-level versions:

killThread :: ThreadId -> IO ()
raiseInThread :: ThreadId -> Exception -> IO ()

  (killThread raises a 'ThreadKilled' exception in the
   specified thread).

  If the thread has no exception handler, it is killed
  as before.  Otherwise, the exception is passed to
  the innermost CATCH_FRAME and the thread is woken up
  if it was blocked.  The current computation is
  suspended, instead of being replaced by the exception
  (as is the case with throw).

  Sending an exception to the current thread works too.

   - new primitive: myThreadId# :: IO ThreadId# and corresponding
     high-level version myThreadId :: IO ThreadId.

   - new primitive: yield# :: IO (), and yield :: IO ().

   - the TSO now contains a pointer to the resource currently blocked
     on (MVAR or BLACKHOLE_BQ).

  - Add a giant comment to TSO.h about what the various link fields
    are supposed to do, and invariants etc.

25 years ago[project @ 1999-03-16 12:36:15 by simonpj]
simonpj [Tue, 16 Mar 1999 12:36:15 +0000 (12:36 +0000)]
[project @ 1999-03-16 12:36:15 by simonpj]
Bring up to 4.02 interface file syntax

25 years ago[project @ 1999-03-16 12:31:55 by simonpj]
simonpj [Tue, 16 Mar 1999 12:31:55 +0000 (12:31 +0000)]
[project @ 1999-03-16 12:31:55 by simonpj]
Make it only a warning if you have a type like this:

forall a. Int -> Int

These show up in interface files occasionally, just because
the simplifier is a bit blase about adding type arguments.

But it's an error to have

forall a. Eq a => Int -> Int

The flag -fwarn-unused-matches reports a warning for these
redundant for-alls.

25 years ago[project @ 1999-03-15 17:11:27 by simonm]
simonm [Mon, 15 Mar 1999 17:11:27 +0000 (17:11 +0000)]
[project @ 1999-03-15 17:11:27 by simonm]
Remove a couple of stgcasts.

25 years ago[project @ 1999-03-15 16:53:10 by simonm]
simonm [Mon, 15 Mar 1999 16:53:11 +0000 (16:53 +0000)]
[project @ 1999-03-15 16:53:10 by simonm]
Specialise STATIC_LINK() for {FUN,THUNK,IND}_STATIC.

25 years ago[project @ 1999-03-15 16:31:02 by simonm]
simonm [Mon, 15 Mar 1999 16:31:02 +0000 (16:31 +0000)]
[project @ 1999-03-15 16:31:02 by simonm]
Reduce alignment for info tables on x86 to 1 word.  It was previously
4 words, which meant that the entry code was wrongly aligned all the
time (because info tables are either 2 or 3 words).  At least this way
we've got a 1 in 4 chance of being properly aligned.

25 years ago[project @ 1999-03-15 16:30:24 by simonm]
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.

25 years ago[project @ 1999-03-15 15:11:03 by simonpj]
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.

25 years ago[project @ 1999-03-15 13:25:04 by simonm]
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.

25 years ago[project @ 1999-03-11 17:39:18 by simonpj]
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

25 years ago[project @ 1999-03-11 11:32:22 by simonm]
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.

25 years ago[project @ 1999-03-11 11:21:45 by simonm]
simonm [Thu, 11 Mar 1999 11:21:47 +0000 (11:21 +0000)]
[project @ 1999-03-11 11:21:45 by simonm]
HPUX fixes.

25 years ago[project @ 1999-03-11 10:26:56 by sof]
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.

25 years ago[project @ 1999-03-11 09:46:30 by sof]
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.

25 years ago[project @ 1999-03-11 09:31:53 by simonm]
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.

25 years ago[project @ 1999-03-11 09:11:38 by sof]
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.

25 years ago[project @ 1999-03-10 18:50:24 by sof]
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".

25 years ago[project @ 1999-03-10 14:10:47 by sof]
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

25 years ago[project @ 1999-03-10 11:03:48 by sof]
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.

25 years ago[project @ 1999-03-10 10:53:26 by simonm]
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.

25 years ago[project @ 1999-03-09 17:33:51 by sewardj]
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.

25 years ago[project @ 1999-03-09 15:33:16 by sewardj]
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

25 years ago[project @ 1999-03-09 14:51:03 by sewardj]
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

25 years ago[project @ 1999-03-09 14:27:06 by sewardj]
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.

25 years ago[project @ 1999-03-09 14:24:43 by sewardj]
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.

25 years ago[project @ 1999-03-08 17:05:41 by simonm]
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.

25 years ago[project @ 1999-03-08 16:41:42 by sof]
sof [Mon, 8 Mar 1999 16:41:42 +0000 (16:41 +0000)]
[project @ 1999-03-08 16:41:42 by sof]
docfix

25 years ago[project @ 1999-03-08 16:41:24 by sof]
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.

25 years ago[project @ 1999-03-08 10:40:46 by simonm]
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 (->) :-)

25 years ago[project @ 1999-03-05 12:43:26 by kw217]
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[]

25 years ago[project @ 1999-03-05 12:02:33 by kw217]
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.

25 years ago[project @ 1999-03-05 10:21:22 by sof]
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.

25 years ago[project @ 1999-03-05 09:38:43 by sof]
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..

25 years ago[project @ 1999-03-04 17:52:08 by simonm]
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).

25 years ago[project @ 1999-03-04 13:26:48 by simonm]
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.

25 years ago[project @ 1999-03-04 13:07:48 by sof]
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

25 years ago[project @ 1999-03-04 10:56:51 by sof]
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.

25 years ago[project @ 1999-03-04 10:18:02 by sewardj]
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.

25 years ago[project @ 1999-03-03 19:28:23 by sof]
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

25 years ago[project @ 1999-03-03 19:27:23 by sof]
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

25 years ago[project @ 1999-03-03 19:26:31 by sof]
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.

25 years ago[project @ 1999-03-03 19:20:41 by sof]
sof [Wed, 3 Mar 1999 19:20:42 +0000 (19:20 +0000)]
[project @ 1999-03-03 19:20:41 by sof]
Win32 DLL tweaks

25 years ago[project @ 1999-03-03 19:20:15 by sof]
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.

25 years ago[project @ 1999-03-03 19:16:29 by sof]
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.

25 years ago[project @ 1999-03-03 19:11:43 by sof]
sof [Wed, 3 Mar 1999 19:11:43 +0000 (19:11 +0000)]
[project @ 1999-03-03 19:11:43 by sof]
StgNat64 --> StgWord64

25 years ago[project @ 1999-03-03 19:10:37 by sof]
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.

25 years ago[project @ 1999-03-03 19:07:39 by sof]
sof [Wed, 3 Mar 1999 19:07:39 +0000 (19:07 +0000)]
[project @ 1999-03-03 19:07:39 by sof]
StgNat* --> StgWord*

25 years ago[project @ 1999-03-03 19:05:55 by sof]
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

25 years ago[project @ 1999-03-03 19:04:56 by sof]
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.

25 years ago[project @ 1999-03-03 19:00:07 by sof]
sof [Wed, 3 Mar 1999 19:00:07 +0000 (19:00 +0000)]
[project @ 1999-03-03 19:00:07 by sof]
mingw32 tweaks

25 years ago[project @ 1999-03-03 18:58:53 by sof]
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.

25 years ago[project @ 1999-03-03 18:16:15 by sof]
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.

25 years ago[project @ 1999-03-03 17:41:13 by simonm]
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.

25 years ago[project @ 1999-03-03 17:22:11 by simonm]
simonm [Wed, 3 Mar 1999 17:22:11 +0000 (17:22 +0000)]
[project @ 1999-03-03 17:22:11 by simonm]
Nat --> Word

25 years ago[project @ 1999-03-03 17:17:05 by simonm]
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.

25 years ago[project @ 1999-03-03 16:05:21 by simonm]
simonm [Wed, 3 Mar 1999 16:05:21 +0000 (16:05 +0000)]
[project @ 1999-03-03 16:05:21 by simonm]
HPPA tweaks.

25 years ago[project @ 1999-03-02 20:23:37 by sof]
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

25 years ago[project @ 1999-03-02 20:16:16 by sof]
sof [Tue, 2 Mar 1999 20:16:16 +0000 (20:16 +0000)]
[project @ 1999-03-02 20:16:16 by sof]
doc tweaks

25 years ago[project @ 1999-03-02 20:14:00 by sof]
sof [Tue, 2 Mar 1999 20:14:02 +0000 (20:14 +0000)]
[project @ 1999-03-02 20:14:00 by sof]
mingw32 tweaks

25 years ago[project @ 1999-03-02 20:10:17 by sof]
sof [Tue, 2 Mar 1999 20:10:17 +0000 (20:10 +0000)]
[project @ 1999-03-02 20:10:17 by sof]
StgNat* --> StgWord*

25 years ago[project @ 1999-03-02 20:05:41 by sof]
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..

25 years ago[project @ 1999-03-02 20:04:03 by sof]
sof [Tue, 2 Mar 1999 20:04:04 +0000 (20:04 +0000)]
[project @ 1999-03-02 20:04:03 by sof]
mingw32 tweaks.

25 years ago[project @ 1999-03-02 20:01:55 by sof]
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

25 years ago[project @ 1999-03-02 20:00:50 by sof]
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.

25 years ago[project @ 1999-03-02 19:59:40 by sof]
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.

25 years ago[project @ 1999-03-02 19:52:24 by sof]
sof [Tue, 2 Mar 1999 19:52:24 +0000 (19:52 +0000)]
[project @ 1999-03-02 19:52:24 by sof]
StgNat64 --> StgWord64

25 years ago[project @ 1999-03-02 19:51:54 by sof]
sof [Tue, 2 Mar 1999 19:51:54 +0000 (19:51 +0000)]
[project @ 1999-03-02 19:51:54 by sof]
typo

25 years ago[project @ 1999-03-02 19:50:47 by sof]
sof [Tue, 2 Mar 1999 19:50:47 +0000 (19:50 +0000)]
[project @ 1999-03-02 19:50:47 by sof]
StgNat64 --> StgWord64

25 years ago[project @ 1999-03-02 19:50:12 by sof]
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

25 years ago[project @ 1999-03-02 19:44:07 by sof]
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*

25 years ago[project @ 1999-03-02 19:15:27 by sof]
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.

25 years ago[project @ 1999-03-02 19:10:07 by sof]
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..

25 years ago[project @ 1999-03-02 19:01:56 by sof]
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

25 years ago[project @ 1999-03-02 18:54:47 by sof]
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

25 years ago[project @ 1999-03-02 18:31:51 by sof]
sof [Tue, 2 Mar 1999 18:31:58 +0000 (18:31 +0000)]
[project @ 1999-03-02 18:31:51 by sof]
import list adjustments

25 years ago[project @ 1999-03-02 17:46:51 by sof]
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.

25 years ago[project @ 1999-03-02 17:18:27 by sof]
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.)

25 years ago[project @ 1999-03-02 17:12:54 by sof]
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'.

25 years ago[project @ 1999-03-02 16:44:26 by sof]
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.

25 years ago[project @ 1999-03-02 16:09:28 by simonm]
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.

25 years ago[project @ 1999-03-02 15:45:50 by sof]
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.

25 years ago[project @ 1999-03-02 15:43:27 by sof]
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.

25 years ago[project @ 1999-03-02 15:40:08 by sof]
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.

25 years ago[project @ 1999-03-02 14:34:33 by sof]
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.

25 years ago[project @ 1999-03-02 14:22:43 by sof]
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

25 years ago[project @ 1999-03-02 14:20:44 by sof]
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.

25 years ago[project @ 1999-03-02 11:46:28 by simonm]
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.

25 years ago[project @ 1999-03-02 11:11:18 by sof]
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.