ghc.git
9 years agoRefactoring and tidy up in the build system
Simon Marlow [Thu, 23 Sep 2010 09:56:42 +0000 (09:56 +0000)] 
Refactoring and tidy up in the build system

Instead of the ghc-stage and ghc-stage2-package files in a package, we
now have a list of these in ghc.mk.  There are other similar lists (of
boot-packages and non-installable packages), so this is not too bad,
and is simpler.

While poking around in the top-level ghc.mk file I spotted various
opportunities to clean up and re-order some of the cruft that has
accumulated over time.

9 years agoAllow absent State# RealWorld arguments
simonpj@microsoft.com [Thu, 23 Sep 2010 11:13:56 +0000 (11:13 +0000)] 
Allow absent State# RealWorld arguments

9 years agoAdd notSCCNote, and use it
simonpj@microsoft.com [Thu, 23 Sep 2010 10:59:49 +0000 (10:59 +0000)] 
Add notSCCNote, and use it

The point here is that SCCs get in the way of eta
expansion and we must treat them uniformly.

9 years agoRemove use of lambda with a refutable pattern
simonpj@microsoft.com [Thu, 23 Sep 2010 10:59:01 +0000 (10:59 +0000)] 
Remove use of lambda with a refutable pattern

9 years agoAvoid ASSERT black hole
simonpj@microsoft.com [Thu, 23 Sep 2010 10:58:20 +0000 (10:58 +0000)] 
Avoid ASSERT black hole

When this ASSERT tripped in CoreToStg it tried to print out
too much, which tripped the asssertion again.  Result: an
infinite loop with no output at all.  Hard to debug!

9 years agoRejig the absent-arg stuff for unlifted types
simonpj@microsoft.com [Thu, 23 Sep 2010 10:57:32 +0000 (10:57 +0000)] 
Rejig the absent-arg stuff for unlifted types

This is what was giving the "absent entered" messages
See Note [Absent errors] in WwLib.  We now return a
suitable literal for absent values of unlifted type.

9 years agoRemove -fwarn-simple-patterns, and make -fwarn-incomplete-patterns include lambdas
simonpj@microsoft.com [Wed, 22 Sep 2010 13:39:34 +0000 (13:39 +0000)] 
Remove -fwarn-simple-patterns, and make -fwarn-incomplete-patterns include lambdas

This makes
     \(x:xs) -> e
want when you have -fwarn-incomplete-patterns, which is consistent.

9 years agoGet rid of non-exhaustive lambda
simonpj@microsoft.com [Wed, 22 Sep 2010 13:38:01 +0000 (13:38 +0000)] 
Get rid of non-exhaustive lambda

9 years agoFix an ASSERT failure with profiling
simonpj@microsoft.com [Wed, 22 Sep 2010 13:37:41 +0000 (13:37 +0000)] 
Fix an ASSERT failure with profiling

The problem arose with this kind of thing

   x = (,) (scc "blah" Nothing)

Then 'x' is marked NoCafRefs by CoreTidy, becuase it has
arity 1, and doesn't mention any caffy things.

That in turns means that CorePrep must not float out the
sat binding to give

  sat = scc "blah" Nothing
  x = (,) sat

Rather we must generate

  x = \eta. let sat = scc "blah" Nothing
            in (,) sat eta

URGH! This Caf stuff is such a mess.

9 years agoRemove an out of date paragraph from the user guide; fixes #4331
Ian Lynagh [Wed, 22 Sep 2010 22:52:39 +0000 (22:52 +0000)] 
Remove an out of date paragraph from the user guide; fixes #4331

9 years agoFix bindisttest when GhcProfiled = YES
Ian Lynagh [Tue, 21 Sep 2010 22:26:34 +0000 (22:26 +0000)] 
Fix bindisttest when GhcProfiled = YES

9 years agoFixes for when HADDOCK_DOCS=NO
Ian Lynagh [Tue, 21 Sep 2010 21:39:16 +0000 (21:39 +0000)] 
Fixes for when HADDOCK_DOCS=NO

9 years agoBump version to 7.1
Ian Lynagh [Tue, 21 Sep 2010 19:59:35 +0000 (19:59 +0000)] 
Bump version to 7.1

