12 years agoAdd missing libraries/Makefile dependencies on ifBuildable/ifBuildable
Ian Lynagh [Thu, 3 May 2007 14:07:32 +0000 (14:07 +0000)] 
Add missing libraries/Makefile dependencies on ifBuildable/ifBuildable

12 years agoUse a primop for getting the fields of the AP_STACK rather than an FFI call
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).

12 years agoimprove the :list command
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>

12 years agoAdd a little documentation to the libraries/Makefile
Ian Lynagh [Thu, 3 May 2007 13:36:54 +0000 (13:36 +0000)] 
Add a little documentation to the libraries/Makefile

12 years agoOnly touch the configure stamp if configure succeeds
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!

12 years agoAdd history/trace functionality to the GHCi debugger
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.

12 years agouse extendInteractiveContext instead of custom code
Simon Marlow [Thu, 3 May 2007 13:15:25 +0000 (13:15 +0000)] 
use extendInteractiveContext instead of custom code

12 years agocancel out some reverses by changing the order of ic_tmp_ids
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

12 years agouse the reader part of the monad for the inScope set
Simon Marlow [Thu, 3 May 2007 12:50:06 +0000 (12:50 +0000)] 
use the reader part of the monad for the inScope set

12 years agoMake coreSyn/CoreUtils.lhs compile
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.

12 years agoMake boot handle getting the libraries
Ian Lynagh [Mon, 30 Apr 2007 11:35:19 +0000 (11:35 +0000)] 
Make boot handle getting the libraries

12 years agoRemove references to -fticky-ticky flag
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.

12 years agoComments, plus type sigs [Wed, 2 May 2007 16:38:54 +0000 (16:38 +0000)] 
Comments, plus type sigs

12 years agoWarning police [Wed, 2 May 2007 16:38:33 +0000 (16:38 +0000)] 
Warning police

12 years agoLayout only [Wed, 2 May 2007 16:38:15 +0000 (16:38 +0000)] 
Layout only

12 years agoImport fiddling [Wed, 2 May 2007 16:37:46 +0000 (16:37 +0000)] 
Import fiddling

12 years agoAdd more assertions [Wed, 2 May 2007 16:37:09 +0000 (16:37 +0000)] 
Add more assertions

12 years agoUse the record fields of IdInfo.RecordSelId [Wed, 2 May 2007 16:36:18 +0000 (16:36 +0000)] 
Use the record fields of IdInfo.RecordSelId

