ghc-hetmet.git
24 years ago[project @ 1999-07-15 09:58:23 by simonmar]
simonmar [Thu, 15 Jul 1999 09:58:23 +0000 (09:58 +0000)]
[project @ 1999-07-15 09:58:23 by simonmar]
No more RAWCPP, thank you.

24 years ago[project @ 1999-07-15 09:56:04 by simonmar]
simonmar [Thu, 15 Jul 1999 09:56:04 +0000 (09:56 +0000)]
[project @ 1999-07-15 09:56:04 by simonmar]
Use +RTS -S<file> rather than +RTS -s<file>, since the latter only
gives summary statistics now.

24 years ago[project @ 1999-07-15 09:51:52 by simonmar]
simonmar [Thu, 15 Jul 1999 09:51:52 +0000 (09:51 +0000)]
[project @ 1999-07-15 09:51:52 by simonmar]
A prime example of how an inconsistent .hi-boot file can really ruin
your day: the definition of CoreRules in CoreSyn.hi-boot was out of
sync with the real one, which meant that the compiler generated the
wrong code for a `seq` on something of type CoreRules.

24 years ago[project @ 1999-07-15 08:51:25 by simonmar]
simonmar [Thu, 15 Jul 1999 08:51:25 +0000 (08:51 +0000)]
[project @ 1999-07-15 08:51:25 by simonmar]
oops, forgot to commit this yesterday.

RAWCPP is now '$(CPP) -undef -traditional'.

24 years ago[project @ 1999-07-14 22:10:40 by simonpj]
simonpj [Wed, 14 Jul 1999 22:10:42 +0000 (22:10 +0000)]
[project @ 1999-07-14 22:10:40 by simonpj]
[Simon: this should fix that -funfolding-use-threshold0 lint bug]

[Kevin: have a look at WwLib.mkWwBodies.  Isn't it a thing of beauty?
Could you think about whether the CPR stuff could be cleaned
up a bit?  The strictness stuff is much shorter.]

This commit tidies up WwLib.mkWwBodies, fixing a couple of bugs.

* One bug showed up when CPR made a worker return an unboxed tuple,
  but the worker didn't have any other arguments.  The "add a void arg"
  hack needed to be generalised a bit.

* The other bug showed up when booting the compiler.  There's a long
  comment near splitProductType in WwLib.lhs that explains the problem.

24 years ago[project @ 1999-07-14 20:29:34 by panne]
panne [Wed, 14 Jul 1999 20:29:34 +0000 (20:29 +0000)]
[project @ 1999-07-14 20:29:34 by panne]
Enlarged heap for 2.10-compiled Happy on Alphas

24 years ago[project @ 1999-07-14 15:28:08 by simonmar]
simonmar [Wed, 14 Jul 1999 15:28:08 +0000 (15:28 +0000)]
[project @ 1999-07-14 15:28:08 by simonmar]
pre-4.03 didn't have __HASKELL98__, use something else.

24 years ago[project @ 1999-07-14 14:40:20 by simonpj]
simonpj [Wed, 14 Jul 1999 14:41:04 +0000 (14:41 +0000)]
[project @ 1999-07-14 14:40:20 by simonpj]
Main things:

* Add splitProductType_maybe to DataCon.lhs, with type
  splitProductType_maybe
:: Type  -- A product type, perhaps
-> Maybe (TyCon,  -- The type constructor
  [Type], -- Type args of the tycon
  DataCon, -- The data constructor
  [Type]) -- Its *representation* arg types

  Then use it in many places (e.g. worker-wrapper places) instead
  of a pile of junk

* Clean up various uses of dataConArgTys, which were plain wrong because
  they weren't passed the existential type arguments.  Most of these calls
  are eliminated by using splitProductType_maybe above.  I hope I correctly
  squashed the others. This fixes a bug that Meurig's programs showed up.

    module FailGHC (killSustainer) where
    import Weak
    import IOExts

    data Sustainer = forall a . Sustainer (IORef (Maybe a)) (IO ())

    killSustainer :: Sustainer -> IO ()
    killSustainer (Sustainer _ act) = act

  The above program used to kill the compiler.

* A fairly concerted attack on the Dreaded Space Leak.
- Add Type.seqType, CoreSyn.seqExpr, CoreSyn.seqRules

- Add some seq'ing when building Ids and IdInfos
These reduce the space usage a lot

- Add CoreSyn.coreBindsSize, which is pretty strict in the program,
and call it when we have -dshow-passes.