9 years agoDon't use -march=i686 on powerpc-apple-darwin
Ian Lynagh [Tue, 21 Sep 2010 19:37:21 +0000 (19:37 +0000)] 
Don't use -march=i686 on powerpc-apple-darwin
Thorikil ran into this when doing a PPC OS X build. We now also don't
use -m32 on PPC/OSX, but I don't think it should be necessary. We can
add it back if it does turn out to be.

9 years agoadd a simple trace facility to the build system
Simon Marlow [Tue, 21 Sep 2010 13:47:29 +0000 (13:47 +0000)] 
add a simple trace facility to the build system

saying

  make TRACE=1

prints most of the macro calls and their arguments.  It's easy to
trace new macros; see rules/trace.mk.

9 years agofix building with extra packages (packages were added to BUILD_DIRS twice)
Simon Marlow [Tue, 21 Sep 2010 10:01:53 +0000 (10:01 +0000)] 
fix building with extra packages (packages were added to BUILD_DIRS twice)
Also add some comments about what extra-packages is doing

9 years agoadd extra packages to $(EXTRA_PACKAGES), so we avoid installing them by default
Simon Marlow [Mon, 20 Sep 2010 14:43:07 +0000 (14:43 +0000)] 
add extra packages to $(EXTRA_PACKAGES), so we avoid installing them by default

9 years agoFix indexing error in archive loader
Ian Lynagh [Tue, 21 Sep 2010 12:16:42 +0000 (12:16 +0000)] 
Fix indexing error in archive loader

9 years agoAdd some -Dl belches
Ian Lynagh [Tue, 21 Sep 2010 12:16:24 +0000 (12:16 +0000)] 
Add some -Dl belches

9 years agoAdd casts to fix warnings
Ian Lynagh [Tue, 21 Sep 2010 12:17:14 +0000 (12:17 +0000)] 
Add casts to fix warnings

9 years agoAdd support for BSD-variant large filenames in .a archives
Ian Lynagh [Tue, 21 Sep 2010 00:04:51 +0000 (00:04 +0000)] 
Add support for BSD-variant large filenames in .a archives

9 years agoTell Cabal that we're not building GHCi libs if UseArchivesForGhci=YES
Ian Lynagh [Mon, 20 Sep 2010 23:04:49 +0000 (23:04 +0000)] 
Tell Cabal that we're not building GHCi libs if UseArchivesForGhci=YES

9 years ago"UseArchivesForGhci = YES" on darwin
Ian Lynagh [Mon, 20 Sep 2010 21:15:38 +0000 (21:15 +0000)] 
"UseArchivesForGhci = YES" on darwin

9 years agoAdd a dependency that my OS X build has recently started tripping up over
Ian Lynagh [Mon, 20 Sep 2010 21:02:39 +0000 (21:02 +0000)] 
Add a dependency that my OS X build has recently started tripping up over

9 years agoAdd "Use archives for ghci" to --info output
Ian Lynagh [Mon, 20 Sep 2010 21:05:23 +0000 (21:05 +0000)] 
Add "Use archives for ghci" to --info output

9 years agoImplement archive loading for ghci
Ian Lynagh [Mon, 20 Sep 2010 20:16:20 +0000 (20:16 +0000)] 
Implement archive loading for ghci

9 years agoTweak gen_contents_index now dph may not be there
Ian Lynagh [Mon, 20 Sep 2010 20:15:13 +0000 (20:15 +0000)] 
Tweak gen_contents_index now dph may not be there

9 years agoFilter out the FFI library when loading package in ghci
Ian Lynagh [Mon, 20 Sep 2010 18:10:32 +0000 (18:10 +0000)] 
Filter out the FFI library when loading package in ghci
The FFI GHCi import lib isn't needed as
compiler/ghci/Linker.lhs + rts/Linker.c link the
interpreted references to FFI to the compiled FFI.
We therefore filter it out so that we don't get
duplicate symbol errors.

9 years agoLoosen the conditions for -XUndecidableInstances; fixes Trac #4200
simonpj@microsoft.com [Sun, 19 Sep 2010 16:26:23 +0000 (16:26 +0000)] 
Loosen the conditions for -XUndecidableInstances; fixes Trac #4200

9 years agoFurther improvements in error messages
simonpj@microsoft.com [Sun, 19 Sep 2010 15:33:55 +0000 (15:33 +0000)] 
Further improvements in error messages

