ghc-hetmet.git
22 years ago[project @ 2001-11-06 05:08:52 by chak]
chak [Tue, 6 Nov 2001 05:08:52 +0000 (05:08 +0000)]
[project @ 2001-11-06 05:08:52 by chak]
* added SPJ to authors list and bumped the version number

* documented the buildCoreToDo story and related issues

22 years ago[project @ 2001-11-05 16:45:02 by simonpj]
simonpj [Mon, 5 Nov 2001 16:45:02 +0000 (16:45 +0000)]
[project @ 2001-11-05 16:45:02 by simonpj]
Wibble to eta reduction

22 years ago[project @ 2001-11-05 14:16:48 by simonpj]
simonpj [Mon, 5 Nov 2001 14:16:48 +0000 (14:16 +0000)]
[project @ 2001-11-05 14:16:48 by simonpj]
Wibbles for scoped type variables

22 years ago[project @ 2001-11-05 14:15:53 by simonpj]
simonpj [Mon, 5 Nov 2001 14:15:53 +0000 (14:15 +0000)]
[project @ 2001-11-05 14:15:53 by simonpj]
Tidy up activation pragmas

22 years ago[project @ 2001-11-05 14:08:28 by chak]
chak [Mon, 5 Nov 2001 14:08:28 +0000 (14:08 +0000)]
[project @ 2001-11-05 14:08:28 by chak]
Activation phase in a __R pragma must be in square brackets.

22 years ago[project @ 2001-11-05 05:12:55 by sof]
sof [Mon, 5 Nov 2001 05:12:55 +0000 (05:12 +0000)]
[project @ 2001-11-05 05:12:55 by sof]
merge revision 1.32.4.2 (ghc-5-02-branch)

  TIC_TO_DOUBLE --> TICK_TO_DOUBLE

22 years ago[project @ 2001-11-03 01:44:04 by sof]
sof [Sat, 3 Nov 2001 01:44:04 +0000 (01:44 +0000)]
[project @ 2001-11-03 01:44:04 by sof]
mingw32: -#include process.h to bring _getpid() proto into scope when
compiling main/SysTools.lhs

22 years ago[project @ 2001-11-03 01:30:42 by sof]
sof [Sat, 3 Nov 2001 01:30:42 +0000 (01:30 +0000)]
[project @ 2001-11-03 01:30:42 by sof]
main: in both exception handlers, explicitly flush stdout before
      emitting bytes onto stderr, since the two aren't connected
      any longer.

22 years ago[project @ 2001-11-03 00:33:24 by sof]
sof [Sat, 3 Nov 2001 00:33:24 +0000 (00:33 +0000)]
[project @ 2001-11-03 00:33:24 by sof]
Removed 'paren' and 'brack' helpers; use Outputable / Pretty equivalents
instead.

22 years ago[project @ 2001-11-03 00:29:13 by sof]
sof [Sat, 3 Nov 2001 00:29:13 +0000 (00:29 +0000)]
[project @ 2001-11-03 00:29:13 by sof]
mingw32: #include process.h to bring _getpid() proto into scope.

22 years ago[project @ 2001-11-02 14:40:24 by simonpj]
simonpj [Fri, 2 Nov 2001 14:40:24 +0000 (14:40 +0000)]
[project @ 2001-11-02 14:40:24 by simonpj]
Fix a STG lint bug

22 years ago[project @ 2001-11-02 11:15:00 by simonmar]
simonmar [Fri, 2 Nov 2001 11:15:00 +0000 (11:15 +0000)]
[project @ 2001-11-02 11:15:00 by simonmar]
Add a couple of missing TICK_TO_DBL()s.

Noticed by: Nicholas Nethercote <njn25@cam.ac.uk>

22 years ago[project @ 2001-11-02 10:35:14 by simonpj]
simonpj [Fri, 2 Nov 2001 10:35:14 +0000 (10:35 +0000)]
[project @ 2001-11-02 10:35:14 by simonpj]
Stingy -> thrifty

22 years ago[project @ 2001-11-02 10:19:24 by simonpj]
simonpj [Fri, 2 Nov 2001 10:19:24 +0000 (10:19 +0000)]
[project @ 2001-11-02 10:19:24 by simonpj]
wibble

22 years ago[project @ 2001-11-02 09:50:32 by simonpj]
simonpj [Fri, 2 Nov 2001 09:50:32 +0000 (09:50 +0000)]
[project @ 2001-11-02 09:50:32 by simonpj]
Add missing cases to pp_origin; MERGE TO STABLE

22 years ago[project @ 2001-11-01 13:20:42 by simonpj]
simonpj [Thu, 1 Nov 2001 13:20:42 +0000 (13:20 +0000)]
[project @ 2001-11-01 13:20:42 by simonpj]
wibble