- Do not put the inlining in an Id that is being plugged into
the result-expression of the simplifier.  This cures
a the 'wedge' in the space profile for reasons I don't understand fully

  Together, these things reduce the max space usage when compiling PrelNum from
  17M to about 7Mbytes.

  I think there are now *too many* seqs, and they waste work, but I don't have
  time to find which ones.

  Furthermore, we aren't done. For some reason, some of the stuff allocated by
  the simplifier makes it through all during code generation and I don't see why.
  There's a should-be-unnecessary call to coreBindsSize in Main.main which
  zaps some, but not all of this space.

  -dshow-passes reduces space usage a bit, but I don't think it should really.

  All the measurements were made on a compiler compiled with profiling by
  GHC 3.03.    I hope they carry over to other builds!

* One trivial thing: changed all variables 'label' to 'lbl', becuase the
  former is a keyword with -fglagow-exts in GHC 3.03 (which I was compiling with).
  Something similar in StringBuffer.

24 years ago[project @ 1999-07-14 13:44:19 by simonmar]
simonmar [Wed, 14 Jul 1999 13:44:19 +0000 (13:44 +0000)]
[project @ 1999-07-14 13:44:19 by simonmar]
- Add findPtr() - searches through the heap for an occurrence of a
  given value.  Useful when debugging.

24 years ago[project @ 1999-07-14 13:39:46 by simonmar]
simonmar [Wed, 14 Jul 1999 13:42:28 +0000 (13:42 +0000)]
[project @ 1999-07-14 13:39:46 by simonmar]
Workaround bug in Linux's glibc 2.1:  don't fflush(stdout) before
writing to stderr.

24 years ago[project @ 1999-07-14 13:38:27 by simonmar]
simonmar [Wed, 14 Jul 1999 13:38:27 +0000 (13:38 +0000)]
[project @ 1999-07-14 13:38:27 by simonmar]
use shutdownHaskellAndExit().

24 years ago[project @ 1999-07-14 13:37:44 by simonmar]
simonmar [Wed, 14 Jul 1999 13:37:44 +0000 (13:37 +0000)]
[project @ 1999-07-14 13:37:44 by simonmar]
- add USE_REPORT_PRELUDE
- Directory and Time don't need -monly-3-regs any more
- remove a -fno-prune-tydecls

24 years ago[project @ 1999-07-14 13:35:49 by sewardj]
sewardj [Wed, 14 Jul 1999 13:35:53 +0000 (13:35 +0000)]
[project @ 1999-07-14 13:35:49 by sewardj]
Changed vars of the form _unused to zz_unused, since 3.02 doesn't understand
this convention.

24 years ago[project @ 1999-07-14 13:26:48 by simonmar]
simonmar [Wed, 14 Jul 1999 13:26:52 +0000 (13:26 +0000)]
[project @ 1999-07-14 13:26:48 by simonmar]
Don't attempt to discover the exact location of cpp, instead use 'gcc
-E'.  With the right combination of flags, it seems we can get the
same behaviour as calling cpp directly.

24 years ago[project @ 1999-07-14 13:23:51 by simonmar]
simonmar [Wed, 14 Jul 1999 13:23:51 +0000 (13:23 +0000)]
[project @ 1999-07-14 13:23:51 by simonmar]
Update to match CgUsages.hi-boot-5

24 years ago[project @ 1999-07-14 12:31:14 by simonmar]
simonmar [Wed, 14 Jul 1999 12:31:14 +0000 (12:31 +0000)]
[project @ 1999-07-14 12:31:14 by simonmar]
Recover the -funbox-strict-fields test.

24 years ago[project @ 1999-07-14 11:47:12 by simonmar]
simonmar [Wed, 14 Jul 1999 11:47:12 +0000 (11:47 +0000)]
[project @ 1999-07-14 11:47:12 by simonmar]
4.04

24 years ago[project @ 1999-07-14 11:46:36 by simonmar]
simonmar [Wed, 14 Jul 1999 11:46:36 +0000 (11:46 +0000)]
[project @ 1999-07-14 11:46:36 by simonmar]
4.04 changes.

24 years ago[project @ 1999-07-14 11:33:10 by simonmar]
simonmar [Wed, 14 Jul 1999 11:33:12 +0000 (11:33 +0000)]
[project @ 1999-07-14 11:33:10 by simonmar]
- add 4.04 release notes
- several other docfixes and markup fixes.

24 years ago[project @ 1999-07-14 11:16:43 by simonmar]
simonmar [Wed, 14 Jul 1999 11:16:43 +0000 (11:16 +0000)]
[project @ 1999-07-14 11:16:43 by simonmar]
link in NonTermination_static_closure.

24 years ago[project @ 1999-07-14 11:15:09 by simonmar]
simonmar [Wed, 14 Jul 1999 11:15:09 +0000 (11:15 +0000)]
[project @ 1999-07-14 11:15:09 by simonmar]
add NonTermination_closure.

24 years ago[project @ 1999-07-14 10:01:43 by simonmar]
simonmar [Wed, 14 Jul 1999 10:01:43 +0000 (10:01 +0000)]
[project @ 1999-07-14 10:01:43 by simonmar]
Fix my email address.