9 years agoAdd a flag -fwarn-missing-local-sigs, and improve -fwarn-mising-signatures
simonpj@microsoft.com [Sun, 19 Sep 2010 15:33:27 +0000 (15:33 +0000)] 
Add a flag -fwarn-missing-local-sigs, and improve -fwarn-mising-signatures

The new flag prints out a warning if you have a local,
polymorphic binding that lacks a type signature. It's meant
to help with the transition to the new typechecker, which
discourages local let-generalisation.

At the same time I moved the missing-signature code to TcHsSyn,
where it takes place as part of zonking.  That way the
types are reported after all typechecking is complete,
thereby fixing Trac #3696.  (It's even more important for
local bindings, which is why I made the change.)

9 years agoInclude the "stupid theta" in the type of $con2tag
simonpj@microsoft.com [Sun, 19 Sep 2010 15:22:01 +0000 (15:22 +0000)] 
Include the "stupid theta" in the type of $con2tag

9 years agoAdd a release note about the typechecker
Ian Lynagh [Sun, 19 Sep 2010 13:29:27 +0000 (13:29 +0000)] 
Add a release note about the typechecker

9 years agoEnable shared libs on OpenBSD
Matthias Kilian [Sat, 18 Sep 2010 20:50:40 +0000 (20:50 +0000)] 
Enable shared libs on OpenBSD

9 years agoAdd separate functions for querying DynFlag and ExtensionFlag options
Ian Lynagh [Sat, 18 Sep 2010 16:38:15 +0000 (16:38 +0000)] 
Add separate functions for querying DynFlag and ExtensionFlag options
and remove the temporary DOpt class workaround.

9 years agoFix mkUserGuidePart deps
Ian Lynagh [Sat, 18 Sep 2010 14:59:04 +0000 (14:59 +0000)] 
Fix mkUserGuidePart deps
We need to directly depend on the stage1 libs. The stage1 compiler lib
doesn't depend on them.

9 years agoFix build on cygwin: Normalise slashes in .depend files to be /
Ian Lynagh [Sat, 18 Sep 2010 13:23:28 +0000 (13:23 +0000)] 
Fix build on cygwin: Normalise slashes in .depend files to be /

9 years agoextra packages info is now read from packages file
Ian Lynagh [Fri, 17 Sep 2010 22:44:09 +0000 (22:44 +0000)] 
extra packages info is now read from packages file
rather than being repeated in the build system

9 years agoTweak darcs-all
Ian Lynagh [Fri, 17 Sep 2010 19:44:35 +0000 (19:44 +0000)] 
Tweak darcs-all

9 years agoBump dependencies
Ian Lynagh [Fri, 17 Sep 2010 18:36:09 +0000 (18:36 +0000)] 
Bump dependencies

9 years agoLibrary release notes for 7.0.1
Ian Lynagh [Fri, 17 Sep 2010 17:48:50 +0000 (17:48 +0000)] 
Library release notes for 7.0.1

9 years agoFix overriding of implicit parameters in the solver
simonpj@microsoft.com [Fri, 17 Sep 2010 14:04:03 +0000 (14:04 +0000)] 
Fix overriding of implicit parameters in the solver

9 years agoMinor type printing amomaly
simonpj@microsoft.com [Fri, 17 Sep 2010 14:02:04 +0000 (14:02 +0000)] 
Minor type printing amomaly

9 years agoSpaces only
simonpj@microsoft.com [Fri, 17 Sep 2010 14:01:56 +0000 (14:01 +0000)] 
Spaces only

9 years agoMinor refactoring
simonpj@microsoft.com [Fri, 17 Sep 2010 14:01:50 +0000 (14:01 +0000)] 
Minor refactoring

9 years agoAdd types of implicit parameters as untouchable
simonpj@microsoft.com [Fri, 17 Sep 2010 14:01:38 +0000 (14:01 +0000)] 
Add types of implicit parameters as untouchable

This is a tricky point:
   see Note [Implicit parameter untouchables]

9 years agoBetter pretty printing of implicit parameters
simonpj@microsoft.com [Fri, 17 Sep 2010 14:00:54 +0000 (14:00 +0000)] 
Better pretty printing of implicit parameters

