ghc.git
12 years agoadd a ToDo, reference bug #1147
Simon Marlow [Wed, 14 Feb 2007 14:47:16 +0000 (14:47 +0000)] 
add a ToDo, reference bug #1147

12 years agofix closure_sizeW_() for AP closures
Simon Marlow [Wed, 14 Feb 2007 12:04:01 +0000 (12:04 +0000)] 
fix closure_sizeW_() for AP closures
Since thunks grew an extra padding word in GHC 6.6, closure_sizeW()
has been wrong for AP closures because it assumed compatible layout
between PAPs and APs.  One symptom is that the compacting GC would
crash if it encountered an AP.  APs conly crop up in GHCi or
when using asynchronous exceptions.

Fixes #1010

12 years agoFixing bad allocation of tix box breakpointing array.
andy@galois.com [Tue, 13 Feb 2007 22:02:03 +0000 (22:02 +0000)] 
Fixing bad allocation of tix box breakpointing array.

12 years agoUsing RTS debug tracing support inside Hpc.c
andy@galois.com [Tue, 13 Feb 2007 18:44:02 +0000 (18:44 +0000)] 
Using RTS debug tracing support inside Hpc.c

12 years agoMajor improvement to SpecConstr
simonpj@microsoft.com [Fri, 9 Feb 2007 17:36:45 +0000 (17:36 +0000)] 
Major improvement to SpecConstr

This patch improves the SpecConstr pass, by
  a) making it work with join points
  b) making it generate specialisations transitively

As part of it, SpecConstr now carries a substitution with it, which
runs over the whole program as it goes.  This turned out to be
a big win; simplified the implementation quite a bit.

I have *disabled* the specialisation on lambdas; it's pretty fragile,
and sometimes generates more and more specialisations. Something to
come back to, perhaps.

I rejigged the flag-handling a bit.  Now the specification of passes
in DynFlags is a bit nicer; see
- optLevelFlags top-level data structure
- runWhen function
- CoreDoPasses constructor

There are now command-line flags
-fspec-constr
-fliberate-case
-fspec-threshold=N
which do the obvious thing.  -O2 switches on both spec-constr and liberate-case.
You can use -fno-liberate-case, -fno-spec-constr after -O2 to switch them off again.

The spec-threshold applies to both these transformations; default value 200 for now.

12 years agoRefactor the simplifier's treatment of case expressions
simonpj@microsoft.com [Fri, 9 Feb 2007 17:29:38 +0000 (17:29 +0000)] 
Refactor the simplifier's treatment of case expressions

(NB: this patch could conceivably require some bits of the
following SpecConstr patch to compile cleanly.  It's conceptually
independent, but I'm not 100% certain that I've included all
the necessary bits here.)

This patch cleans up the simplifier's handling of various
otimisations for case expressions, notably
  - case elimination (discarding the case altogether)
  - merging identical alternatives
  - discarding impossible alternative
  - merging nested cases

Previously this was partly handled before, and partly after,
simplifying the case alternatives. The trouble with that is
that the dead-ness information on the case binders gets munged
during simplification, and that turned out to mean that
case elmination essentially never happened -- stupid.

Now I've moved it all to before simplifying the alterntives.
In fact this reduces the amount of code, I think, and it's
certainly tidier.  I don't think there is any loss.

12 years agoTicky is an RTS-only way; also fix collateral damage to other ways
Simon Marlow [Fri, 9 Feb 2007 14:08:18 +0000 (14:08 +0000)] 
Ticky is an RTS-only way; also fix collateral damage to other ways
The ticky static flag was being poked too early, which lead to
breakage in the -prof way amongst other things.  I've installed some
sanity checking to make sure we catch this earlier if it happens again.

12 years agoMake it a warning, not an error, if the version date cannot be determined
Simon Marlow [Thu, 8 Feb 2007 15:13:23 +0000 (15:13 +0000)] 
Make it a warning, not an error, if the version date cannot be determined
This happens when the build tree is a link-tree to the source tree,
because lndir will normally omit the _darcs directory.