24 years ago[project @ 1999-07-14 08:41:21 by simonmar]
simonmar [Wed, 14 Jul 1999 08:41:21 +0000 (08:41 +0000)]
[project @ 1999-07-14 08:41:21 by simonmar]
Small typos from Wolfram Kahl.

24 years ago[project @ 1999-07-14 08:37:57 by simonmar]
simonmar [Wed, 14 Jul 1999 08:37:58 +0000 (08:37 +0000)]
[project @ 1999-07-14 08:37:57 by simonmar]
USE_REPORT_PRELUDE patches from Wolfram Kahl.

24 years ago[project @ 1999-07-14 08:33:38 by simonmar]
simonmar [Wed, 14 Jul 1999 08:33:38 +0000 (08:33 +0000)]
[project @ 1999-07-14 08:33:38 by simonmar]
Add NonTermination to the exception type.  Prints as "<<loop>>"
(better suggestions welcome).

24 years ago[project @ 1999-07-12 14:40:08 by simonmar]
simonmar [Mon, 12 Jul 1999 14:40:11 +0000 (14:40 +0000)]
[project @ 1999-07-12 14:40:08 by simonmar]
Keep the original name for non-exported record selectors and class
methods.

24 years ago[project @ 1999-07-12 10:43:10 by sof]
sof [Mon, 12 Jul 1999 10:43:13 +0000 (10:43 +0000)]
[project @ 1999-07-12 10:43:10 by sof]
Cygwin B19 compatibility fixes

24 years ago[project @ 1999-07-08 13:51:17 by sof]
sof [Thu, 8 Jul 1999 13:51:17 +0000 (13:51 +0000)]
[project @ 1999-07-08 13:51:17 by sof]
foreign export regression test

24 years ago[project @ 1999-07-08 13:46:25 by sof]
sof [Thu, 8 Jul 1999 13:46:27 +0000 (13:46 +0000)]
[project @ 1999-07-08 13:46:25 by sof]
A 'foreign export' (static) declaration doesn't bind a name but
simply adds an occurrence of a name.

24 years ago[project @ 1999-07-08 11:02:10 by simonpj]
simonpj [Thu, 8 Jul 1999 11:02:10 +0000 (11:02 +0000)]
[project @ 1999-07-08 11:02:10 by simonpj]
Fix shadowing bug in rule matcher (showed up in spectral/rewrite)

24 years ago[project @ 1999-07-08 08:10:52 by simonmar]
simonmar [Thu, 8 Jul 1999 08:10:52 +0000 (08:10 +0000)]
[project @ 1999-07-08 08:10:52 by simonmar]
Back out rev 1.30 - it broke a lot of things.

24 years ago[project @ 1999-07-07 15:28:19 by simonmar]
simonmar [Wed, 7 Jul 1999 15:28:19 +0000 (15:28 +0000)]
[project @ 1999-07-07 15:28:19 by simonmar]
Reduce ScrutConDiscount from 3 to 2.

24 years ago[project @ 1999-07-07 15:27:27 by simonmar]
simonmar [Wed, 7 Jul 1999 15:27:27 +0000 (15:27 +0000)]
[project @ 1999-07-07 15:27:27 by simonmar]
- charge 1 for a case expression

- give a discount of opt_UF_ScrutConDiscount each time a constructor
  is scrutinised

(previously a case expression was not charged for at all, and the
discount for a scrutinised constructor was (opt_UF_ScrutConDiscount *
tyconFamilySize).  In 4.02, a case expression was also charged
tyconFamilySize to balance the discount, but this had the disadvantage
of charging for alternatives which may not be present in the actual
case expression).

24 years ago[project @ 1999-07-07 11:22:13 by simonmar]
simonmar [Wed, 7 Jul 1999 11:22:13 +0000 (11:22 +0000)]
[project @ 1999-07-07 11:22:13 by simonmar]
Back out yesterday's change - needs more thought.

24 years ago[project @ 1999-07-06 16:45:31 by simonpj]
simonpj [Tue, 6 Jul 1999 16:46:12 +0000 (16:46 +0000)]
[project @ 1999-07-06 16:45:31 by simonpj]
All Simon's recent tuning changes.  Rough summary follows:

* Fix Kevin Atkinson's cant-find-instance bug.  Turns out that Rename.slurpSourceRefs
  needs to repeatedly call getImportedInstDecls, and then go back to slurping
  source-refs.  Comments with Rename.slurpSourceRefs.

* Add a case to Simplify.mkDupableAlt for the quite-common case where there's
  a very simple alternative, in which case there's no point in creating a
  join-point binding.