12 years agoMake records work properly with type families [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

12 years agoRefactoring, tidyup and improve layering
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.

12 years agomove -fno-print-bind-result into the GHCi section
Simon Marlow [Wed, 2 May 2007 12:55:23 +0000 (12:55 +0000)] 
move -fno-print-bind-result into the GHCi section

12 years agoPrint the "skipping" messages at verbosity 2 again
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.

12 years agoImprove error reporting for type signatures [Wed, 2 May 2007 11:47:38 +0000 (11:47 +0000)] 
Improve error reporting for type signatures

See Trac #1310

12 years agoDo not generate warnings for compiler-generated code [Wed, 2 May 2007 10:39:24 +0000 (10:39 +0000)] 
Do not generate warnings for compiler-generated code

Fixes Trac #1313

12 years agoAdd ndp package to boring list [Wed, 2 May 2007 10:38:45 +0000 (10:38 +0000)] 
Add ndp package to boring list

12 years agoDocument the fact that you can't make a newtype of an unboxed data type [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

12 years agoUse pprSourceTyCon; delete unused tyConOrigHead [Wed, 2 May 2007 10:36:32 +0000 (10:36 +0000)] 
Use pprSourceTyCon; delete unused tyConOrigHead

12 years agoFixes to data type families [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.

12 years agoFix egregious typo in TcUnify [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

12 years agoTypo in comments [Wed, 25 Apr 2007 16:13:06 +0000 (16:13 +0000)] 
Typo in comments

12 years agoFix misleading debug trace [Wed, 25 Apr 2007 16:12:44 +0000 (16:12 +0000)] 
Fix misleading debug trace

12 years agoImprove hashing of expressions for CSE (reduces warnings about extendCSEnv) [Wed, 25 Apr 2007 14:15:30 +0000 (14:15 +0000)] 
Improve hashing of expressions for CSE (reduces warnings about extendCSEnv)

12 years agoremove unused primitives.xml
Simon Marlow [Wed, 2 May 2007 08:29:02 +0000 (08:29 +0000)] 
remove unused primitives.xml

12 years agoFix grammar error in docs (as per Trac 1319)
Tim Chevalier [Wed, 2 May 2007 01:19:56 +0000 (01:19 +0000)] 
Fix grammar error in docs (as per Trac 1319)

12 years agoStopping tick boxes for being removed round calls to error. [Tue, 1 May 2007 15:57:29 +0000 (15:57 +0000)] 
Stopping tick boxes for being removed round calls to error.

12 years ago-fwarn-monomorphism-restriction is now off by default
Ian Lynagh [Tue, 1 May 2007 14:25:43 +0000 (14:25 +0000)] 
-fwarn-monomorphism-restriction is now off by default

12 years agoAdd new skolem tyvars to the InteractiveContext after type reconstruction
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

12 years agodocument the current behaviour of -Wall, see #1292
Simon Marlow [Tue, 1 May 2007 08:22:24 +0000 (08:22 +0000)] 
document the current behaviour of -Wall, see #1292

12 years agodon't forget to enable ^C after a :cont or :step
Simon Marlow [Mon, 30 Apr 2007 15:06:45 +0000 (15:06 +0000)] 
don't forget to enable ^C after a :cont or :step

12 years agotidyup comments and fix a few warnings
Simon Marlow [Mon, 30 Apr 2007 10:57:22 +0000 (10:57 +0000)] 
tidyup comments and fix a few warnings

12 years agoChanging internal data structures used by Hpc [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.

12 years agoRemove skolem tyvars from the InteractiveContext once they have been instantiated...
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

12 years agoRestore tidying up of tyvars in :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

12 years agoMake GHCi's banner fit in a standard 80-column terminal
Ian Lynagh [Mon, 30 Apr 2007 15:17:37 +0000 (15:17 +0000)] 
Make GHCi's banner fit in a standard 80-column terminal

12 years agoMake boot handle getting the libraries
Ian Lynagh [Mon, 30 Apr 2007 11:35:19 +0000 (11:35 +0000)] 
Make boot handle getting the libraries

12 years agoHandle unbuildable packages differently
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.

12 years agoSet rts/gmp/configure executable when booting
Ian Lynagh [Mon, 30 Apr 2007 10:25:53 +0000 (10:25 +0000)] 
Set rts/gmp/configure executable when booting

12 years agoLook for -q in the darcs flags as well as the darcs-all flags
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

12 years agoPut the darcs-all command parsing into main() so it can use @_
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 @_

12 years agoMake darcs-all a perl script
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.

12 years agoDon't enable the monomorphism warning by default
Ian Lynagh [Sun, 29 Apr 2007 12:06:25 +0000 (12:06 +0000)] 
Don't enable the monomorphism warning by default

12 years agooutside of runStmt, if a breakpoint is hit then just print a message
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

12 years agogive the statements under evaluation in the ":show context" output
Simon Marlow [Fri, 27 Apr 2007 15:38:52 +0000 (15:38 +0000)] 
give the statements under evaluation in the ":show context" output

12 years agobreak by function: make sure we get the correct file
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.

12 years agoBreakpoints: don't attempt to bind variables with unboxed types
Simon Marlow [Fri, 27 Apr 2007 14:20:36 +0000 (14:20 +0000)] 
Breakpoints: don't attempt to bind variables with unboxed types

12 years agoWe shouldn't let-bind expressions with unlifted type
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

12 years agoadd missing @ (see bug #1302)
Simon Marlow [Fri, 27 Apr 2007 12:26:17 +0000 (12:26 +0000)] 
add missing @ (see bug #1302)

12 years agodon't forget to clean the .bat files
Simon Marlow [Fri, 27 Apr 2007 12:12:03 +0000 (12:12 +0000)] 
don't forget to clean the .bat files
See bug #1295

12 years agoBasic heap profile support without -prof
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

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.

12 years agoadd the constructor name field to the info table for RTS constructors
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

12 years agorestore the correct Unicode ellipsis character
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)

12 years agoAvoid segfault when ticky file argument is stderr
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.

12 years agoDont tidy up tyvars after :print type reconstruction
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?

12 years agofix scoping issues with mdo (test dynbrk004)
Simon Marlow [Thu, 26 Apr 2007 15:16:15 +0000 (15:16 +0000)] 
fix scoping issues with mdo (test dynbrk004)

12 years agoFormatting and minor changes in the ghci debugger section
Pepe Iborra [Thu, 26 Apr 2007 10:30:51 +0000 (10:30 +0000)] 
Formatting and minor changes in the ghci debugger section

12 years agoUpdate an example on 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

12 years agoWe don't have -fdebugging anymore, and fine tuning is not really necessary now
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

12 years agoNew section on debugging lambdas in the ghci user guide
Pepe Iborra [Thu, 26 Apr 2007 09:37:19 +0000 (09:37 +0000)] 
New section on debugging lambdas in the ghci user guide

12 years agoUnbreak the users_guide
Pepe Iborra [Thu, 26 Apr 2007 09:23:42 +0000 (09:23 +0000)] 
Unbreak the users_guide

12 years ago:force is not unsupported anymore
Pepe Iborra [Thu, 26 Apr 2007 09:11:09 +0000 (09:11 +0000)] 
:force is not unsupported anymore

12 years agoAttach free variables rather than in-scope variables to breakpoints
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.

12 years agogetRdrNamesInScope: return interactively-bound names too
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

12 years agounused import
Simon Marlow [Thu, 26 Apr 2007 08:37:13 +0000 (08:37 +0000)] 
unused import

12 years agoGive a better error message when we try to print a value of unknown type
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

      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

12 years agoDrop newtypes before computing the refinement substitution after :print type reconstr...
Pepe Iborra [Wed, 25 Apr 2007 19:40:48 +0000 (19:40 +0000)] 
Drop newtypes before computing the refinement substitution after :print type reconstruction

12 years agofix :print reconstructing too many types in environment bindings
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

12 years agoFix some corner cases in :print after the recent changes
Pepe Iborra [Wed, 25 Apr 2007 16:21:20 +0000 (16:21 +0000)] 
Fix some corner cases in :print after the recent changes

12 years agoUpdate the users_guide regarding list notation in :print
Pepe Iborra [Wed, 25 Apr 2007 09:58:29 +0000 (09:58 +0000)] 
Update the users_guide regarding list notation in :print

12 years agoTidy types of free vars at a breakpoint
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.

12 years agothe Unknown types aren't required now
Simon Marlow [Wed, 25 Apr 2007 14:52:07 +0000 (14:52 +0000)] 
the Unknown types aren't required now

12 years agoremember the type of _result
Simon Marlow [Wed, 25 Apr 2007 14:50:25 +0000 (14:50 +0000)] 
remember the type of _result

12 years agoforce APs, AP_STACKs and ThunkSelectors in :force
Simon Marlow [Wed, 25 Apr 2007 14:29:45 +0000 (14:29 +0000)] 
force APs, AP_STACKs and ThunkSelectors in :force

12 years agouse Any as the HValue type, this should be a bit safer than forall a.a
Simon Marlow [Wed, 25 Apr 2007 14:29:14 +0000 (14:29 +0000)] 
use Any as the HValue type, this should be a bit safer than forall a.a

12 years agounused exports
Simon Marlow [Wed, 25 Apr 2007 13:24:55 +0000 (13:24 +0000)] 
unused exports

12 years agounused import
Simon Marlow [Wed, 25 Apr 2007 13:24:33 +0000 (13:24 +0000)] 
unused import

12 years agorefactor: move pprintClosureCommand out of the GHCi monad
Simon Marlow [Wed, 25 Apr 2007 13:17:26 +0000 (13:17 +0000)] 
refactor: move pprintClosureCommand out of the GHCi monad
Strictly speaking most of pprintClosureCommand should be exported by
the GHC API, but this is a step in the right direction.

12 years agoKeep track of free type variables in the interactive bindings
Simon Marlow [Wed, 25 Apr 2007 13:03:32 +0000 (13:03 +0000)] 
Keep track of free type variables in the interactive bindings

Now, the type checker won't attempt to generalise over the skolem
variables in the interactive bindings.  If we end up trying to show
one of these types, there will be an unresolved predicate 'Show t'
which causes a type error (albeit a strange one, I'll fix that

12 years agoSome tyvars were being introduced in the environment via the thunk bindings '_ti...
Pepe Iborra [Tue, 24 Apr 2007 17:04:46 +0000 (17:04 +0000)] 
Some tyvars were being introduced in the environment via the thunk bindings '_ti' in :print

12 years agoWhen a type is refined after :print, propagate the substitution to all the interactiv...
Pepe Iborra [Tue, 24 Apr 2007 11:19:26 +0000 (11:19 +0000)] 
When a type is refined after :print, propagate the substitution to all the interactive environment

12 years agoconvert type variables to TcTyVars, otherwise the typechecker gets confused
Simon Marlow [Tue, 24 Apr 2007 14:18:47 +0000 (14:18 +0000)] 
convert type variables to TcTyVars, otherwise the typechecker gets confused

12 years agoDebuggerTys doesn't exist any more
Simon Marlow [Tue, 24 Apr 2007 14:18:06 +0000 (14:18 +0000)] 
DebuggerTys doesn't exist any more

12 years agoBreakpoints: get the names of the free variables right
Simon Marlow [Tue, 24 Apr 2007 11:32:02 +0000 (11:32 +0000)] 
Breakpoints: get the names of the free variables right

Previously we relied on the names of the Ids attached to a tick being
the same as the names of the original variables in the source code.
Sometimes this worked, sometimes it didn't because the simplifier
would inline away the Id.  So now we do this properly and retain the
original OccNames from the source code for each breakpoint, and use
these to construct the new Ids when we stop.

Doing this involved moving the tracking of in-scope variables from the
desugarer to the coverage pass.

12 years agoWe no longer instantiate tyvars to Unknown types in the :print mechanism
Pepe Iborra [Tue, 24 Apr 2007 10:23:13 +0000 (10:23 +0000)] 
We no longer instantiate tyvars to Unknown types in the :print mechanism

Instead, we keep the original tyvars.
The plan is to exploit type relationships among closures to recover more types.

12 years agoremove unused imports
Simon Marlow [Tue, 24 Apr 2007 11:14:18 +0000 (11:14 +0000)] 
remove unused imports

12 years agoadd comments
Simon Marlow [Tue, 24 Apr 2007 10:31:25 +0000 (10:31 +0000)] 
add comments

12 years agoTweak darcs-all script
Ian Lynagh [Wed, 25 Apr 2007 12:46:20 +0000 (12:46 +0000)] 
Tweak darcs-all script
If you got darcs by SSH without specifying a username then the script
would break.

12 years agoOnly haddock a package if it is buildable; spotted by Claus Reinke
Ian Lynagh [Wed, 25 Apr 2007 11:10:39 +0000 (11:10 +0000)] 
Only haddock a package if it is buildable; spotted by Claus Reinke

12 years agoGenerating synonym instance representation tycons
Manuel M T Chakravarty [Wed, 25 Apr 2007 09:16:46 +0000 (09:16 +0000)] 
Generating synonym instance representation tycons
- Type synonym instances are turned into representation synonym tycons
- They are entered into the pool of family instances (FamInst environments)
  in the same way as data/newtype instances
- Still missing is writing the parent tycon information into ifaces and
  various well-formedness checks.

12 years agoAdd -fwarn-monomorphism-restriction (on by default) to warn when the MR is used [Wed, 25 Apr 2007 10:18:32 +0000 (10:18 +0000)] 
Add -fwarn-monomorphism-restriction (on by default) to warn when the MR is used

Users often trip up on the Dreaded Monomorphism Restriction.  This
warning flag tells you when the MR springs into action.

Currently it's on by default, but we could change that.

12 years agoRetain inline-pragma information on unfoldings in interface files [Wed, 25 Apr 2007 07:49:24 +0000 (07:49 +0000)] 
Retain inline-pragma information on unfoldings in interface files

WARNING: this patch changes interface-file formats slightly
   you will need to recompile your libraries

Duncan Coutts wanted to export a function that has a NOINLNE pragma
in a local let-defintion.  This works fine within a module, but was
not surviving across the interface-file serialisation.

Regardless of whether or not he's doing something sensible, it seems
reasonable to try to retain local-binder IdInfo across interface files.
This initial patch just retains inline-pragma info, on the grounds that
other IdInfo can be re-inferred at the inline site.

Interface files get a tiny bit bigger, but it seesm slight.