Manuel M T Chakravarty [Fri, 4 May 2007 06:39:40 +0000 (06:39 +0000)]
Added VectInfo to ModGuts
Ian Lynagh [Sat, 5 May 2007 17:09:34 +0000 (17:09 +0000)]
Handle ParStmt in collectStmtBinders; fixes tcrun013(ghci) failure
Ian Lynagh [Sat, 5 May 2007 15:00:39 +0000 (15:00 +0000)]
Don't print parens around list comprehensions
Ian Lynagh [Sat, 5 May 2007 14:41:31 +0000 (14:41 +0000)]
Tweak ... generation
Avoid:
let x ...
i.e. always put the = in:
let x = ...
Ian Lynagh [Sat, 5 May 2007 14:29:51 +0000 (14:29 +0000)]
Tweak the ... generation
Ian Lynagh [Fri, 4 May 2007 22:18:57 +0000 (22:18 +0000)]
Panic properly if wrongKindOfFamily is given an unexpected family
Used to just give a "Non-exhaustive patterns" failure
Ian Lynagh [Fri, 4 May 2007 14:59:30 +0000 (14:59 +0000)]
The libraries/* directories themselves are boring, as well as their contents
Ian Lynagh [Fri, 4 May 2007 14:57:56 +0000 (14:57 +0000)]
libraries/filepath/ is boring
simonpj@microsoft.com [Fri, 4 May 2007 12:24:19 +0000 (12:24 +0000)]
Warning police
simonpj@microsoft.com [Fri, 4 May 2007 12:24:05 +0000 (12:24 +0000)]
Make -frewrite-rules into a dynamic flag; off for -O0
Argubly rewrite rules should not fire with -O0, and it turns
out that when compiling GHC.Base with -O0 we get a crash if
the rewrite rules do fire (see Note [Scoping for Builtin rules]
in PrelRules).
So unless someone yells, rewrite rules are off with -O0.
The new (now dynamic) flag is
-frewrite rules (with -fno-rewrite-rules to disable)
The old (static) flag -frules-off is gone.
simonpj@microsoft.com [Fri, 4 May 2007 11:34:54 +0000 (11:34 +0000)]
Improve printing of "..." in HsExpr; fixes a stupidity in my earlier change
simonpj@microsoft.com [Fri, 4 May 2007 11:06:50 +0000 (11:06 +0000)]
Fix the pruning of dead case alternatives
This fixes Trac #1251; test case is gadt/CasePrune
GHC was being over-eager about pruning dead alternatives from case
expressions, and that led to a crash because the case expression
ended up with no alternatives at all!
See the long comments Note [Pruning dead case alternatives] in Unify.
simonpj@microsoft.com [Fri, 4 May 2007 11:03:41 +0000 (11:03 +0000)]
Warning police
simonpj@microsoft.com [Fri, 4 May 2007 11:03:01 +0000 (11:03 +0000)]
isDataTyCon should be False for all type families, even data type families
isDataTyCon advertises that it's true of "data types that are
definitely represented by heap-allocated constructors. These are
srcutinised by Core-level @case@ expressions, and they get info tables
allocated for them."
Type-family TyCons never have this property, not even data type families.
It's the *instance* TyCons that do.
I hope that this change does not break anything that somehow relied
on the old (wrong) semantics.
simonpj@microsoft.com [Thu, 3 May 2007 12:47:59 +0000 (12:47 +0000)]
Fix dependency information for RULES
A SpecInfo (inside IdInfo) keeps track of the free variables of a RULE
so that the occurrency analyser knows about its dependencies.
Previously it was only tracking the *rhs* free vars, but it should
really include the *lhs* ones too. See Note [Rule dependency info]
in IdInfo.
This fixes a WARNING when compiling some libraries.
simonpj@microsoft.com [Thu, 3 May 2007 12:47:15 +0000 (12:47 +0000)]
Less voluminous debug
simonpj@microsoft.com [Thu, 3 May 2007 12:46:06 +0000 (12:46 +0000)]
Remove "__" prefix for forall when printing a RULE
simonpj@microsoft.com [Thu, 3 May 2007 12:45:18 +0000 (12:45 +0000)]
Add the -ddump-mod-cycles flag to the user manual
Ian Lynagh [Thu, 3 May 2007 22:38:33 +0000 (22:38 +0000)]
Fix truncate on amd64 NCG; fixes arith005.
cvts[sd]2siq? ->
cvtts[sd]2siq?
Ian Lynagh [Thu, 3 May 2007 14:07:32 +0000 (14:07 +0000)]
Add missing libraries/Makefile dependencies on ifBuildable/ifBuildable
Simon Marlow [Thu, 3 May 2007 15:19:41 +0000 (15:19 +0000)]
Use a primop for getting the fields of the AP_STACK rather than an FFI call
This means we can avoid some StablePtrs, and also catch cases where
the AP_STACK has been evaluated (this can happen with :history, see
the hist001 test).
Simon Marlow [Thu, 3 May 2007 15:06:12 +0000 (15:06 +0000)]
improve the :list command
Now you can list source code in various ways:
:list <line>
:list <module> <line>
:list <function>
Ian Lynagh [Thu, 3 May 2007 13:36:54 +0000 (13:36 +0000)]
Add a little documentation to the libraries/Makefile
Ian Lynagh [Thu, 3 May 2007 12:39:13 +0000 (12:39 +0000)]
Only touch the configure stamp if configure succeeds
We don't touch $@ if configure failed as we would prefer to try
configuring it next time round, rather than assuming it'll still fail.
This is particularly important for corelibs, where failure means the
build dies!
Simon Marlow [Thu, 3 May 2007 13:19:55 +0000 (13:19 +0000)]
Add history/trace functionality to the GHCi debugger
The debugger can now log each step of the evaluation without actually
stopping, keeping a history of the recent steps (currently 50). When
a (real) breakpoint is hit, you can examine previous steps in the
history (and their free variables) using the :history, :back and
:forward commands.
Simon Marlow [Thu, 3 May 2007 13:15:25 +0000 (13:15 +0000)]
use extendInteractiveContext instead of custom code
Simon Marlow [Thu, 3 May 2007 12:52:24 +0000 (12:52 +0000)]
cancel out some reverses by changing the order of ic_tmp_ids
Simon Marlow [Thu, 3 May 2007 12:50:06 +0000 (12:50 +0000)]
use the reader part of the monad for the inScope set
Ian Lynagh [Thu, 3 May 2007 12:08:41 +0000 (12:08 +0000)]
Make coreSyn/CoreUtils.lhs compile
Use the right number of arguments in a panic case.
Ian Lynagh [Mon, 30 Apr 2007 11:35:19 +0000 (11:35 +0000)]
Make boot handle getting the libraries
Tim Chevalier [Tue, 1 May 2007 05:37:19 +0000 (05:37 +0000)]
Remove references to -fticky-ticky flag
-ticky is the command-line flag for ticky-ticky profiling now, but
internally, the -fticky-ticky flag was used to represent whether ticky
was on. This led to link errors if the user supplied -fticky-ticky but
not -ticky (ticky code would be generated but the wrong RTS library
would be passed to the linker). I removed references to -fticky-ticky
-- now, only the way flags dictate whether ticky is on, and
-fticky-ticky is no longer accepted as a command-line option.
simonpj@microsoft.com [Wed, 2 May 2007 16:38:54 +0000 (16:38 +0000)]
Comments, plus type sigs
simonpj@microsoft.com [Wed, 2 May 2007 16:38:33 +0000 (16:38 +0000)]
Warning police
simonpj@microsoft.com [Wed, 2 May 2007 16:38:15 +0000 (16:38 +0000)]
Layout only
simonpj@microsoft.com [Wed, 2 May 2007 16:37:46 +0000 (16:37 +0000)]
Import fiddling
simonpj@microsoft.com [Wed, 2 May 2007 16:37:09 +0000 (16:37 +0000)]
Add more assertions
simonpj@microsoft.com [Wed, 2 May 2007 16:36:18 +0000 (16:36 +0000)]
Use the record fields of IdInfo.RecordSelId
simonpj@microsoft.com [Wed, 2 May 2007 16:34:57 +0000 (16:34 +0000)]
Make records work properly with type families
This fixes Trac #1204. There's quite a delicate interaction of
GADTs, type families, records, and in particular record updates.
Test is indexed-types/should_compile/Records.hs
Simon Marlow [Wed, 2 May 2007 13:54:34 +0000 (13:54 +0000)]
Refactoring, tidyup and improve layering
The stack of breakpoint resume contexts is now part of the
InteractiveContext and managed by the GHC API. This prevents misuse
of the resume context by the client (e.g. resuming a breakpoint that
isn't the topmost, which would lead to a confused IC at the least).
I changed the TypeEnv in the IC to a [Id]. It only contained Ids
anyway, and this allows us to have shadowing, which removes an ugly
and annoying restriction.
The parts of the GHC API which deal with interactive evaluation are
now in a module of their own, InteractiveEval.
Simon Marlow [Wed, 2 May 2007 12:55:23 +0000 (12:55 +0000)]
move -fno-print-bind-result into the GHCi section
Simon Marlow [Wed, 2 May 2007 12:43:01 +0000 (12:43 +0000)]
Print the "skipping" messages at verbosity 2 again
This was accidentally changed to 1 in the HEAD a while ago, the
behaviour is now the same as 6.6.x again.
simonpj@microsoft.com [Wed, 2 May 2007 11:47:38 +0000 (11:47 +0000)]
Improve error reporting for type signatures
See Trac #1310
simonpj@microsoft.com [Wed, 2 May 2007 10:39:24 +0000 (10:39 +0000)]
Do not generate warnings for compiler-generated code
Fixes Trac #1313
simonpj@microsoft.com [Wed, 2 May 2007 10:38:45 +0000 (10:38 +0000)]
Add ndp package to boring list
simonpj@microsoft.com [Wed, 2 May 2007 10:38:15 +0000 (10:38 +0000)]
Document the fact that you can't make a newtype of an unboxed data type
simonpj@microsoft.com [Wed, 2 May 2007 10:36:32 +0000 (10:36 +0000)]
Use pprSourceTyCon; delete unused tyConOrigHead
simonpj@microsoft.com [Wed, 2 May 2007 10:28:11 +0000 (10:28 +0000)]
Fixes to data type families
- Fix two distinct bugs, one in MkId.mkDataConIds, one in DataCon.mkDataCon
- Add more comments
- Add a little assertion checking in TyCon
Type-family tests now work.
simonpj@microsoft.com [Fri, 27 Apr 2007 15:41:31 +0000 (15:41 +0000)]
Fix egregious typo in TcUnify
Tom S found this bug by inspection; we've never seen it
fail in the wild, but it was obviosly Utterly Wrong
simonpj@microsoft.com [Wed, 25 Apr 2007 16:13:06 +0000 (16:13 +0000)]
Typo in comments
simonpj@microsoft.com [Wed, 25 Apr 2007 16:12:44 +0000 (16:12 +0000)]
Fix misleading debug trace
simonpj@microsoft.com [Wed, 25 Apr 2007 14:15:30 +0000 (14:15 +0000)]
Improve hashing of expressions for CSE (reduces warnings about extendCSEnv)
Simon Marlow [Wed, 2 May 2007 08:29:02 +0000 (08:29 +0000)]
remove unused primitives.xml
Tim Chevalier [Wed, 2 May 2007 01:19:56 +0000 (01:19 +0000)]
Fix grammar error in docs (as per Trac 1319)
andy@galois.com [Tue, 1 May 2007 15:57:29 +0000 (15:57 +0000)]
Stopping tick boxes for being removed round calls to error.
Ian Lynagh [Tue, 1 May 2007 14:25:43 +0000 (14:25 +0000)]
-fwarn-monomorphism-restriction is now off by default
Pepe Iborra [Tue, 1 May 2007 10:11:05 +0000 (10:11 +0000)]
Add new skolem tyvars to the InteractiveContext after type reconstruction
This was being done already for each binding added by :print,
but :sprint does not add any new binding, so we take care of it
separately
Simon Marlow [Tue, 1 May 2007 08:22:24 +0000 (08:22 +0000)]
document the current behaviour of -Wall, see #1292
Simon Marlow [Mon, 30 Apr 2007 15:06:45 +0000 (15:06 +0000)]
don't forget to enable ^C after a :cont or :step
Simon Marlow [Mon, 30 Apr 2007 10:57:22 +0000 (10:57 +0000)]
tidyup comments and fix a few warnings
andy@galois.com [Mon, 30 Apr 2007 22:59:15 +0000 (22:59 +0000)]
Changing internal data structures used by Hpc
- .tix files are now a list of MixModule, which contain a hash of the contents of the .mix file.
- .mix files now have (the same) hash number.
This changes allow different binaries that use the same module compiled in the same way
to share coverage information.
Pepe Iborra [Mon, 30 Apr 2007 18:45:22 +0000 (18:45 +0000)]
Remove skolem tyvars from the InteractiveContext once they have been instantiated by :print
Pepe Iborra [Mon, 30 Apr 2007 17:12:16 +0000 (17:12 +0000)]
Restore tidying up of tyvars in :print
It wasn't a good idea to disable it
Ian Lynagh [Mon, 30 Apr 2007 15:17:37 +0000 (15:17 +0000)]
Make GHCi's banner fit in a standard 80-column terminal
Ian Lynagh [Mon, 30 Apr 2007 11:35:19 +0000 (11:35 +0000)]
Make boot handle getting the libraries
Ian Lynagh [Mon, 30 Apr 2007 11:15:40 +0000 (11:15 +0000)]
Handle unbuildable packages differently
Now we require that configure fails, and use our own signalling rather
than Cabal's buildable field.
Ian Lynagh [Mon, 30 Apr 2007 10:25:53 +0000 (10:25 +0000)]
Set rts/gmp/configure executable when booting
Ian Lynagh [Mon, 30 Apr 2007 10:16:12 +0000 (10:16 +0000)]
Look for -q in the darcs flags as well as the darcs-all flags
Ian Lynagh [Sun, 29 Apr 2007 17:27:34 +0000 (17:27 +0000)]
Put the darcs-all command parsing into main() so it can use @_
Ian Lynagh [Sun, 29 Apr 2007 14:00:04 +0000 (14:00 +0000)]
Make darcs-all a perl script
This fixes a problem where patches altering the darcs-all script break
on Windows as the file is open. The script is now also slightly nicer,
on balance.
Ian Lynagh [Sun, 29 Apr 2007 12:06:25 +0000 (12:06 +0000)]
Don't enable the monomorphism warning by default
Simon Marlow [Fri, 27 Apr 2007 15:39:48 +0000 (15:39 +0000)]
outside of runStmt, if a breakpoint is hit then just print a message
Simon Marlow [Fri, 27 Apr 2007 15:38:52 +0000 (15:38 +0000)]
give the statements under evaluation in the ":show context" output
Simon Marlow [Fri, 27 Apr 2007 14:45:54 +0000 (14:45 +0000)]
break by function: make sure we get the correct file
Sometimes parts of a source file come from different places due to
preprocessing, and the lines can overlap.
Simon Marlow [Fri, 27 Apr 2007 14:20:36 +0000 (14:20 +0000)]
Breakpoints: don't attempt to bind variables with unboxed types
Simon Marlow [Fri, 27 Apr 2007 14:20:13 +0000 (14:20 +0000)]
We shouldn't let-bind expressions with unlifted type
Now I can single step through Happy-generated parsers
Simon Marlow [Fri, 27 Apr 2007 12:26:17 +0000 (12:26 +0000)]
add missing @ (see bug #1302)
Simon Marlow [Fri, 27 Apr 2007 12:12:03 +0000 (12:12 +0000)]
don't forget to clean the .bat files
See bug #1295
Simon Marlow [Fri, 27 Apr 2007 12:01:13 +0000 (12:01 +0000)]
Basic heap profile support without -prof
Now that constructor info tables contain the name of the constructor,
we can generate useful heap profiles without requiring the whole
program and libraries to be compiled with -prof. So now, "+RTS -hT"
generates a heap profile for any program, dividing the profile by
constructor. It wouldn't be hard to add support for grouping
constructors by module, or to restrict the profile to certain
constructors/modules/packages.
This means that for the first time we can get heap profiles for GHCi,
which was previously impossible because the byte-code
interpreter and linker don't work with -prof.
Simon Marlow [Fri, 27 Apr 2007 11:56:35 +0000 (11:56 +0000)]
add the constructor name field to the info table for RTS constructors
Simon Marlow [Thu, 26 Apr 2007 21:31:00 +0000 (21:31 +0000)]
restore the correct Unicode ellipsis character
It looks like this was accidentally replaced with '?' in the patch
"HsSyn clean up for indexed types". (see bug #1294)
Tim Chevalier [Thu, 26 Apr 2007 19:18:57 +0000 (19:18 +0000)]
Avoid segfault when ticky file argument is stderr
If you compiled a program with -ticky and ran it with:
./foo +RTS -rstderr -RTS
the result would be a segfault. This was because the RTS interprets stderr to
mean "use debugBelch to print out messages," and sets the ticky file pointer
to NULL as a result, but PrintTickyInfo (the function in Ticky.c that prints
out the ticky report) wasn't checking for NULL.
I changed PrintTickyInfo to check whether the ticky file pointer is NULL and
output to stderr if so.
Also removed an unused import from CodeOutput.lhs.
Pepe Iborra [Thu, 26 Apr 2007 16:35:40 +0000 (16:35 +0000)]
Dont tidy up tyvars after :print type reconstruction
I introduced a bug yesterday when I changed the way tidying up was performed.
As a result of tidying, cvObtainTerm could be returning types
with regular tyvars inside, which never should.
But actually, it's better if we do not do the tidying up, in order to
keep the tyvar names from the environment.
New names will be introduced only when an existential is found, which
is not so common. In this case the user will see a funny name.
Is that really an issue?
Simon Marlow [Thu, 26 Apr 2007 15:16:15 +0000 (15:16 +0000)]
fix scoping issues with mdo (test dynbrk004)
Pepe Iborra [Thu, 26 Apr 2007 10:30:51 +0000 (10:30 +0000)]
Formatting and minor changes in the ghci debugger section
Pepe Iborra [Thu, 26 Apr 2007 10:30:14 +0000 (10:30 +0000)]
Update an example on the ghci debugger section
Pepe Iborra [Thu, 26 Apr 2007 10:18:53 +0000 (10:18 +0000)]
We don't have -fdebugging anymore, and fine tuning is not really necessary now
Pepe Iborra [Thu, 26 Apr 2007 09:37:19 +0000 (09:37 +0000)]
New section on debugging lambdas in the ghci user guide
Pepe Iborra [Thu, 26 Apr 2007 09:23:42 +0000 (09:23 +0000)]
Unbreak the users_guide
Pepe Iborra [Thu, 26 Apr 2007 09:11:09 +0000 (09:11 +0000)]
:force is not unsupported anymore
Simon Marlow [Thu, 26 Apr 2007 10:11:27 +0000 (10:11 +0000)]
Attach free variables rather than in-scope variables to breakpoints
This speeds up the debugger quite a bit, we're now only about 30%
slower than ordinary GHCi, and still adding breakpoints to every
sub-expression. Also we now get to see the free variables in
recursive bindings, which wasn't working properly before.
Simon Marlow [Thu, 26 Apr 2007 08:39:02 +0000 (08:39 +0000)]
getRdrNamesInScope: return interactively-bound names too
so completion can now complete names of local bindings
Simon Marlow [Thu, 26 Apr 2007 08:37:13 +0000 (08:37 +0000)]
unused import
Simon Marlow [Thu, 26 Apr 2007 08:36:57 +0000 (08:36 +0000)]
Give a better error message when we try to print a value of unknown type
Stopped at ../Test3.hs:(1,0)-(2,30)
_result :: [a]
[../Test3.hs:(1,0)-(2,30)] *Main> _result
<interactive>:1:0:
Ambiguous type variable `a' in the constraint:
`Show a' arising from a use of `print' at <interactive>:1:0-6
Cannot resolve unkonwn runtime types: a
Use :print or :force to determine these types
Pepe Iborra [Wed, 25 Apr 2007 19:40:48 +0000 (19:40 +0000)]
Drop newtypes before computing the refinement substitution after :print type reconstruction
Pepe Iborra [Wed, 25 Apr 2007 17:02:10 +0000 (17:02 +0000)]
fix :print reconstructing too many types in environment bindings
For more details, see test print019
Pepe Iborra [Wed, 25 Apr 2007 16:21:20 +0000 (16:21 +0000)]
Fix some corner cases in :print after the recent changes
Pepe Iborra [Wed, 25 Apr 2007 09:58:29 +0000 (09:58 +0000)]
Update the users_guide regarding list notation in :print
Simon Marlow [Wed, 25 Apr 2007 15:42:35 +0000 (15:42 +0000)]
Tidy types of free vars at a breakpoint
Also share the code that extends the InteractiveContext between
tcRnStmt and GHC.extendEnvironment.
Simon Marlow [Wed, 25 Apr 2007 14:52:07 +0000 (14:52 +0000)]
the Unknown types aren't required now
Simon Marlow [Wed, 25 Apr 2007 14:50:25 +0000 (14:50 +0000)]
remember the type of _result