* Fix CoreUtils.exprOkForSpeculation so that it returns True of (==# a# b#).
  This lack meant that
case ==# a# b# of { True -> x; False -> x }
  was not simplifying

* Make float-out dump bindings at the top of a function argument, as
  at the top of a let(rec) rhs.  See notes with FloatOut.floatRhs

* Make the ArgOf case of mkDupableAlt generate a OneShot lambda.
  This gave a noticeable boost to spectral/boyer2

* Reduce the number of coerces, using worker/wrapper stuff.
  The main idea is in WwLib.mkWWcoerce.  The gloss is that we must do
  the w/w split even for small non-recursive things.  See notes with
  WorkWrap.tryWw.

* This further complicated getWorkerId, so I finally bit the bullet and
  make the workerInfo field of the IdInfo work properly, including
  under substitutions.  Death to getWorkerId.  Kevin Glynn will be happy.

* Make all lambdas over realWorldStatePrimTy
  into one-shot lambdas.  This is a GROSS HACK.

* Also make the occurrence analyser aware of one-shot lambdas.

* Make various Prelude things into INLINE, so that foldr doesn't
  get inlined in their body, so that the caller gets the benefit
  of fusion.  Notably in PrelArr.lhs.

24 years ago[project @ 1999-07-06 16:40:22 by sewardj]
sewardj [Tue, 6 Jul 1999 16:40:28 +0000 (16:40 +0000)]
[project @ 1999-07-06 16:40:22 by sewardj]
Assembler/Disassembler: handle and print calls to compiled code
Evaluator: return to scheduler when entering unknown closure
StgCRun: debugging trace in miniinterpreter (temporary)
Updates: fix normal and vectored returns to Hugs

24 years ago[project @ 1999-07-06 16:17:39 by sewardj]
sewardj [Tue, 6 Jul 1999 16:17:40 +0000 (16:17 +0000)]
[project @ 1999-07-06 16:17:39 by sewardj]
Make vectored returns to Hugs work, and make IS_CODE_PTR etc work
for dynamically loaded objects.

24 years ago[project @ 1999-07-06 15:33:23 by simonmar]
simonmar [Tue, 6 Jul 1999 15:33:23 +0000 (15:33 +0000)]
[project @ 1999-07-06 15:33:23 by simonmar]
Should really call OnExitHook() in shutdownHaskellAndExit().

24 years ago[project @ 1999-07-06 15:24:36 by sewardj]
sewardj [Tue, 6 Jul 1999 15:24:45 +0000 (15:24 +0000)]
[project @ 1999-07-06 15:24:36 by sewardj]
Mods to enable interworking with simple compiled code.  Supports fns and
data decls.  Classes, instances, primops, don't work yet.
Unregisterised, mininterpreted x86-ELF is the supported object format.
GC appears to work correctly.

24 years ago[project @ 1999-07-06 15:24:35 by simonmar]
simonmar [Tue, 6 Jul 1999 15:24:35 +0000 (15:24 +0000)]
[project @ 1999-07-06 15:24:35 by simonmar]
we're on to 4.04 now.

24 years ago[project @ 1999-07-06 15:24:35 by sewardj]
sewardj [Tue, 6 Jul 1999 15:24:35 +0000 (15:24 +0000)]
[project @ 1999-07-06 15:24:35 by sewardj]
Mods to enable interworking with simple compiled code.  Supports fns and
data decls.  Classes, instances, primops, don't work yet.
Unregisterised, mininterpreted x86-ELF is the supported object format.
GC appears to work correctly.

24 years ago[project @ 1999-07-06 15:24:01 by simonmar]
simonmar [Tue, 6 Jul 1999 15:24:01 +0000 (15:24 +0000)]
[project @ 1999-07-06 15:24:01 by simonmar]
Add a note about @raiseInThread@.

24 years ago[project @ 1999-07-06 15:23:17 by simonmar]
simonmar [Tue, 6 Jul 1999 15:23:17 +0000 (15:23 +0000)]
[project @ 1999-07-06 15:23:17 by simonmar]
-ddump-rdr is now -ddump-parsed

24 years ago[project @ 1999-07-06 15:21:57 by simonmar]
simonmar [Tue, 6 Jul 1999 15:21:57 +0000 (15:21 +0000)]
[project @ 1999-07-06 15:21:57 by simonmar]
only pop explicit layout contexts with '}'.

24 years ago[project @ 1999-07-06 15:21:01 by simonmar]
simonmar [Tue, 6 Jul 1999 15:21:01 +0000 (15:21 +0000)]
[project @ 1999-07-06 15:21:01 by simonmar]
print the compiler version on the same line as the compilee version;
looks a bit tidier.

24 years ago[project @ 1999-07-06 15:20:59 by sewardj]
sewardj [Tue, 6 Jul 1999 15:20:59 +0000 (15:20 +0000)]
[project @ 1999-07-06 15:20:59 by sewardj]
Header file for an alternative bignum implementation, which is in
interpreter/sainteger.c.  Currently used by STGHugs.
Temporary -- until we resolve GMP licensing issues.

24 years ago[project @ 1999-07-06 15:19:41 by simonmar]
simonmar [Tue, 6 Jul 1999 15:19:41 +0000 (15:19 +0000)]
[project @ 1999-07-06 15:19:41 by simonmar]
Re-jig some stuff in here so it doesn't look like you need so many
tools to build GHC.

24 years ago[project @ 1999-07-06 15:12:47 by sof]
sof [Tue, 6 Jul 1999 15:12:47 +0000 (15:12 +0000)]
[project @ 1999-07-06 15:12:47 by sof]
Added maxPrecedence

24 years ago[project @ 1999-07-06 15:05:49 by sof]
sof [Tue, 6 Jul 1999 15:05:49 +0000 (15:05 +0000)]
[project @ 1999-07-06 15:05:49 by sof]
Added needed includes of SchedAPI.h

24 years ago[project @ 1999-07-06 13:26:38 by keithw]
keithw [Tue, 6 Jul 1999 13:26:38 +0000 (13:26 +0000)]
[project @ 1999-07-06 13:26:38 by keithw]
Whoops, add index terms too.

24 years ago[project @ 1999-07-06 13:25:09 by keithw]
keithw [Tue, 6 Jul 1999 13:25:11 +0000 (13:25 +0000)]
[project @ 1999-07-06 13:25:09 by keithw]
Add -ddump-most and -ddump-all, with the obvious meanings.

24 years ago[project @ 1999-07-06 09:42:38 by sof]
sof [Tue, 6 Jul 1999 09:42:39 +0000 (09:42 +0000)]
[project @ 1999-07-06 09:42:38 by sof]
Redo previous commit to cut down on the use of COMPILING_RTS where
possible - SchedAPI.h is now an RTS internal header file which
RtsAPI.h no longer includes.

24 years ago[project @ 1999-07-06 09:19:47 by sof]
sof [Tue, 6 Jul 1999 09:19:47 +0000 (09:19 +0000)]
[project @ 1999-07-06 09:19:47 by sof]
Don't include RtsAPI.h when compiling RTS.

24 years ago[project @ 1999-07-05 19:26:42 by sof]
sof [Mon, 5 Jul 1999 19:26:42 +0000 (19:26 +0000)]
[project @ 1999-07-05 19:26:42 by sof]
Temporary workaround for problem which caused the following program

  main = putStrLn ("aa" ++ IOExts.trace "bb" "cc")

to deadlock - when the (untouched) stderr is evaluated (which
IOExts.trace forces), it will touch stdout (see code for details of
why), but it has already been locked by putStrLn. Boom - game over.

This temporary 'fix' is, to put it kindly, in the fancy-footwork
category as it doesn't solve the problem, but merely turns it on its
head. Instead of stderr depending on stdout, stdout now depends on
stderr, so the following program will deadlock

  main = hPutStrLn stderr ("aa" ++ myTrace "bb" "cc")

  myTrace msg v = unsafePerformIO $ do
     putStrLn msg
     return v

The 'theory' is that this is far less likely to occur in practice than
the other way around.

The next step / real solution would be to give up the lock on an
output Handle while filling up its output buffer. However, that
requires ripping out / re-org'ing a fair bit of buffer management
code, which I'll delay doing.

24 years ago[project @ 1999-07-05 18:53:53 by sof]
sof [Mon, 5 Jul 1999 18:53:53 +0000 (18:53 +0000)]
[project @ 1999-07-05 18:53:53 by sof]
Remove -#include "RtsAPI.h" - you now get it for free.

24 years ago[project @ 1999-07-05 17:25:23 by sof]
sof [Mon, 5 Jul 1999 17:25:23 +0000 (17:25 +0000)]
[project @ 1999-07-05 17:25:23 by sof]
Stg.h contains all the defs and protos that are visible when compiling
.hc code (==> .hs code). Augment this set with the externally visible
RTS API.

24 years ago[project @ 1999-07-05 17:06:21 by sof]
sof [Mon, 5 Jul 1999 17:06:21 +0000 (17:06 +0000)]
[project @ 1999-07-05 17:06:21 by sof]
Tidied up the handling of the code that emits the precedence level
predicates that gets used in applications of showParen and readParen.

24 years ago[project @ 1999-07-05 17:02:42 by sof]
sof [Mon, 5 Jul 1999 17:02:42 +0000 (17:02 +0000)]
[project @ 1999-07-05 17:02:42 by sof]
Two new Dark Corner regression tests:

- testing the derived Show&Read instances for constructors with
  a field label that is a varsym rather than a varid.
- check that the default fixity & assoc of an operator is 'infixl 9'.

24 years ago[project @ 1999-07-05 16:55:19 by sof]
sof [Mon, 5 Jul 1999 16:55:19 +0000 (16:55 +0000)]
[project @ 1999-07-05 16:55:19 by sof]
New option, -fail, to indicate failure (whatever the return code).

24 years ago[project @ 1999-07-05 15:30:25 by simonpj]
simonpj [Mon, 5 Jul 1999 15:30:27 +0000 (15:30 +0000)]
[project @ 1999-07-05 15:30:25 by simonpj]
Make sure that instance gates have their home modules
loaded by RnIfaces.getImportedInstDecls.  This was causing
Kevin Atkinson's missing-instance bug.

24 years ago[project @ 1999-07-05 14:47:06 by sof]
sof [Mon, 5 Jul 1999 14:47:06 +0000 (14:47 +0000)]
[project @ 1999-07-05 14:47:06 by sof]
* If a field label is a 'varsym', wrap parens around it when
  Show'ing and Read'ing it back in.

* If there's no fixity decl for a 'consym', the default is
  for it to be left-assoc.

24 years ago[project @ 1999-07-03 19:15:26 by sof]
sof [Sat, 3 Jul 1999 19:15:27 +0000 (19:15 +0000)]
[project @ 1999-07-03 19:15:26 by sof]
Don't use WinSock under cygwin

24 years ago[project @ 1999-07-03 18:45:04 by sof]
sof [Sat, 3 Jul 1999 18:45:04 +0000 (18:45 +0000)]
[project @ 1999-07-03 18:45:04 by sof]
Don't compile in WinSock support under cygwin

24 years ago[project @ 1999-07-03 18:43:46 by sof]
sof [Sat, 3 Jul 1999 18:43:46 +0000 (18:43 +0000)]
[project @ 1999-07-03 18:43:46 by sof]
exitWith: don't call exit(), but use the RTS' shutdownHaskellAndExit()

24 years ago[project @ 1999-07-03 18:39:40 by sof]
sof [Sat, 3 Jul 1999 18:39:41 +0000 (18:39 +0000)]
[project @ 1999-07-03 18:39:40 by sof]
New RTS entry point, shutdownHaskellAndExit(), which does what the name
implies - used when you want to exit from within Haskell code (e.g.,
System.exitWith.)

24 years ago[project @ 1999-07-02 09:31:54 by simonmar]
simonmar [Fri, 2 Jul 1999 09:31:54 +0000 (09:31 +0000)]
[project @ 1999-07-02 09:31:54 by simonmar]
Remove final fflush() - it seems to be incompatible with recent
releases of Linux's libc implementation, and we don't use stdio in any
case.

24 years ago[project @ 1999-07-01 13:48:22 by panne]
panne [Thu, 1 Jul 1999 13:48:22 +0000 (13:48 +0000)]
[project @ 1999-07-01 13:48:22 by panne]
The allocator for mega groups now checks if consecutive megablocks on
the free list are contiguous in memory. The omission of this check
caused all kinds of funny runtime errors and took away at least five
happy years of my life...  :-{

24 years ago[project @ 1999-07-01 13:12:09 by simonmar]
simonmar [Thu, 1 Jul 1999 13:12:09 +0000 (13:12 +0000)]
[project @ 1999-07-01 13:12:09 by simonmar]
8-bit clarity

24 years ago[project @ 1999-07-01 12:30:06 by simonmar]
simonmar [Thu, 1 Jul 1999 12:30:06 +0000 (12:30 +0000)]
[project @ 1999-07-01 12:30:06 by simonmar]
Make this more Haskell 1.3-insensitive

24 years ago[project @ 1999-06-30 11:29:53 by simonmar]
simonmar [Wed, 30 Jun 1999 11:29:53 +0000 (11:29 +0000)]
[project @ 1999-06-30 11:29:53 by simonmar]
Allow the following (not strictly H98) construct:

    do
blah
e $ do
blah

This doesn't break any existing code, just allows more programs
through.  Only the semantics for layout after a 'do' have changed.

24 years ago[project @ 1999-06-30 09:49:55 by simonpj]
simonpj [Wed, 30 Jun 1999 09:49:55 +0000 (09:49 +0000)]
[project @ 1999-06-30 09:49:55 by simonpj]
Add a test for deriving Show (f (f a)); makes Hugs hang

24 years ago[project @ 1999-06-30 09:43:57 by simonpj]
simonpj [Wed, 30 Jun 1999 09:43:57 +0000 (09:43 +0000)]
[project @ 1999-06-30 09:43:57 by simonpj]
Make the r.u.n message happen only with -DDEBUG

24 years ago[project @ 1999-06-29 14:18:14 by simonmar]
simonmar [Tue, 29 Jun 1999 14:18:14 +0000 (14:18 +0000)]
[project @ 1999-06-29 14:18:14 by simonmar]
Back out a change that creeped in by mistake.

24 years ago[project @ 1999-06-29 14:15:32 by simonmar]
simonmar [Tue, 29 Jun 1999 14:15:32 +0000 (14:15 +0000)]
[project @ 1999-06-29 14:15:32 by simonmar]
Clean out objects generated from assembly files.

24 years ago[project @ 1999-06-29 13:04:38 by panne]
panne [Tue, 29 Jun 1999 13:06:45 +0000 (13:06 +0000)]
[project @ 1999-06-29 13:04:38 by panne]
Made the compilation of the RTS almost warning-free and improved the
output of some "barf"s in the garbage collector . This is part of my
epic crusade against "scavenge_mut_list: strange object?"... :-(

24 years ago[project @ 1999-06-29 12:00:42 by simonmar]
simonmar [Tue, 29 Jun 1999 12:00:42 +0000 (12:00 +0000)]
[project @ 1999-06-29 12:00:42 by simonmar]
Suppress warnings by making some static symbols extern.  Sigh.

24 years ago[project @ 1999-06-29 08:40:32 by kglynn]
kglynn [Tue, 29 Jun 1999 08:40:32 +0000 (08:40 +0000)]
[project @ 1999-06-29 08:40:32 by kglynn]
Someone with a big stick told me to remove -ddump-cpranalyse
Use -ddump-cpranal instead.

24 years ago[project @ 1999-06-29 06:26:37 by kglynn]
kglynn [Tue, 29 Jun 1999 06:26:38 +0000 (06:26 +0000)]
[project @ 1999-06-29 06:26:37 by kglynn]
CPR Analysis Mark 2. Slightly more elegant,  and (I believe) now
copes correctly with references to CAFS and non-top level function
bindings.

24 years ago[project @ 1999-06-29 05:13:30 by kglynn]
kglynn [Tue, 29 Jun 1999 05:13:30 +0000 (05:13 +0000)]
[project @ 1999-06-29 05:13:30 by kglynn]
(keving)

Add dump-cpranal to agree with the users_guide.  dump-cpranalyse will
still work but is deprecated and could be removed by someone with
a bigger stick than me.

24 years ago[project @ 1999-06-28 16:42:22 by simonmar]
simonmar [Mon, 28 Jun 1999 16:42:24 +0000 (16:42 +0000)]
[project @ 1999-06-28 16:42:22 by simonmar]
Back out changes for "specialid"s.  It didn't work this way: there was
a conflict in the grammar.

24 years ago[project @ 1999-06-28 16:40:18 by simonpj]
simonpj [Mon, 28 Jun 1999 16:40:18 +0000 (16:40 +0000)]
[project @ 1999-06-28 16:40:18 by simonpj]
Add explanatory comments

24 years ago[project @ 1999-06-28 16:35:56 by simonpj]
simonpj [Mon, 28 Jun 1999 16:35:56 +0000 (16:35 +0000)]
[project @ 1999-06-28 16:35:56 by simonpj]
Fix SetLevels so that it does not clone top-level bindings, but it
*does* clone bindings that are destined for the top level.

The global invariant is that the top level bindings are always
unique, and never cloned.

24 years ago[project @ 1999-06-28 16:33:17 by simonpj]
simonpj [Mon, 28 Jun 1999 16:33:23 +0000 (16:33 +0000)]
[project @ 1999-06-28 16:33:17 by simonpj]
Some renamer fixes

* Correct the defn of Rename.isOrphanRule (caused a Sergey bug)

* Tidy up the Rename.implicitFVs stuff

24 years ago[project @ 1999-06-28 16:32:00 by simonpj]
simonpj [Mon, 28 Jun 1999 16:32:00 +0000 (16:32 +0000)]
[project @ 1999-06-28 16:32:00 by simonpj]
Propagate changes for tcSimplifyToDicts

24 years ago[project @ 1999-06-28 16:31:09 by simonpj]
simonpj [Mon, 28 Jun 1999 16:31:09 +0000 (16:31 +0000)]
[project @ 1999-06-28 16:31:09 by simonpj]
Reduce renamer warnings

24 years ago[project @ 1999-06-28 16:29:45 by simonpj]
simonpj [Mon, 28 Jun 1999 16:29:49 +0000 (16:29 +0000)]
[project @ 1999-06-28 16:29:45 by simonpj]
* Add Type.repType

* Re-express splitRepTyConApp_maybe using repType

* Use the new repType in Core2Stg

The bug was that we ended up with a binding like
let x = /\a -> 3# +# y
in ...
and this should turn into an STG case, but the big lambda
fooled the core-to-STG pass

24 years ago[project @ 1999-06-28 16:27:27 by simonpj]
simonpj [Mon, 28 Jun 1999 16:27:30 +0000 (16:27 +0000)]
[project @ 1999-06-28 16:27:27 by simonpj]
Improve common sub-expression stuff
- better hash function
- add Const.isBoxedDataCon, and use it in CSE
- don't CSE for nullary constructors

24 years ago[project @ 1999-06-28 16:23:28 by simonpj]
simonpj [Mon, 28 Jun 1999 16:23:28 +0000 (16:23 +0000)]
[project @ 1999-06-28 16:23:28 by simonpj]
Fix lost specialisations.  There were two problems

{-# SPECIALISE f :: Int -> Rational #-}
fromIntegral =  fromInteger . toInteger

This generates

fromIntegral_spec = fromIntegral d

for some suitable dictionary d.  But since fromIntegral is small,
it got inlined into fromIntegral_spec, thus losing the specialised
call (fromIntegral d) that was the whole raison d'etre of fromIntegral_spec.
Haskish solution: add an inlne pragma for the _spec things:

fromIntegral_spec = _inline_me (fromIntegral d)

Now we won't inline inside.  But this showed up a related problem.  The
typechecker tries to common up overloaded things, so it actually generates

m = fromIntegral d
fromIntegral_spec = _inline_me m

which is pretty stupid.  Using tcSimplifyToDicts (instead of tcSimplify)
in TcBinds.tcSpecSigs fixes this.

24 years ago[project @ 1999-06-28 15:43:12 by simonmar]
simonmar [Mon, 28 Jun 1999 15:43:12 +0000 (15:43 +0000)]
[project @ 1999-06-28 15:43:12 by simonmar]
a couple more weird cases for lexing of qualified names.

24 years ago[project @ 1999-06-28 15:42:33 by simonmar]
simonmar [Mon, 28 Jun 1999 15:42:35 +0000 (15:42 +0000)]
[project @ 1999-06-28 15:42:33 by simonmar]
Fix some pretty subtle bugs in the lexing of qualified names.

24 years ago[project @ 1999-06-28 15:16:59 by simonmar]
simonmar [Mon, 28 Jun 1999 15:16:59 +0000 (15:16 +0000)]
[project @ 1999-06-28 15:16:59 by simonmar]
writeHandle has been removed.

24 years ago[project @ 1999-06-28 12:15:57 by simonmar]
simonmar [Mon, 28 Jun 1999 12:15:57 +0000 (12:15 +0000)]
[project @ 1999-06-28 12:15:57 by simonmar]
Move -fwarn-unused-{binds,matches} back into -W (two votes for, one
against).

24 years ago[project @ 1999-06-28 10:41:06 by simonmar]
simonmar [Mon, 28 Jun 1999 10:41:06 +0000 (10:41 +0000)]
[project @ 1999-06-28 10:41:06 by simonmar]
nit-picking lexical tests for M.<reservedid> and M.<specialid>

24 years ago[project @ 1999-06-28 10:04:18 by simonmar]
simonmar [Mon, 28 Jun 1999 10:04:18 +0000 (10:04 +0000)]
[project @ 1999-06-28 10:04:18 by simonmar]
Jump to the join point when returning a new constructor to a bind
default.  Fixes:  recent panic in mkStaticAlgReturnCode.

24 years ago[project @ 1999-06-28 10:01:04 by simonmar]
simonmar [Mon, 28 Jun 1999 10:01:04 +0000 (10:01 +0000)]
[project @ 1999-06-28 10:01:04 by simonmar]
Don't treat GHC extension keywords as such when recognising qualified
varids.  This is a quick fix for the bug that M.label isn't recognised
as a qvarid with -fglasgow-exts on.

24 years ago[project @ 1999-06-28 08:27:25 by simonmar]
simonmar [Mon, 28 Jun 1999 08:27:25 +0000 (08:27 +0000)]
[project @ 1999-06-28 08:27:25 by simonmar]
Don't attempt to close stdin or stdout.  From Kevin Atkinson
<kevinatk@home.com>.

24 years ago[project @ 1999-06-25 16:52:48 by sof]
sof [Fri, 25 Jun 1999 16:52:48 +0000 (16:52 +0000)]
[project @ 1999-06-25 16:52:48 by sof]
Document the SocketPrim.PortNumber type

24 years ago[project @ 1999-06-25 14:38:54 by simonmar]
simonmar [Fri, 25 Jun 1999 14:38:54 +0000 (14:38 +0000)]
[project @ 1999-06-25 14:38:54 by simonmar]
'do' expressions must have a non-empty list of statements.

24 years ago[project @ 1999-06-25 14:10:03 by simonmar]
simonmar [Fri, 25 Jun 1999 14:10:04 +0000 (14:10 +0000)]
[project @ 1999-06-25 14:10:03 by simonmar]
Fix some race holes in the handle locking code, and clean it up a little.

24 years ago[project @ 1999-06-25 12:26:27 by keithw]
keithw [Fri, 25 Jun 1999 12:26:27 +0000 (12:26 +0000)]
[project @ 1999-06-25 12:26:27 by keithw]
Fix `defined but not used' warning to omit *all* identifiers beginning
with underscore, not just top-level ones, following Haskell report.