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
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
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
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
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.
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
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
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.
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.
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.
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
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>
simonpj [Fri, 2 Nov 2001 10:35:14 +0000 (10:35 +0000)]
[project @ 2001-11-02 10:35:14 by simonpj]
Stingy -> thrifty
simonpj [Fri, 2 Nov 2001 10:19:24 +0000 (10:19 +0000)]
[project @ 2001-11-02 10:19:24 by simonpj]
wibble
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
simonpj [Thu, 1 Nov 2001 13:20:42 +0000 (13:20 +0000)]
[project @ 2001-11-01 13:20:42 by simonpj]
wibble
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.
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
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.
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
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.
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.
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.
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
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
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.
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
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)
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.
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.
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.
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
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.
rrt [Tue, 30 Oct 2001 19:02:26 +0000 (19:02 +0000)]
[project @ 2001-10-30 19:02:26 by rrt]
Fix typo.
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).
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.
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.
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.
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.
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.
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.
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)
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]
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
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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
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
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
simonpj [Thu, 25 Oct 2001 09:58:39 +0000 (09:58 +0000)]
[project @ 2001-10-25 09:58:39 by simonpj]
Cosmetica
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
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
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.
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.
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.
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.
rrt [Wed, 24 Oct 2001 16:27:59 +0000 (16:27 +0000)]
[project @ 2001-10-24 16:27:59 by rrt]
Fix typo.
simonpj [Wed, 24 Oct 2001 15:27:53 +0000 (15:27 +0000)]
[project @ 2001-10-24 15:27:53 by simonpj]
Wibble
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.
simonpj [Wed, 24 Oct 2001 14:17:29 +0000 (14:17 +0000)]
[project @ 2001-10-24 14:17:29 by simonpj]
Wibble again (sigh)
simonpj [Wed, 24 Oct 2001 14:05:09 +0000 (14:05 +0000)]
[project @ 2001-10-24 14:05:09 by simonpj]
Wibble
simonpj [Wed, 24 Oct 2001 13:48:09 +0000 (13:48 +0000)]
[project @ 2001-10-24 13:48:09 by simonpj]
Comments only
simonpj [Wed, 24 Oct 2001 13:47:22 +0000 (13:47 +0000)]
[project @ 2001-10-24 13:47:22 by simonpj]
Robustify arity calculation
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.
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!
rrt [Wed, 24 Oct 2001 10:07:57 +0000 (10:07 +0000)]
[project @ 2001-10-24 10:07:57 by rrt]
Better commenting.
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.
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.
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.
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).
simonpj [Wed, 24 Oct 2001 08:35:51 +0000 (08:35 +0000)]
[project @ 2001-10-24 08:35:51 by simonpj]
Cosmetica
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
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
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.
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.
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.
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
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.
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...)
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.
rrt [Tue, 23 Oct 2001 16:33:27 +0000 (16:33 +0000)]
[project @ 2001-10-23 16:33:27 by rrt]
Correct a typo.
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.