12 years agomake VERSION a dependency of dist
Simon Marlow [Thu, 8 Feb 2007 12:15:55 +0000 (12:15 +0000)] 
make VERSION a dependency of dist

12 years agofix cut-and-pasto in code for binary-dist upload
Simon Marlow [Thu, 8 Feb 2007 12:07:12 +0000 (12:07 +0000)] 
fix cut-and-pasto in code for binary-dist upload

12 years agoFixed typo in devel1 flavor
Kirsten Chevalier [Wed, 7 Feb 2007 22:59:57 +0000 (22:59 +0000)] 
Fixed typo in devel1 flavor

Under GhcStage2HcOpts, "O" should be "-O"; fixed.

12 years agoType reconstruction/RTTI: improve handling of newtypes
Pepe Iborra [Wed, 7 Feb 2007 20:59:47 +0000 (20:59 +0000)] 
Type reconstruction/RTTI: improve handling of newtypes

  Newtypes have always been a problem because they are not there at runtime, but we need to take them into account.

  Tests ghci.debugger/print011 and ghci.debugger/print012 cover this

12 years agoOptimize dynamic breakpoints for speed
Pepe Iborra [Wed, 7 Feb 2007 08:21:10 +0000 (08:21 +0000)] 
Optimize dynamic breakpoints for speed

Made a bit faster the test which gets done every time a running program hits a dynamic breakpoint. I moved the bounds checking inside a DEBUG pragma and replaced (IArray.!) for unsafeAt

12 years agoTeach darcs-all how to get testsuite and nofib
Ian Lynagh [Wed, 7 Feb 2007 16:53:44 +0000 (16:53 +0000)] 
Teach darcs-all how to get testsuite and nofib

12 years agoImproved naming of generated HTML files by using nice IDs
sven.panne@aedion.de [Wed, 7 Feb 2007 16:34:04 +0000 (16:34 +0000)] 
Improved naming of generated HTML files by using nice IDs

12 years agoMake the User's Guide DocBook XML 4.2 conformant again
sven.panne@aedion.de [Wed, 7 Feb 2007 16:19:27 +0000 (16:19 +0000)] 
Make the User's Guide DocBook XML 4.2 conformant again

12 years agoupdate version hack to work on partial repositories
Simon Marlow [Wed, 7 Feb 2007 10:59:29 +0000 (10:59 +0000)] 
update version hack to work on partial repositories
Instead of asking for the last 100 patches, we just get the first 500
lines of output from darcs changes (ugh, better ideas welcome).

12 years agoForce recompilation on all -ddump flags
simonpj@microsoft.com [Wed, 7 Feb 2007 10:02:45 +0000 (10:02 +0000)] 
Force recompilation on all -ddump flags

12 years agoForce recompilation with -ddump-minimal-imports
simonpj@microsoft.com [Wed, 7 Feb 2007 10:00:53 +0000 (10:00 +0000)] 
Force recompilation with -ddump-minimal-imports

12 years agoSpelling fix
simonpj@microsoft.com [Wed, 7 Feb 2007 09:51:53 +0000 (09:51 +0000)] 
Spelling fix

12 years agoFix bug in -ddump-minimal imports Trac #1025
simonpj@microsoft.com [Wed, 7 Feb 2007 09:49:45 +0000 (09:49 +0000)] 
Fix bug in -ddump-minimal imports Trac #1025

The code for -ddump-minimal-imports was erroneously using loadSrcInterface,
which looks only for *exposed* modules.  It should instead use loadSysInterface
which looks for all interfaces.

The fix is straightforward.  MERGE to 6.6 branch.

12 years agoUpdate to manual section for ticky-ticky
Kirsten Chevalier [Wed, 7 Feb 2007 08:45:27 +0000 (08:45 +0000)] 
Update to manual section for ticky-ticky

I added a slightly more helpful remark in the profiling
section of the manual about how to use ticky-ticky.

12 years agoLightweight ticky-ticky profiling
Kirsten Chevalier [Wed, 7 Feb 2007 08:14:04 +0000 (08:14 +0000)] 
Lightweight ticky-ticky profiling