22 years ago[project @ 2001-11-01 13:20:05 by simonpj]
simonpj [Thu, 1 Nov 2001 13:20:06 +0000 (13:20 +0000)]
[project @ 2001-11-01 13:20:05 by simonpj]
---------------------------------------
Fix a unboxed-binding bug in SpecConstr
---------------------------------------

[HEAD only]

This fixes a rather obscure bug in the constructor
specialiser discovered by Ralf Hinze.  It was
generating a specialised version of the function
with no arguments --- and the function returned an
unboxed type.

Solution: same as for worker-wrapper; add a dummy
argument.

Several files are affected because I added
CoreUtils.mkPiTypes, as a useful helper function.

22 years ago[project @ 2001-11-01 12:07:09 by simonpj]
simonpj [Thu, 1 Nov 2001 12:07:09 +0000 (12:07 +0000)]
[project @ 2001-11-01 12:07:09 by simonpj]
Correct the zero-arg stuff in worker/wrapper generation

22 years ago[project @ 2001-11-01 10:33:58 by simonpj]
simonpj [Thu, 1 Nov 2001 10:33:58 +0000 (10:33 +0000)]
[project @ 2001-11-01 10:33:58 by simonpj]
----------------------------------
Fix a bug in Simplify.mkDupableAlt
----------------------------------

[This is the HEAD commit; I've fixed
 the branch separately.]

This fixes a funResultTy panic that Koen encountered.

The reason was that the simplifier was doing a
case-of-case where the result had a polymorphic type.
This in turn showed up because of a newtype (now
transparent) with a forall inside it.

The fix is very easy; can't think how I got it wrong
in the first place.

22 years ago[project @ 2001-11-01 09:50:53 by simonpj]
simonpj [Thu, 1 Nov 2001 09:50:53 +0000 (09:50 +0000)]
[project @ 2001-11-01 09:50:53 by simonpj]
Add missing import of dropList for mingw32 build

22 years ago[project @ 2001-10-31 17:04:45 by rrt]
rrt [Wed, 31 Oct 2001 17:04:45 +0000 (17:04 +0000)]
[project @ 2001-10-31 17:04:45 by rrt]
Many changes, presumably by Don.

22 years ago[project @ 2001-10-31 17:00:49 by rrt]
rrt [Wed, 31 Oct 2001 17:03:12 +0000 (17:03 +0000)]
[project @ 2001-10-31 17:00:49 by rrt]
Beginnings of .NET Integer support.

22 years ago[project @ 2001-10-31 16:38:55 by rrt]
rrt [Wed, 31 Oct 2001 16:38:55 +0000 (16:38 +0000)]
[project @ 2001-10-31 16:38:55 by rrt]
Beginnings of .NET Integer support.

22 years ago[project @ 2001-10-31 16:24:43 by simonpj]
simonpj [Wed, 31 Oct 2001 16:24:43 +0000 (16:24 +0000)]
[project @ 2001-10-31 16:24:43 by simonpj]
Document scoped type variables

22 years ago[project @ 2001-10-31 16:17:59 by simonpj]
simonpj [Wed, 31 Oct 2001 16:17:59 +0000 (16:17 +0000)]
[project @ 2001-10-31 16:17:59 by simonpj]
Add hi-boot files for the new knot

22 years ago[project @ 2001-10-31 15:22:53 by simonpj]
simonpj [Wed, 31 Oct 2001 15:22:55 +0000 (15:22 +0000)]
[project @ 2001-10-31 15:22:53 by simonpj]
------------------------------------------
Improved handling of scoped type variables
------------------------------------------

The main effect of this commit is to allow scoped type variables
in pattern bindings, thus

(x::a, y::b) = e

This was illegal, but now it's ok.  a and b have the same scope
as x and y.

On the way I beefed up the info inside a type variable
(TcType.TyVarDetails; c.f. IdInfo.GlobalIdDetails) which
helps to improve error messages. Hence the wide ranging changes.
Pity about the extra loop from Var to TcType, but can't be helped.

22 years ago[project @ 2001-10-31 14:52:08 by simonpj]
simonpj [Wed, 31 Oct 2001 14:52:08 +0000 (14:52 +0000)]
[project @ 2001-10-31 14:52:08 by simonpj]
1. Correct the handling of selectors for
   newtypes with polymorphic fields

2. Make certain that trivial constructor wrappers get inlined

22 years ago[project @ 2001-10-31 14:38:00 by simonmar]
simonmar [Wed, 31 Oct 2001 14:38:00 +0000 (14:38 +0000)]
[project @ 2001-10-31 14:38:00 by simonmar]
Add missing MUT_CONS case (reported by Andy Cheadle)