9 years agoYet more error message improvement
simonpj@microsoft.com [Fri, 17 Sep 2010 12:12:06 +0000 (12:12 +0000)] 
Yet more error message improvement

9 years agoMore error message wibbles
simonpj@microsoft.com [Fri, 17 Sep 2010 09:47:21 +0000 (09:47 +0000)] 
More error message wibbles

9 years agoMore error refactoring
simonpj@microsoft.com [Fri, 17 Sep 2010 09:28:34 +0000 (09:28 +0000)] 
More error refactoring

9 years agoRefactor type errors a bit
simonpj@microsoft.com [Fri, 17 Sep 2010 08:07:26 +0000 (08:07 +0000)] 
Refactor type errors a bit

Improves kind error messages in paticular

9 years agoFix a very subtle shadowing bug in optCoercion
simonpj@microsoft.com [Thu, 16 Sep 2010 17:04:52 +0000 (17:04 +0000)] 
Fix a very subtle shadowing bug in optCoercion

See Note [Subtle shadowing in coercions]

This is what was going wrong in Trac 4160.

9 years agoFix bad error in tyVarsOfType
simonpj@microsoft.com [Thu, 16 Sep 2010 17:03:48 +0000 (17:03 +0000)] 
Fix bad error in tyVarsOfType

We weren't gathering the type variables free in the kind
of a coercion binder!

9 years agoMore assertions
simonpj@microsoft.com [Thu, 16 Sep 2010 17:03:10 +0000 (17:03 +0000)] 
More assertions

9 years agoAdd more location info in CoreLint
simonpj@microsoft.com [Thu, 16 Sep 2010 17:02:29 +0000 (17:02 +0000)] 
Add more location info in CoreLint

9 years agoPrint coercion variables as such (debugging change only)
simonpj@microsoft.com [Thu, 16 Sep 2010 16:59:44 +0000 (16:59 +0000)] 
Print coercion variables as such (debugging change only)

9 years agoRemove pprTrace
simonpj@microsoft.com [Wed, 15 Sep 2010 22:59:35 +0000 (22:59 +0000)] 
Remove pprTrace

9 years agoRemove dead code dealing with type refinement
simonpj@microsoft.com [Wed, 15 Sep 2010 22:32:30 +0000 (22:32 +0000)] 
Remove dead code dealing with type refinement

9 years agoUse mkAppTy
simonpj@microsoft.com [Wed, 15 Sep 2010 22:32:05 +0000 (22:32 +0000)] 
Use mkAppTy

Using AppTy in CoreLint was giving a bogus Lint failure

9 years agoComments only
simonpj@microsoft.com [Wed, 15 Sep 2010 22:12:53 +0000 (22:12 +0000)] 
Comments only

9 years agoExtend eta reduction to work with casted arguments
simonpj@microsoft.com [Wed, 15 Sep 2010 22:12:29 +0000 (22:12 +0000)] 
Extend eta reduction to work with casted arguments

See Trac #4201, and
Note [Eta reduction with casted arguments]

Thanks to Louis Wasserman for suggesting this, and
implementing an early version of the patch

9 years agoAllow "INLINEABLE" as a synonym
simonpj@microsoft.com [Wed, 15 Sep 2010 15:42:49 +0000 (15:42 +0000)] 
Allow "INLINEABLE" as a synonym

9 years agoDocumentation for INLINABLE
simonpj@microsoft.com [Wed, 15 Sep 2010 15:42:35 +0000 (15:42 +0000)] 
Documentation for INLINABLE