The following changes restore ticky-ticky profiling to functionality
from its formerly bit-rotted state. Sort of. (It got bit-rotted as part
of the switch to the C-- back-end.)

The way that ticky-ticky is supposed to work is documented in Section 5.7
of the GHC manual (though the manual doesn't mention that it hasn't worked
since sometime around 6.0, alas). Changes from this are as follows (which
I'll document on the wiki):

* In the past, you had to build all of the libraries with way=t in order to
use ticky-ticky, because it entailed a different closure layout. No longer.
You still need to do make way=t in rts/ in order to build the ticky RTS,
but you should now be able to mix ticky and non-ticky modules.

* Some of the counters that worked in the past aren't implemented yet.
I was originally just trying to get entry counts to work, so those should
be correct. The list of counters was never documented in the first place,
so I hope it's not too much of a disaster that some don't appear anymore.
Someday, someone (perhaps me) should document all the counters and what
they do. For now, all of the counters are either accurate (or at least as
accurate as they always were), zero, or missing from the ticky profiling
report altogether.

This hasn't been particularly well-tested, but these changes shouldn't
affect anything except when compiling with -fticky-ticky (famous last
words...)

Implementation details:

I got rid of StgTicky.h, which in the past had the macros and declarations
for all of the ticky counters. Now, those macros are defined in Cmm.h.
StgTicky.h was still there for inclusion in C code. Now, any remaining C
code simply cannot call the ticky macros -- or rather, they do call those
macros, but from the perspective of C code, they're defined as no-ops.
(This shouldn't be too big a problem.)

I added a new file TickyCounter.h that has all the declarations for ticky
counters, as well as dummy macros for use in C code. Someday, these
declarations should really be automatically generated, since they need
to be kept consistent with the macros defined in Cmm.h.

Other changes include getting rid of the header that was getting added to
closures before, and getting rid of various code having to do with eager
blackholing and permanent indirections (the changes under compiler/
and rts/Updates.*).

12 years agoDetect the snapshot version number using darcs
Simon Marlow [Tue, 6 Feb 2007 21:25:36 +0000 (21:25 +0000)] 
Detect the snapshot version number using darcs
For non-release builds, we want to append a date to the version number
(e.g. 6.7.20070206).  Previously this was done by the nightly build
script, this new method figures out the snapshot version by querying
the darcs repository and finding the date of the most recent patch
(actually it finds the most recent of the last 100 patches, but that
should be good enough).  This is done by the configure script.

To handle source distributions, we create a file VERSION in the
top-level directory that contains the version number, and ship this in
the source distribution.  The configure script picks up the version
from this file if it doesn't see a _darcs directory.

12 years agoCheck for escape when unifying forall-types
simonpj@microsoft.com [Tue, 6 Feb 2007 16:54:56 +0000 (16:54 +0000)] 
Check for escape when unifying forall-types

This egregious omission led to Trac #1128.

12 years agoRename local variable (no semantic effect)
simonpj@microsoft.com [Tue, 6 Feb 2007 12:24:56 +0000 (12:24 +0000)] 
Rename local variable (no semantic effect)

12 years agoComments and debug output
simonpj@microsoft.com [Tue, 6 Feb 2007 12:24:35 +0000 (12:24 +0000)] 
Comments and debug output

12 years agoImprove rule-matching for let expressions
simonpj@microsoft.com [Tue, 6 Feb 2007 12:22:33 +0000 (12:22 +0000)] 
Improve rule-matching for let expressions

12 years agoDo more wild-carding in SpecConstr; I'm not quite sure about this, but it does no...
simonpj@microsoft.com [Tue, 6 Feb 2007 12:15:52 +0000 (12:15 +0000)] 
Do more wild-carding in SpecConstr; I'm not quite sure about this, but it does no harm

12 years agoFix a small bug when comparing patterns for equality
simonpj@microsoft.com [Tue, 6 Feb 2007 12:15:18 +0000 (12:15 +0000)] 
Fix a small bug when comparing patterns for equality

12 years agoExpose rnInScopeSet from VarEnv
simonpj@microsoft.com [Tue, 6 Feb 2007 12:07:37 +0000 (12:07 +0000)] 
Expose rnInScopeSet from VarEnv

12 years agoDon't use compat when compiling utils with stage1
Ian Lynagh [Tue, 6 Feb 2007 00:32:32 +0000 (00:32 +0000)] 
Don't use compat when compiling utils with stage1

12 years agoFix syntax error
Ian Lynagh [Mon, 5 Feb 2007 20:31:25 +0000 (20:31 +0000)] 
Fix syntax error

12 years agofix memory leak in allocExec/freeExec (see bug #985)
Simon Marlow [Mon, 5 Feb 2007 10:21:02 +0000 (10:21 +0000)] 
fix memory leak in allocExec/freeExec (see bug #985)

12 years agoImplement the PushT rule from the FC paper
simonpj@microsoft.com [Mon, 5 Feb 2007 17:43:34 +0000 (17:43 +0000)] 
Implement the PushT rule from the FC paper

12 years agoImprove handling of partial applications involving casts
simonpj@microsoft.com [Mon, 5 Feb 2007 17:40:58 +0000 (17:40 +0000)] 
Improve handling of partial applications involving casts

This patch improves prepareRhs, so that it deals better with casts.

We want to deal well cases like this
v = (f e1 `cast` co) e2
Here we want to make e1,e2 trivial and get
x1 = e1; x2 = e2; v = (f x1 `cast` co) v2

This really happens in parser libraries, which wrap functions in newtypes.

12 years agoFloat casts out of lambdas
simonpj@microsoft.com [Mon, 5 Feb 2007 17:35:44 +0000 (17:35 +0000)] 
Float casts out of lambdas

See Note [Casts and lambdas] in SimplUtils.  I found this transformation
when staring at some cast-heavy code generated by
Language.Haskell.Lexer.hs in the haskell-src library.

The basic transformation is this:
(\x. e `cast` g1)  -->  (\x.e) `cast` (tx -> g1)
where x:tx.

12 years agoUse exprIsCheap in floating, just as the simplifier does
simonpj@microsoft.com [Mon, 5 Feb 2007 17:34:56 +0000 (17:34 +0000)] 
Use exprIsCheap in floating, just as the simplifier does

12 years agoEstablish the CoreSyn let/app invariant
simonpj@microsoft.com [Mon, 5 Feb 2007 17:31:50 +0000 (17:31 +0000)] 
Establish the CoreSyn let/app invariant

This patch clears up a long-standing wart.   For some time it's been the
case that
the RHS of a non-recursive let can be unlifed iff
the RHS is ok-for-speculation

This patch extends the invariant to the argument of an App, and
establishes it by the smart constructors mkDsApp, mkDsApps in the desugarer.

Once established, it should be maintained by the optimiser.

This tides up some awkward cases, notably in exprIsHNF, and I think it
fixes a outright strictness bug in Simplify.prepareRhs.

12 years agoImprove simplification of coercions
simonpj@microsoft.com [Mon, 5 Feb 2007 16:33:24 +0000 (16:33 +0000)] 
Improve simplification of coercions

At the moment GHC really does very little simplification of coercions.
This patch improves matters, but it's still not great, especially when
you have chains linked together with 'trans'.

I'm also concerned that I have not yet implemented the 'leftc' and 'rightc'
coercions we added to the paper.

But at least things are better than they were.  In particular
g `trans` sym g
now cancels to give the identity.

12 years agoMove #ifdef __GLASGOW_HASKELL__ < 604 to cover the CSIDL definitions too
Simon Marlow [Mon, 5 Feb 2007 16:02:29 +0000 (16:02 +0000)] 
Move #ifdef __GLASGOW_HASKELL__ < 604 to cover the CSIDL definitions too
Fixes bug exposed by compiling base w/ -fasm on Windows

12 years agoMake binary-dist tarballs automatically, and add support for uploading
Simon Marlow [Mon, 5 Feb 2007 14:48:47 +0000 (14:48 +0000)] 
Make binary-dist tarballs automatically, and add support for uploading
Moving functionality that was previously in the nightly build scripts
into the top-level Makefile, so it's easier to use from BuildBot.

12 years agoSemi-tagging optimisation
Simon Marlow [Mon, 22 Jan 2007 11:40:16 +0000 (11:40 +0000)] 
Semi-tagging optimisation
In the generated code for case-of-variable, test the tag of the
scrutinee closure and only enter if it is unevaluated.  Also turn
*off* vectored returns.

12 years agodon't forget to remove html-docs as part of 'make clean'
Simon Marlow [Mon, 5 Feb 2007 14:08:00 +0000 (14:08 +0000)] 
don't forget to remove html-docs as part of 'make clean'

12 years agoSimpler, more self-contained, "make dist"
Simon Marlow [Mon, 5 Feb 2007 14:07:27 +0000 (14:07 +0000)] 
Simpler, more self-contained, "make dist"
This version does all its work in a subdirectory (no more destructive
'make distclean' in the current build tree), and results in the exact
-src.tar.bz2 distributions that we will put up for download.

12 years agooptimisation: shortcut branches when possible (x86/x86_64 only for now)
mrchebas@gmail.com [Mon, 22 Jan 2007 11:42:01 +0000 (11:42 +0000)] 
optimisation: shortcut branches when possible (x86/x86_64 only for now)
This is only turned on with -O, and probably won't make much
difference at the moment, but it will be important for semi-tagging.

12 years agoSemi-tagging optimisation
Simon Marlow [Mon, 22 Jan 2007 11:40:16 +0000 (11:40 +0000)] 
Semi-tagging optimisation
In the generated code for case-of-variable, test the tag of the
scrutinee closure and only enter if it is unevaluated.  Also turn
*off* vectored returns.

12 years agox86: disable assertion that conditionals are not on I8; they can be
mrchebas@gmail.com [Fri, 19 Jan 2007 16:05:01 +0000 (16:05 +0000)] 
x86: disable assertion that conditionals are not on I8; they can be

12 years agosmall debugging output cleanup
mrchebas@gmail.com [Fri, 19 Jan 2007 15:08:00 +0000 (15:08 +0000)] 
small debugging output cleanup

12 years agodon't make jump tables for small switches (<= 4 branches)
mrchebas@gmail.com [Fri, 19 Jan 2007 15:07:49 +0000 (15:07 +0000)] 
don't make jump tables for small switches (<= 4 branches)
Only affects -fasm: gcc makes its own decisions about jump tables

12 years agoSmall optimisation for comparisons
mrchebas@gmail.com [Fri, 19 Jan 2007 15:04:33 +0000 (15:04 +0000)] 
Small optimisation for comparisons
Comparison of literal with narrowed/widened operand: perform
the comparison at a different width, as long as the literal is
within range.  We only do this on x86/x86_64 at the moment, where
we have comparisons at different sizes available.

12 years agoExtension of testing script to parse PAPI results from GHC programs.
Alexey Rodriguez [Thu, 21 Dec 2006 11:57:09 +0000 (11:57 +0000)] 
Extension of testing script to parse PAPI results from GHC programs.

12 years agoOne more PAPI measurement, dropped precise cycle counting and replaced it with instru...
Alexey Rodriguez [Thu, 21 Dec 2006 11:56:15 +0000 (11:56 +0000)] 
One more PAPI measurement, dropped precise cycle counting and replaced it with instructions.

12 years agoExport a function to grab the local environment as a function. 2007-02-05
lennart@augustsson.net [Sun, 4 Feb 2007 19:28:55 +0000 (19:28 +0000)] 
Export a function to grab the local environment as a function.

12 years agoExport nameEnvUniqueElts, similar to nameEnvElts, but giving the Unique as well.
lennart@augustsson.net [Sun, 4 Feb 2007 19:09:21 +0000 (19:09 +0000)] 
Export nameEnvUniqueElts, similar to nameEnvElts, but giving the Unique as well.

12 years agoMake HsRecordBinds a data type instead of a synonym.
lennart@augustsson.net [Sun, 4 Feb 2007 01:59:05 +0000 (01:59 +0000)] 
Make HsRecordBinds a data type instead of a synonym.

12 years agoLook through Notes when generating and matching RULES
simonpj@microsoft.com [Fri, 2 Feb 2007 17:35:27 +0000 (17:35 +0000)] 
Look through Notes when generating and matching RULES

12 years agoFix a comment typo.
lennart@augustsson.net [Sun, 4 Feb 2007 19:30:40 +0000 (19:30 +0000)] 
Fix a comment typo.

12 years agoFix a typo.
lennart@augustsson.net [Sun, 4 Feb 2007 19:23:29 +0000 (19:23 +0000)] 
Fix a typo.

12 years agoFix a typo.
lennart@augustsson.net [Sun, 4 Feb 2007 19:08:55 +0000 (19:08 +0000)] 
Fix a typo.

12 years agoWarning police: "%p" format expects a void*
sven.panne@aedion.de [Sat, 3 Feb 2007 12:31:41 +0000 (12:31 +0000)] 
Warning police: "%p" format expects a void*

12 years agoComments only
simonpj@microsoft.com [Fri, 2 Feb 2007 23:37:50 +0000 (23:37 +0000)] 
Comments only

12 years agoFix a pair of classic, but tricky, bugs in the type matcher; exposed by a program...
simonpj@microsoft.com [Fri, 2 Feb 2007 23:36:34 +0000 (23:36 +0000)] 
Fix a pair of classic, but tricky, bugs in the type matcher; exposed by a program from Roman

12 years agoOne more wibble to FloatOut, fixes HEAD breakage (I hope)
simonpj@microsoft.com [Fri, 2 Feb 2007 22:53:48 +0000 (22:53 +0000)] 
One more wibble to FloatOut, fixes HEAD breakage (I hope)

12 years agoclarify that -main-is sets main module and function
andrew.pimlott.ctr@metnet.navy.mil [Wed, 31 Jan 2007 22:39:21 +0000 (22:39 +0000)] 
clarify that -main-is sets main module and function

12 years agoDon't dump floated bindings just outside a lambda
simonpj@microsoft.com [Fri, 2 Feb 2007 15:54:52 +0000 (15:54 +0000)] 
Don't dump floated bindings just outside a lambda

We do not want the FloatOut pass to transform
f = \x. e
to
f = let lvl = ... in \x.e

The arity pinned on f isn't right any more; and see
Note [Floating out of RHSs].

Core Lint is now spotting the arity lossage (for a letrec), which is
how I spotted this bug.

I also re-jigged the code around floatBind; it's a bit tidier now.

12 years agoReset the demand info on bindings going to top level (since they cannot be strict)
simonpj@microsoft.com [Fri, 2 Feb 2007 15:12:06 +0000 (15:12 +0000)] 
Reset the demand info on bindings going to top level (since they cannot be strict)

12 years agoRecord arity of the worker, to maintain consistency of arity and strictness informati...
simonpj@microsoft.com [Fri, 2 Feb 2007 15:10:51 +0000 (15:10 +0000)] 
Record arity of the worker, to maintain consistency of arity and strictness information (checked by Lint)

12 years agoExtend the local bindings at a breakpoint with one for the wrapped expression
Pepe Iborra [Fri, 2 Feb 2007 11:26:29 +0000 (11:26 +0000)] 
Extend the local bindings at a breakpoint with one for the wrapped expression

By popular request, in a breakpoint it is possible now to inspect the result of the expression wrapped by the breakpoint.

The user interface for this is right now preliminar; there is a new binding called '_result' at every breakpoint. Suggestions are welcome!

12 years agoRefactoring of DsBreakpoint.hs
Pepe Iborra [Fri, 2 Feb 2007 10:59:07 +0000 (10:59 +0000)] 
Refactoring of DsBreakpoint.hs

12 years agoFix imports
Pepe Iborra [Fri, 2 Feb 2007 10:05:02 +0000 (10:05 +0000)] 
Fix imports

12 years agoWarning police: Avoid warning about unused variable
sven.panne@aedion.de [Thu, 1 Feb 2007 15:08:39 +0000 (15:08 +0000)] 
Warning police: Avoid warning about unused variable

12 years agoAdhere to the new GNU Coding Standards, avoiding a warning with autoconf 2.59c and...
sven.panne@aedion.de [Thu, 1 Feb 2007 13:42:43 +0000 (13:42 +0000)] 
Adhere to the new GNU Coding Standards, avoiding a warning with autoconf 2.59c and later

12 years agochmod +x install-sh, see bug #978
Simon Marlow [Thu, 1 Feb 2007 13:11:25 +0000 (13:11 +0000)] 
chmod +x install-sh, see bug #978

12 years agosome dynamic flags cannot be used with OPTIONS_GHC, e.g. -i, -package
Simon Marlow [Thu, 1 Feb 2007 12:40:58 +0000 (12:40 +0000)] 
some dynamic flags cannot be used with OPTIONS_GHC, e.g. -i, -package
fixes #1108

12 years agoPartial fix for #926
Simon Marlow [Thu, 1 Feb 2007 11:40:47 +0000 (11:40 +0000)] 
Partial fix for #926
It seems that when a program exits with open DLLs on Windows, the
system attempts to shut down the DLLs, but it also terminates (some
of?) the running threads.  The RTS isn't prepared for threads to die
unexpectedly, so it sits around waiting for its workers to finish.
This bites in two places: ShutdownIOManager() in the the unthreaded
RTS, and shutdownCapability() in the threaded RTS.  So far I've
modified the latter to notice when worker threads have died
unexpectedly and continue shutting down.  It seems a bit trickier to
fix the unthreaded RTS, so for now the workaround for #926 is to use
the threaded RTS.

12 years agoAlways pay attention to -keep-tmp-files when we want to delete files
Ian Lynagh [Wed, 31 Jan 2007 15:10:58 +0000 (15:10 +0000)] 
Always pay attention to -keep-tmp-files when we want to delete files

12 years agoSlight refactoring for overloaded strings
simonpj@microsoft.com [Wed, 31 Jan 2007 15:07:01 +0000 (15:07 +0000)] 
Slight refactoring for overloaded strings

12 years agoUse Id.isStrictId
simonpj@microsoft.com [Wed, 31 Jan 2007 15:06:16 +0000 (15:06 +0000)] 
Use Id.isStrictId

12 years agoTwo new warnings: arity differing from demand type, and strict IDs at top level
Kirsten Chevalier [Mon, 29 Jan 2007 22:55:33 +0000 (22:55 +0000)] 
Two new warnings: arity differing from demand type, and strict IDs at top level

I added two new Core Lint checks in lintSingleBinding:

1. Check that the id's arity is equal to the
   number of arguments in its demand type, if it has a demand type
   at all (i.e., if demand analysis already happened).

2. Check that top-level or recursive binders aren't demanded.

12 years agoFix typo causing the PowerPC OS X build to fail
Ian Lynagh [Wed, 31 Jan 2007 12:01:53 +0000 (12:01 +0000)] 
Fix typo causing the PowerPC OS X build to fail

12 years agoFix typo
Ian Lynagh [Wed, 31 Jan 2007 11:27:24 +0000 (11:27 +0000)] 
Fix typo

12 years agoBugFix: do not insert breakpoints around expressions with unlifted kind
Pepe Iborra [Wed, 31 Jan 2007 10:28:21 +0000 (10:28 +0000)] 
BugFix: do not insert breakpoints around expressions with unlifted kind

  I have added a check, and while there removed a few kludges in my code.
  Kudos to -dcore-lint for uncovering this.

  I think that this restriction could be lifted, if GHC.Base.breakpoint could have kind ?? -> ??. But is this a legal type? Does not look so to me.

12 years agoFix a typo
Pepe Iborra [Wed, 31 Jan 2007 10:40:01 +0000 (10:40 +0000)] 
Fix a typo

12 years agoAdd note about Template Haskell and mutual recursion
simonpj@microsoft.com [Wed, 31 Jan 2007 09:14:51 +0000 (09:14 +0000)] 
Add note about Template Haskell and mutual recursion

12 years agoFix Trac #1122; spot absence of TyCon in data/newtype header
simonpj@microsoft.com [Tue, 30 Jan 2007 16:13:30 +0000 (16:13 +0000)] 
Fix Trac #1122; spot absence of TyCon in data/newtype header

12 years agoFix for #936
Simon Marlow [Tue, 30 Jan 2007 10:13:06 +0000 (10:13 +0000)] 
Fix for #936
We must traverse dependencies recursively if we encounter any [boot]
modules in the dependencies.

12 years agofix bug in GetLastError/SetLastError patch
Simon Marlow [Mon, 29 Jan 2007 12:45:59 +0000 (12:45 +0000)] 
fix bug in GetLastError/SetLastError patch

12 years agoFix GHCi on PowerPC OS X
Ian Lynagh [Sun, 28 Jan 2007 21:32:16 +0000 (21:32 +0000)] 
Fix GHCi on PowerPC OS X
David Kirkman and Peter Tanski noticed that a line had been removed during
a patch merge which meant that oc->image pointed to the wrong place and
ultimately caused an error from realloc.

12 years agoSave the Win32 error code where necessary
Simon Marlow [Fri, 26 Jan 2007 16:26:20 +0000 (16:26 +0000)] 
Save the Win32 error code where necessary
Similarly to the way we save errno across context switches and
suspendThread/resumeThread, we must save and restore the Win32 error
code via GetLastError()/SetLastError().  Fixes #896.

12 years agoComments and layout only
simonpj@microsoft.com [Thu, 25 Jan 2007 12:54:48 +0000 (12:54 +0000)] 
Comments and layout only

12 years agoAdd -stdout-binary and -stderr-binary flags to bypass dos2unix
Simon Marlow [Tue, 23 Jan 2007 12:38:43 +0000 (12:38 +0000)] 
Add -stdout-binary and -stderr-binary flags to bypass dos2unix
Apparently some versions of dos2unix can detect a binary file and
ignore it, but others can't, so provide a way to tell runstdtest that
the output is in binary.

12 years agoDocument the overloaded string extension.
lennart@augustsson.net [Sat, 20 Jan 2007 16:14:36 +0000 (16:14 +0000)] 
Document the overloaded string extension.

12 years agoAdd support for overloaded string literals.
lennart@augustsson.net [Thu, 21 Dec 2006 21:01:47 +0000 (21:01 +0000)] 
Add support for overloaded string literals.

The class is named IsString with the single method fromString.
Overloaded strings work the same way as overloaded numeric literals.
In expressions a string literals gets a fromString applied to it.
In a pattern there will be an equality comparison with the fromString:ed literal.

Use -foverloaded-strings to enable this extension.

12 years agoImprove presentation of :print output
Pepe Iborra [Sun, 21 Jan 2007 11:06:10 +0000 (11:06 +0000)] 
Improve presentation of :print output

12 years agoComments only
Pepe Iborra [Sun, 21 Jan 2007 11:03:44 +0000 (11:03 +0000)] 
Comments only

12 years agoRefactoring of Debugger.hs
Pepe Iborra [Sun, 21 Jan 2007 10:59:09 +0000 (10:59 +0000)] 
Refactoring of Debugger.hs

A big motivation to start with it was getting several independently useful functions out of the Ghci monad and into the IO monad instead. Working in debugger integration for Emacs via the ghc-api is helping me to improve reusability..
      While I was there, I tried to make the code less tangled, easier to understand, switched from implicit Exceptions to explicit Eithers in the bkptTable code, etc.

12 years agoFix a bug in the closure viewer
Pepe Iborra [Sat, 20 Jan 2007 20:11:05 +0000 (20:11 +0000)] 
Fix a bug in the closure viewer

12 years agoAdd obtainTerm1 to the GHC api
Pepe Iborra [Sat, 20 Jan 2007 18:52:49 +0000 (18:52 +0000)] 
Add obtainTerm1 to the GHC api

12 years agoReorganizing my mess a bit
Pepe Iborra [Sun, 7 Jan 2007 21:12:40 +0000 (21:12 +0000)] 
Reorganizing my mess a bit