22 years ago[project @ 2001-10-31 12:51:08 by simonmar]
simonmar [Wed, 31 Oct 2001 12:51:08 +0000 (12:51 +0000)]
[project @ 2001-10-31 12:51:08 by simonmar]
Load the files given on the command line a bit later, and catch any
exceptions so that errors while loading these files don't cause GHCi
to exit completely.

22 years ago[project @ 2001-10-31 12:26:17 by simonmar]
simonmar [Wed, 31 Oct 2001 12:26:17 +0000 (12:26 +0000)]
[project @ 2001-10-31 12:26:17 by simonmar]
Handle completely empty files without crashing in slurpFileExpandTabs.

22 years ago[project @ 2001-10-31 11:37:14 by rrt]
rrt [Wed, 31 Oct 2001 11:37:14 +0000 (11:37 +0000)]
[project @ 2001-10-31 11:37:14 by rrt]
The new story where InstallShield just crawls over a make install tree,
rather than having to specify the directory layout by hand. Some tweaks to
the way that external programs are installed, so that they too can be just
crawled over.

22 years ago[project @ 2001-10-31 10:34:29 by simonmar]
simonmar [Wed, 31 Oct 2001 10:34:29 +0000 (10:34 +0000)]
[project @ 2001-10-31 10:34:29 by simonmar]
Fix a problem when a Haskell process is suspended/resumed using shell
job control in Unix.  The shell tends to put stdin back into blocking
mode before resuming the process, so we have to catch SIGCONT and put
it back into O_NONBLOCK.

Also:

  - fix a bug in the scheduler: reverse the order of the check
    for pending signals and the call to awaitEvent to block on I/O.

  - do a style sweep in Signals.c

22 years ago[project @ 2001-10-31 10:30:29 by simonmar]
simonmar [Wed, 31 Oct 2001 10:30:29 +0000 (10:30 +0000)]
[project @ 2001-10-31 10:30:29 by simonmar]
Add setNonBlockingFd(), for use in the SIGCONT handler in Signals.c.

22 years ago[project @ 2001-10-30 19:02:26 by rrt]
rrt [Tue, 30 Oct 2001 19:02:26 +0000 (19:02 +0000)]
[project @ 2001-10-30 19:02:26 by rrt]
Fix typo.

22 years ago[project @ 2001-10-30 19:01:43 by rrt]
rrt [Tue, 30 Oct 2001 19:01:43 +0000 (19:01 +0000)]
[project @ 2001-10-30 19:01:43 by rrt]
Made db2pdf use jadetex|dvips|ps2pfd, not pdfjadetex. Two benefits:

  1. Smaller PDF files.
  2. jadetex is a little less exotic, and more likely to be on a given
system.

The actual motivation is only knowing of a working version of jadetex
for Windows and not of pdfjadetex (at least, not one that works on the
gargantuan tome that is the combined User's Guide and Libraries
Guide).

22 years ago[project @ 2001-10-30 18:58:46 by rrt]
rrt [Tue, 30 Oct 2001 18:58:46 +0000 (18:58 +0000)]
[project @ 2001-10-30 18:58:46 by rrt]
Much more in-depth description. Switch to the new more automated
process, and concentrate on dukin' it out with InstallShield.

22 years ago[project @ 2001-10-30 16:18:12 by simonmar]
simonmar [Tue, 30 Oct 2001 16:18:12 +0000 (16:18 +0000)]
[project @ 2001-10-30 16:18:12 by simonmar]
Update sample output.  All the GHCi tests work as of today.

22 years ago[project @ 2001-10-30 16:17:34 by simonmar]
simonmar [Tue, 30 Oct 2001 16:17:34 +0000 (16:17 +0000)]
[project @ 2001-10-30 16:17:34 by simonmar]
Add deadlock-detection test.

22 years ago[project @ 2001-10-30 16:16:17 by simonmar]
simonmar [Tue, 30 Oct 2001 16:16:17 +0000 (16:16 +0000)]
[project @ 2001-10-30 16:16:17 by simonmar]
Add ':set args' and ':set prog' test.

22 years ago[project @ 2001-10-30 16:12:51 by simonmar]
simonmar [Tue, 30 Oct 2001 16:12:51 +0000 (16:12 +0000)]
[project @ 2001-10-30 16:12:51 by simonmar]
- Fix the free variable calculation in schemeE following some changes
  to the global-vs-local name story in earlier parts of the compiler.
  (fixes GHCi breakage on the HEAD).

- Eliminate some duplicate free variable calculations.

22 years ago[project @ 2001-10-30 11:30:30 by rrt]
rrt [Tue, 30 Oct 2001 11:30:30 +0000 (11:30 +0000)]
[project @ 2001-10-30 11:30:30 by rrt]
The .NET BigInteger support class (yup, the all-embracing .NET
Framework classes don't include big integers; clearly not important
for Real Programmers).

This is basically Julian's sainteger.c module from STG Hugs
resurrected and with lots of # signs added.