9 years agoImplement TH reification of instances (Trac #1835)
simonpj@microsoft.com [Wed, 15 Sep 2010 15:12:42 +0000 (15:12 +0000)] 
Implement TH reification of instances (Trac #1835)

Accompanying patch for template-haskell package is reqd

9 years agoerrno corresponding to ERROR_NO_DATA should be EPIPE (non-threaded RTS)
Simon Marlow [Wed, 15 Sep 2010 14:18:09 +0000 (14:18 +0000)] 
errno corresponding to ERROR_NO_DATA should be EPIPE (non-threaded RTS)

9 years agoWindows: use a thread-local variable for myTask()
Simon Marlow [Wed, 15 Sep 2010 12:06:27 +0000 (12:06 +0000)] 
Windows: use a thread-local variable for myTask()
Which entailed fixing an incorrect #ifdef in Task.c

9 years agoFix typo
Ian Lynagh [Wed, 15 Sep 2010 14:08:14 +0000 (14:08 +0000)] 
Fix typo

9 years agoAdd quotes in error message
simonpj@microsoft.com [Wed, 15 Sep 2010 14:47:24 +0000 (14:47 +0000)] 
Add quotes in error message

9 years agoFix isDefaultInlinePragma
simonpj@microsoft.com [Wed, 15 Sep 2010 14:47:10 +0000 (14:47 +0000)] 
Fix isDefaultInlinePragma

9 years agoImplement INLINABLE pragma
simonpj@microsoft.com [Wed, 15 Sep 2010 12:44:42 +0000 (12:44 +0000)] 
Implement INLINABLE pragma

Implements Trac #4299.  Documentation to come.

9 years agoLess voluminous error when derived code doesn't typecheck
simonpj@microsoft.com [Wed, 15 Sep 2010 07:23:01 +0000 (07:23 +0000)] 
Less voluminous error when derived code doesn't typecheck

9 years agoImprove pretty-printing of family instances
simonpj@microsoft.com [Wed, 15 Sep 2010 12:32:19 +0000 (12:32 +0000)] 
Improve pretty-printing of family instances

Fixed Trac #4246

9 years agoFix Trac #4240: -ddump-minimal-imports
simonpj@microsoft.com [Wed, 15 Sep 2010 12:19:37 +0000 (12:19 +0000)] 
Fix Trac #4240: -ddump-minimal-imports

See Note [Partial export] for the details.
I also fixed one egregious bug that was just
waiting to bite: we were using loadSysInterface
instead of loadSrcInterface.

9 years agoComments only
simonpj@microsoft.com [Wed, 15 Sep 2010 10:57:07 +0000 (10:57 +0000)] 
Comments only

9 years agoimplement setThreadAffinity on Windows (#1741)
Simon Marlow [Tue, 14 Sep 2010 15:58:44 +0000 (15:58 +0000)] 
implement setThreadAffinity on Windows (#1741)

9 years agoCOFF: cope with new debug sections in gcc 4.x (fixes ghciprog004)
Simon Marlow [Tue, 14 Sep 2010 15:30:26 +0000 (15:30 +0000)] 
COFF: cope with new debug sections in gcc 4.x (fixes ghciprog004)
Also updated the object file parser to properly handle the overflow
case for section names longer than 8 chars.

9 years agoeliminate clutter from make output
Simon Marlow [Wed, 15 Sep 2010 10:57:12 +0000 (10:57 +0000)] 
eliminate clutter from make output

9 years agorts_isProfiled should be a visible API (fixes T2615(dyn))
Simon Marlow [Wed, 15 Sep 2010 08:39:41 +0000 (08:39 +0000)] 
rts_isProfiled should be a visible API (fixes T2615(dyn))

9 years agoFix the "lost due to fragmentation" calculation
Simon Marlow [Tue, 14 Sep 2010 14:59:45 +0000 (14:59 +0000)] 
Fix the "lost due to fragmentation" calculation
It was counting the space used by block descriptors as "lost"

9 years agofix +RTS -S output: use peak_mblocks_allocated, now that mblocks can be freed
Simon Marlow [Tue, 14 Sep 2010 13:50:30 +0000 (13:50 +0000)] 
fix +RTS -S output: use peak_mblocks_allocated, now that mblocks can be freed

9 years agoFix egregious bug in deeplyInstantiate
simonpj@microsoft.com [Wed, 15 Sep 2010 07:03:25 +0000 (07:03 +0000)] 
Fix egregious bug in deeplyInstantiate

This resulted in an infinite loop in applyTypeToArgs, in syb

9 years agoImprove HsSyn pretty printing
simonpj@microsoft.com [Wed, 15 Sep 2010 07:02:55 +0000 (07:02 +0000)] 
Improve HsSyn pretty printing

9 years agoRemove (most of) the FiniteMap wrapper
Ian Lynagh [Tue, 14 Sep 2010 20:17:03 +0000 (20:17 +0000)] 
Remove (most of) the FiniteMap wrapper
We still have
    insertList, insertListWith, deleteList
which aren't in Data.Map, and
    foldRightWithKey
which works around the fold(r)WithKey addition and deprecation.

9 years agoImprove ASSERT
simonpj@microsoft.com [Tue, 14 Sep 2010 11:39:00 +0000 (11:39 +0000)] 
Improve ASSERT

9 years agoComment on what an "enumeration" type is
simonpj@microsoft.com [Tue, 14 Sep 2010 11:38:50 +0000 (11:38 +0000)] 
Comment on what an "enumeration" type is

9 years agoMake absent-arg wrappers work for unlifted types (fix Trac #4306)
simonpj@microsoft.com [Tue, 14 Sep 2010 11:38:27 +0000 (11:38 +0000)] 
Make absent-arg wrappers work for unlifted types (fix Trac #4306)

Previously we were simply passing arguments of unlifted
type to a wrapper, even if they were absent, which was
stupid.

See Note [Absent error Id] in WwLib.

9 years agoComments only
simonpj@microsoft.com [Tue, 14 Sep 2010 11:36:41 +0000 (11:36 +0000)] 
Comments only

9 years agoMove error-ids to MkCore (from PrelRules)
simonpj@microsoft.com [Tue, 14 Sep 2010 11:36:35 +0000 (11:36 +0000)] 
Move error-ids to MkCore (from PrelRules)

and adjust imports accordingly

9 years agoMore wibbles to deriving error messages
simonpj@microsoft.com [Tue, 14 Sep 2010 11:35:23 +0000 (11:35 +0000)] 
More wibbles to deriving error messages

9 years agoFix getThreadCPUTime()
Simon Marlow [Mon, 13 Sep 2010 15:38:38 +0000 (15:38 +0000)] 
Fix getThreadCPUTime()
ever since the patch "Check with sysconf _POSIX_THREAD_CPUTIME", it
has been returning incorrect results, because the sysconf variable to
check should have been _SC_THREAD_CPUTIME, not _POSIX_THREAD_CPUTIME.

9 years agofilter out the gcc-lib directory from the rts package's library-dirs
Simon Marlow [Mon, 13 Sep 2010 10:12:59 +0000 (10:12 +0000)] 
filter out the gcc-lib directory from the rts package's library-dirs
fixes problems when building with GHC 6.10 on Windows

9 years agoDon't include GC time in heap profiles (#4225)
Simon Marlow [Mon, 13 Sep 2010 13:38:52 +0000 (13:38 +0000)] 
Don't include GC time in heap profiles (#4225)

9 years agoUse clock_gettime (if available) to measure the process CPU time
Simon Marlow [Mon, 13 Sep 2010 13:38:18 +0000 (13:38 +0000)] 
Use clock_gettime (if available) to measure the process CPU time
This is much more accurate than getrusage, which was giving misleading
results when trying to time very quick operations like a minor GC.

9 years agomake stg_arg_bitmaps public, and available via the GHCi linker (#3672)
Simon Marlow [Mon, 13 Sep 2010 10:52:35 +0000 (10:52 +0000)] 
make stg_arg_bitmaps public, and available via the GHCi linker (#3672)

9 years agofix typo
Simon Marlow [Mon, 13 Sep 2010 10:51:00 +0000 (10:51 +0000)] 
fix typo

9 years agoUpdate release notes and docs with LLVM info.
David Terei [Tue, 14 Sep 2010 07:21:35 +0000 (07:21 +0000)] 
Update release notes and docs with LLVM info.

9 years agoRemove defaultExtensionFlags
Ian Lynagh [Mon, 13 Sep 2010 16:59:49 +0000 (16:59 +0000)] 
Remove defaultExtensionFlags
The default should do into languageExtensions instead

9 years agoImprove crash message
simonpj@microsoft.com [Mon, 13 Sep 2010 17:04:07 +0000 (17:04 +0000)] 
Improve crash message

9 years agoFix Trac #4302, plus a little refactoring
simonpj@microsoft.com [Mon, 13 Sep 2010 17:03:55 +0000 (17:03 +0000)] 
Fix Trac #4302, plus a little refactoring

9 years agoFix build with 6.10
Ian Lynagh [Mon, 13 Sep 2010 16:00:48 +0000 (16:00 +0000)] 
Fix build with 6.10