22 years ago[project @ 2001-10-30 10:57:50 by simonpj]
simonpj [Tue, 30 Oct 2001 10:57:50 +0000 (10:57 +0000)]
[project @ 2001-10-30 10:57:50 by simonpj]
Specialise-constructor rules active only in phase 0 (for Manuel & Gaby)

22 years ago[project @ 2001-10-29 17:59:37 by simonmar]
simonmar [Mon, 29 Oct 2001 17:59:37 +0000 (17:59 +0000)]
[project @ 2001-10-29 17:59:37 by simonmar]
Give the template tyvars nice print names, as per a suggestion from
Koen Claessen.

Prelude> :i []
-- [] is a data constructor
[] :: forall a. [a]

-- [] is a type constructor
data [] a = [] | (:) a [a]

22 years ago[project @ 2001-10-29 13:42:52 by simonmar]
simonmar [Mon, 29 Oct 2001 13:42:52 +0000 (13:42 +0000)]
[project @ 2001-10-29 13:42:52 by simonmar]
- document --print-libdir
- replace some <literal>s with <option>s where appropriate

22 years ago[project @ 2001-10-29 13:25:19 by simonmar]
simonmar [Mon, 29 Oct 2001 13:25:19 +0000 (13:25 +0000)]
[project @ 2001-10-29 13:25:19 by simonmar]
Add --print-libdir flag

22 years ago[project @ 2001-10-29 12:21:57 by simonmar]
simonmar [Mon, 29 Oct 2001 12:21:57 +0000 (12:21 +0000)]
[project @ 2001-10-29 12:21:57 by simonmar]
Add C++ extern "C" wrappers to generated stubs.

22 years ago[project @ 2001-10-29 12:00:06 by rrt]
rrt [Mon, 29 Oct 2001 12:00:06 +0000 (12:00 +0000)]
[project @ 2001-10-29 12:00:06 by rrt]
Set libdir to prefix on Windows only. Windows install paths are
currently different from those used under Unix, and it's probably best
to change the layout of the InstallShield to match Unix in the long
term. For now, just Make It Work.

22 years ago[project @ 2001-10-29 11:33:37 by simonmar]
simonmar [Mon, 29 Oct 2001 11:33:37 +0000 (11:33 +0000)]
[project @ 2001-10-29 11:33:37 by simonmar]
Wrap the include file entry-points in extern "C" { ... } if this is a
C++ compiler.

22 years ago[project @ 2001-10-29 11:31:51 by simonmar]
simonmar [Mon, 29 Oct 2001 11:31:51 +0000 (11:31 +0000)]
[project @ 2001-10-29 11:31:51 by simonmar]
Understand the various C++ suffixes.

22 years ago[project @ 2001-10-27 22:05:48 by sof]
sof [Sat, 27 Oct 2001 22:05:48 +0000 (22:05 +0000)]
[project @ 2001-10-27 22:05:48 by sof]
Added Show instance for Concurrent.ThreadId; useful when
debugging/diagnosing.

22 years ago[project @ 2001-10-27 21:44:54 by sof]
sof [Sat, 27 Oct 2001 21:44:55 +0000 (21:44 +0000)]
[project @ 2001-10-27 21:44:54 by sof]
Move extern declaration for 'environ' from Stg.h into HsPosix.h

22 years ago[project @ 2001-10-26 11:59:36 by sewardj]
sewardj [Fri, 26 Oct 2001 11:59:36 +0000 (11:59 +0000)]
[project @ 2001-10-26 11:59:36 by sewardj]
merge from stable, revs:

  1.41.4.1  +4 -1      fptools/ghc/compiler/nativeGen/AbsCStixGen.lhs
  1.61.4.3  +10 -0     fptools/ghc/driver/mangler/ghc-asm.lprl

  Place a zero word after each reversed vector table, so that the vtbl
  label is really in the section we would like to claim it is in.  This
  is needed for the GC to work correctly.  Fixes a GHCi segfault
  reported by Ryszard Kubiak.

  1.41.4.2  +7 -0      fptools/ghc/compiler/nativeGen/AbsCStixGen.lhs
  1.61.4.4  +18 -0     fptools/ghc/driver/mangler/ghc-asm.lprl

  Add comments, much longer than the fix itself, giving explaination
  for yesterday's dummy-word-after-vtbl fix.

22 years ago[project @ 2001-10-26 11:53:34 by sewardj]
sewardj [Fri, 26 Oct 2001 11:53:34 +0000 (11:53 +0000)]
[project @ 2001-10-26 11:53:34 by sewardj]
merge from stable, revs:

  1.74.4.1  +12 -11    fptools/ghc/compiler/nativeGen/MachCode.lhs
  1.30.4.1  +23 -0     fptools/ghc/compiler/nativeGen/Stix.lhs
  1.70.4.1  +2 -5      fptools/ghc/compiler/nativeGen/StixPrim.lhs

  Route all NCG panics to do with missing primop implementations and any
  other panic which could be caused by compiling legitimate sources
  through the function Stix.ncgPrimopMoan.  This emits a helpful message
  explaining what has happened, advises the use of -fvia-C as a
  workaround, and says please mail us.

22 years ago[project @ 2001-10-26 11:49:19 by sewardj]
sewardj [Fri, 26 Oct 2001 11:49:19 +0000 (11:49 +0000)]
[project @ 2001-10-26 11:49:19 by sewardj]
merge from stable, rev 1.23.4.1:

  Win32 only: implement sane failure semantics + message when out of
  memory, rather than continuing and allowing the rest of the system
  to seg out.  Also, increase the 128M limit to 256M.

  This allegedly fixes the Antony Courtney Win32 segfault.

22 years ago[project @ 2001-10-26 11:33:13 by sewardj]
sewardj [Fri, 26 Oct 2001 11:33:13 +0000 (11:33 +0000)]
[project @ 2001-10-26 11:33:13 by sewardj]
merge from stable, rev 1.60.2.10:

  Implement a debugging aid: look in GHCi's object symbol tables for
  symbols within DELTA bytes of the specified address, and show their
  names.  Only compiled with -DDEBUG.  The new fn is called ghci_enquire
  and you can call it from within a gdb session.

22 years ago[project @ 2001-10-26 05:31:05 by sof]
sof [Fri, 26 Oct 2001 05:31:05 +0000 (05:31 +0000)]
[project @ 2001-10-26 05:31:05 by sof]
pipeLoop: Handle pipelines that end with ineffective
final stages (e.g., CPP and/or PP) correctly. i.e.,
need to copy the outcome of the pipeline into the
expected output file, since the final stage didn't.

22 years ago[project @ 2001-10-26 00:53:56 by sof]
sof [Fri, 26 Oct 2001 00:53:56 +0000 (00:53 +0000)]
[project @ 2001-10-26 00:53:56 by sof]
Custom pre-processor documentation

22 years ago[project @ 2001-10-26 00:53:27 by sof]
sof [Fri, 26 Oct 2001 00:53:27 +0000 (00:53 +0000)]
[project @ 2001-10-26 00:53:27 by sof]
Added support for a custom pre-processor pass:

  ghc -F -pgmF/path/to/a/pre/processor ...

will now run /path/to/a/pre/processor over Haskell
input sources. It is positioned in the compilation
pipeline just before the compiler proper, but after
unlit'ing and CPP'ing. The pre-processor is passed
the following command-line when invoked:

   /path/to/a/pre/processor orig_input_source_file_path
        input_source_file
    output_source_file
    <other options>

Additionally options can be fed directly to the
pre-processor via -optF<option> options.

The -F option causes the pre-processor to run _iff_ one
has been specified via -pgmF (there's some redundancy
here, but I went for this cmd-line interface as it's
consistent with the general -pgm<Foo> story).

Motivation:

 * hooking in a pre-processor is occasionally useful;
   e.g., cheap&cheerful way to integrate language
   extensions with GHC, compile-time syntax/style
   checking etc.

 * Artfully re-using the CPP phase (by specifying your
   own via -pgmP) doesn't really work as the driver
   really assumes that GNU cpp is what's being invoked
   (and path mangling is also performed on Win32 platforms).

   Additionally, there are cases when you want to be
   able to run CPP _and_ a pre-processor.

 * The alternative of running the pre-processor as a
   separate program in a Makefile (say) doesn't work
   in interpreted mode, and this approach also forces
   you to give up on recompilation checking when in
   batch mode.

22 years ago[project @ 2001-10-25 14:50:00 by rrt]
rrt [Thu, 25 Oct 2001 14:50:00 +0000 (14:50 +0000)]
[project @ 2001-10-25 14:50:00 by rrt]
Tidy up after my assumption-busting.

22 years ago[project @ 2001-10-25 14:48:26 by rrt]
rrt [Thu, 25 Oct 2001 14:48:26 +0000 (14:48 +0000)]
[project @ 2001-10-25 14:48:26 by rrt]
Why should pdfjadetex be in the same directory as Jade? Make the much
less silly assumption that it's on the PATH.

22 years ago[project @ 2001-10-25 14:30:43 by simonpj]
simonpj [Thu, 25 Oct 2001 14:30:43 +0000 (14:30 +0000)]
[project @ 2001-10-25 14:30:43 by simonpj]
-------------------------------------------------------
  Correct an error in the handling of implicit parameters
  -------------------------------------------------------

MERGE WITH STABLE BRANCH UNLESS HARD TO DO

Mark Shields discovered a bug in the way that implicit parameters
are dealt with by the type checker.  It's all a bit subtle, and
is extensively documented in TcSimplify.lhs.

This commit makes the code both simpler and more correct.  It subtly
changes the way in which type signatures are treated, but not in a way
anyone would notice: see notes with "Question 2: type signatures"
in TcSimplify.lhs.

22 years ago[project @ 2001-10-25 12:56:54 by rrt]
rrt [Thu, 25 Oct 2001 12:56:54 +0000 (12:56 +0000)]
[project @ 2001-10-25 12:56:54 by rrt]
Renumber tuples (decrement by one) to conform to new primop naming scheme.

22 years ago[project @ 2001-10-25 12:55:18 by rrt]
rrt [Thu, 25 Oct 2001 12:55:18 +0000 (12:55 +0000)]
[project @ 2001-10-25 12:55:18 by rrt]
ILX fixes to get the standard library to build and verify.

22 years ago[project @ 2001-10-25 11:47:03 by simonmar]
simonmar [Thu, 25 Oct 2001 11:47:03 +0000 (11:47 +0000)]
[project @ 2001-10-25 11:47:03 by simonmar]
-Wall cleanup:

  - move some imports inside #ifdef GHCI
  - remove some unused bindings

22 years ago[project @ 2001-10-25 11:37:49 by simonmar]
simonmar [Thu, 25 Oct 2001 11:37:49 +0000 (11:37 +0000)]
[project @ 2001-10-25 11:37:49 by simonmar]
- only generate split markers if we're splitting
- remove a couple of unused imports

22 years ago[project @ 2001-10-25 10:00:05 by simonpj]
simonpj [Thu, 25 Oct 2001 10:00:05 +0000 (10:00 +0000)]
[project @ 2001-10-25 10:00:05 by simonpj]
Fix egregious bug in cloning

22 years ago[project @ 2001-10-25 09:59:39 by simonpj]
simonpj [Thu, 25 Oct 2001 09:59:40 +0000 (09:59 +0000)]
[project @ 2001-10-25 09:59:39 by simonpj]
Move defer from NewDemand to DmdAnal

22 years ago[project @ 2001-10-25 09:58:39 by simonpj]
simonpj [Thu, 25 Oct 2001 09:58:39 +0000 (09:58 +0000)]
[project @ 2001-10-25 09:58:39 by simonpj]
Cosmetica

22 years ago[project @ 2001-10-25 09:57:52 by simonpj]
simonpj [Thu, 25 Oct 2001 09:57:52 +0000 (09:57 +0000)]
[project @ 2001-10-25 09:57:52 by simonpj]
Attach arity info to generic to/from ids

22 years ago[project @ 2001-10-25 05:07:32 by sof]
sof [Thu, 25 Oct 2001 05:07:32 +0000 (05:07 +0000)]
[project @ 2001-10-25 05:07:32 by sof]
follow-on from prev. commit; more tidyups

22 years ago[project @ 2001-10-25 02:13:10 by sof]
sof [Thu, 25 Oct 2001 02:13:16 +0000 (02:13 +0000)]
[project @ 2001-10-25 02:13:10 by sof]
- Pet peeve removal / code tidyup, replaced various sub-optimal
  uses of 'length' with something a bit better, i.e., replaced
  the following patterns

   *  length as `cmpOp` length bs
   *  length as `cmpOp` val   -- incl. uses where val == 1 and val == 0
   *  {take,drop,splitAt} (length as) bs
   *  length [ () | pat <- as ]

  with uses of misc Util functions.

  I'd be surprised if there's a noticeable reduction in running
  times as a result of these changes, but every little bit helps.

  [ The changes have been tested wrt testsuite/ - I'm seeing a couple
    of unexpected breakages coming from CorePrep, but I'm currently
    assuming that these are due to other recent changes. ]

- compMan/CompManager.lhs: restored 4.08 compilability + some code
  cleanup.

None of these changes are HEADworthy.

22 years ago[project @ 2001-10-24 18:12:17 by rrt]
rrt [Wed, 24 Oct 2001 18:12:17 +0000 (18:12 +0000)]
[project @ 2001-10-24 18:12:17 by rrt]
$$j -> $$i (in tandem with other renaming). i.e., remove a spurion or two.

22 years ago[project @ 2001-10-24 17:15:25 by rrt]
rrt [Wed, 24 Oct 2001 17:15:25 +0000 (17:15 +0000)]
[project @ 2001-10-24 17:15:25 by rrt]
Separate installation of SGML docs and non-SGML docs. That should fix
it when there are either no docs of one sort or the other, or no
SGMLDocWays.

22 years ago[project @ 2001-10-24 17:11:59 by rrt]
rrt [Wed, 24 Oct 2001 17:11:59 +0000 (17:11 +0000)]
[project @ 2001-10-24 17:11:59 by rrt]
Only try installing SGML docs if SGMLDocWays is non-empty.

22 years ago[project @ 2001-10-24 16:27:59 by rrt]
rrt [Wed, 24 Oct 2001 16:27:59 +0000 (16:27 +0000)]
[project @ 2001-10-24 16:27:59 by rrt]
Fix typo.

22 years ago[project @ 2001-10-24 15:27:53 by simonpj]
simonpj [Wed, 24 Oct 2001 15:27:53 +0000 (15:27 +0000)]
[project @ 2001-10-24 15:27:53 by simonpj]
Wibble

22 years ago[project @ 2001-10-24 15:11:28 by simonpj]
simonpj [Wed, 24 Oct 2001 15:11:28 +0000 (15:11 +0000)]
[project @ 2001-10-24 15:11:28 by simonpj]
----------------
Division by zero
----------------

Teach GHC that the division primops can't fail if the divisor
is non-zero.  This can eliminate some thunks in an inner loop.

22 years ago[project @ 2001-10-24 14:17:29 by simonpj]
simonpj [Wed, 24 Oct 2001 14:17:29 +0000 (14:17 +0000)]
[project @ 2001-10-24 14:17:29 by simonpj]
Wibble again (sigh)

22 years ago[project @ 2001-10-24 14:05:09 by simonpj]
simonpj [Wed, 24 Oct 2001 14:05:09 +0000 (14:05 +0000)]
[project @ 2001-10-24 14:05:09 by simonpj]
Wibble

22 years ago[project @ 2001-10-24 13:48:09 by simonpj]
simonpj [Wed, 24 Oct 2001 13:48:09 +0000 (13:48 +0000)]
[project @ 2001-10-24 13:48:09 by simonpj]
Comments only

22 years ago[project @ 2001-10-24 13:47:22 by simonpj]
simonpj [Wed, 24 Oct 2001 13:47:22 +0000 (13:47 +0000)]
[project @ 2001-10-24 13:47:22 by simonpj]
Robustify arity calculation

22 years ago[project @ 2001-10-24 13:46:58 by simonpj]
simonpj [Wed, 24 Oct 2001 13:46:58 +0000 (13:46 +0000)]
[project @ 2001-10-24 13:46:58 by simonpj]
----------------------------------------------
Minor fix to occurrence analyer (don't merge)
----------------------------------------------

Wasn't dealing right with the case

x = e
y = foldr x

Here we don't want to inline x, because y is a PAP.

22 years ago[project @ 2001-10-24 13:45:37 by simonpj]
simonpj [Wed, 24 Oct 2001 13:45:37 +0000 (13:45 +0000)]
[project @ 2001-10-24 13:45:37 by simonpj]
NB: (Just a) `mplus` (Just b) = a

We want catMaybes, not mplus!

22 years ago[project @ 2001-10-24 10:07:57 by rrt]
rrt [Wed, 24 Oct 2001 10:07:57 +0000 (10:07 +0000)]
[project @ 2001-10-24 10:07:57 by rrt]
Better commenting.

22 years ago[project @ 2001-10-24 10:05:51 by rrt]
rrt [Wed, 24 Oct 2001 10:05:51 +0000 (10:05 +0000)]
[project @ 2001-10-24 10:05:51 by rrt]
Add install-docs target to top level.

22 years ago[project @ 2001-10-24 09:55:50 by rrt]
rrt [Wed, 24 Oct 2001 09:55:50 +0000 (09:55 +0000)]
[project @ 2001-10-24 09:55:50 by rrt]
Wemove WELEASE: thewe is no such fiwe.

22 years ago[project @ 2001-10-24 09:43:47 by simonmar]
simonmar [Wed, 24 Oct 2001 09:43:48 +0000 (09:43 +0000)]
[project @ 2001-10-24 09:43:47 by simonmar]
Detect whether the local 'ld' command supports -x, and only use the
flag if it does.

22 years ago[project @ 2001-10-24 08:38:03 by simonpj]
simonpj [Wed, 24 Oct 2001 08:38:03 +0000 (08:38 +0000)]
[project @ 2001-10-24 08:38:03 by simonpj]
----------------------------------------------
Several improvements to demand analysis
----------------------------------------------

* Make the demand analyser cleverer about strict CPR-able thunks.
  Detailed comments in DmdAnal.mk_sig_ty.ignore_cpr_info.

* Make the demand analyser cleverer about CPR info for case
  binders.  E.g.
case x of { (True,b) -> x;
    (False,b) -> (b,False) }
  Here, the expression *does* have the CPR property, because
  the lone use of x is inside a case.

* Move the unsafePerformIO HACK from WorkWrap into here
  (where is is very slightly less awful).

22 years ago[project @ 2001-10-24 08:35:51 by simonpj]
simonpj [Wed, 24 Oct 2001 08:35:51 +0000 (08:35 +0000)]
[project @ 2001-10-24 08:35:51 by simonpj]
Cosmetica

22 years ago[project @ 2001-10-24 08:34:53 by simonpj]
simonpj [Wed, 24 Oct 2001 08:34:53 +0000 (08:34 +0000)]
[project @ 2001-10-24 08:34:53 by simonpj]
Part of previous WorkWrap commit

22 years ago[project @ 2001-10-24 08:34:04 by simonpj]
simonpj [Wed, 24 Oct 2001 08:34:04 +0000 (08:34 +0000)]
[project @ 2001-10-24 08:34:04 by simonpj]
Add strictness info for constructor wrappers

22 years ago[project @ 2001-10-24 08:33:25 by simonpj]
simonpj [Wed, 24 Oct 2001 08:33:25 +0000 (08:33 +0000)]
[project @ 2001-10-24 08:33:25 by simonpj]
-------------------------
Implement thunk splitting
-------------------------

This is a rather nice transformation that I found when
optimising some nofib programs.

Suppose x is used strictly (never mind whether it has the CPR
property).

      let
x* = x-rhs
      in body

splitThunk transforms like this:

      let
x* = case x-rhs of { I# a -> I# a }
      in body

Now simplifier will transform to

      case x-rhs of
I# a -> let x* = I# b
        in body

which is what we want. Now suppose x-rhs is itself a case:

x-rhs = case e of { T -> I# a; F -> I# b }

The join point will abstract over a, rather than over (which is
what would have happened before) which is fine.

Notice that x certainly has the CPR property now!

In fact, splitThunk uses the function argument w/w splitting
function, so that if x's demand is deeper (say U(U(L,L),L))
then the splitting will go deeper too.

** On the way, I tidied up some of the code in WwLib.

22 years ago[project @ 2001-10-24 08:20:03 by simonpj]
simonpj [Wed, 24 Oct 2001 08:20:03 +0000 (08:20 +0000)]
[project @ 2001-10-24 08:20:03 by simonpj]
(DON'T MERGE)

Fix mkAtomicArgs so that it works.  It was greviously wrong,
leaving things like

x = I# (negateInt# y)

without ANF-ing them.

22 years ago[project @ 2001-10-23 22:25:46 by sof]
sof [Tue, 23 Oct 2001 22:25:48 +0000 (22:25 +0000)]
[project @ 2001-10-23 22:25:46 by sof]
Deleted HsVersions.h #defines that were now past their use-by-dates; in
particular, make the assumption that a post-Haskell 1.4 compiler is now
used to compile ghc/compiler/

Hanging on to those FastString #defines is probably not worth it any longer,
either, but I punted on making that (much bigger) change.

22 years ago[project @ 2001-10-23 22:20:33 by sof]
sof [Tue, 23 Oct 2001 22:20:33 +0000 (22:20 +0000)]
[project @ 2001-10-23 22:20:33 by sof]
qualify use of >> when compiling action which turns off buffering for std handles

22 years ago[project @ 2001-10-23 20:56:39 by sof]
sof [Tue, 23 Oct 2001 20:56:39 +0000 (20:56 +0000)]
[project @ 2001-10-23 20:56:39 by sof]
- ifaceTyThing: avoid using (++) when constructing the IdInfo for AnId - Maybe
                is preferable for this.
- misc typesig tidy-ups to make easier to get into the workings of the
  functions herein.

22 years ago[project @ 2001-10-23 17:18:38 by sof]
sof [Tue, 23 Oct 2001 17:18:38 +0000 (17:18 +0000)]
[project @ 2001-10-23 17:18:38 by sof]
- flushEverything: replaced bogus defn with something less crufty.
- float OPTIONS pragmas to the top; as was, they were ineffective.
  (it might just be a good idea for whoever put in the code which calls
   upon the RTS-local getAllocations() and revertCAFs() to bring some
   protos into scope, if robust software is the goal of this enterprise...)

22 years ago[project @ 2001-10-23 16:47:30 by rrt]
rrt [Tue, 23 Oct 2001 16:47:30 +0000 (16:47 +0000)]
[project @ 2001-10-23 16:47:30 by rrt]
Don't bother making ghc.bat any more as we don't need it (ghc.exe works
fine).

Tidy up a typo.

22 years ago[project @ 2001-10-23 16:33:27 by rrt]
rrt [Tue, 23 Oct 2001 16:33:27 +0000 (16:33 +0000)]
[project @ 2001-10-23 16:33:27 by rrt]
Correct a typo.

22 years ago[project @ 2001-10-23 16:32:30 by rrt]
rrt [Tue, 23 Oct 2001 16:32:30 +0000 (16:32 +0000)]
[project @ 2001-10-23 16:32:30 by rrt]
Install the right stuff in the right place on Windows.