Ian Lynagh [Wed, 20 Feb 2008 15:37:52 +0000 (15:37 +0000)]
Rewrite fixTvSubstEnv so it iteratively applies its substition
This fixes a stack overflow when using strict UniqFMs. It might be
possible to rewrite it more efficiently, or to avoid needing it in the
first place.
Ian Lynagh [Tue, 19 Feb 2008 20:41:17 +0000 (20:41 +0000)]
Typo
Ian Lynagh [Thu, 7 Feb 2008 01:57:14 +0000 (01:57 +0000)]
Make some more modules use LazyUniqFM instead of UniqFM
If these modules use UniqFM then we get a stack overflow when compiling
modules that use fundeps. I haven't tracked down the actual cause.
Manuel M T Chakravarty [Tue, 19 Feb 2008 03:17:55 +0000 (03:17 +0000)]
Add configure option --with-macos-deployment-target
Ian Lynagh [Tue, 19 Feb 2008 02:04:29 +0000 (02:04 +0000)]
Fix warning in SCCfinal
Ian Lynagh [Tue, 19 Feb 2008 01:52:59 +0000 (01:52 +0000)]
Whitespace only
Ian Lynagh [Tue, 19 Feb 2008 01:32:33 +0000 (01:32 +0000)]
Fix warnings in UniqSupply
Ian Lynagh [Tue, 19 Feb 2008 01:24:17 +0000 (01:24 +0000)]
Whitespace only
Ian Lynagh [Tue, 19 Feb 2008 01:09:17 +0000 (01:09 +0000)]
Fix non-missing-signature warnings in MkId
Ian Lynagh [Tue, 19 Feb 2008 00:50:42 +0000 (00:50 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 23:45:59 +0000 (23:45 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 18:34:24 +0000 (18:34 +0000)]
Make literals in the syntax tree strict
Ian Lynagh [Mon, 18 Feb 2008 17:55:14 +0000 (17:55 +0000)]
Make the parser a bit stricter
Ian Lynagh [Wed, 13 Feb 2008 13:18:57 +0000 (13:18 +0000)]
seq what we actually want to seq, not the seq'ing function
Simon Marlow [Mon, 18 Feb 2008 11:57:48 +0000 (11:57 +0000)]
attempt to fix #2098 (PPC pepple please test & fix)
Simon Marlow [Sat, 9 Feb 2008 14:36:48 +0000 (14:36 +0000)]
FIX #2023: substitute for $topdir in haddockInterfaces and haddockHTMLs
Manuel M T Chakravarty [Mon, 18 Feb 2008 06:18:09 +0000 (06:18 +0000)]
All installed Haskell prgms have an inplace and an installed version
- GHC installs a range of compiled Haskell programs in addition to the actual
compiler. To ensure that they all run on the platform targeted by the build
(which may have different libraries installed than the build host), we need
to make sure that all compiled Haskell code going into an install is build
with the stage 1 compiler, not the bootstrap compiler. Getting this right
is especially important on the Mac to enable builds that work on Mac OS X
versions that are older than the one performing the build.
- For all installed utils implemented in Haskell (i.e., ghc-pkg, hasktags,
hsc2hs, runghc, hpc, and pwd) we compile two versions, an inplace version
and a version for installation. The former is build by the bootstrap
compiler during the stage 1 build and the latter is build by the stage 1
compiler during the stage 2 build.
- This is really very much as the setup for ghc itself, only that we don't use
separate stage1/ and stage2/ build directories. Instead, we clean before
each build. CAVEAT: This only works properly if invoked from the
toplevel Makefile.
- Instead of UseStage1=YES (as used by the previous binary-dist-specific
recompilation), we now use the same $(stage) variables as used for the
compiler proper - to increase uniformity and to avoid extra conditionals for
the install target.
Ian Lynagh [Mon, 18 Feb 2008 21:41:51 +0000 (21:41 +0000)]
Fix warnings in Pretty
Ian Lynagh [Mon, 18 Feb 2008 20:04:08 +0000 (20:04 +0000)]
Fix warnings in FiniteMap
Ian Lynagh [Mon, 18 Feb 2008 19:36:45 +0000 (19:36 +0000)]
Fix warnings in Binary
Ian Lynagh [Mon, 18 Feb 2008 19:18:46 +0000 (19:18 +0000)]
Fix warnings in StringBuffer
Ian Lynagh [Mon, 18 Feb 2008 19:08:49 +0000 (19:08 +0000)]
Fix warnings in IOEnv
Ian Lynagh [Mon, 18 Feb 2008 14:47:07 +0000 (14:47 +0000)]
Fix warnings in FastString, and check for empty case in head/tail
Ian Lynagh [Mon, 18 Feb 2008 11:22:32 +0000 (11:22 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 11:21:01 +0000 (11:21 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 11:19:41 +0000 (11:19 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 11:02:41 +0000 (11:02 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 10:59:09 +0000 (10:59 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 10:53:43 +0000 (10:53 +0000)]
Whitespace only
Ian Lynagh [Sun, 17 Feb 2008 17:51:33 +0000 (17:51 +0000)]
Tweak whitespace
Ian Lynagh [Sun, 17 Feb 2008 17:50:21 +0000 (17:50 +0000)]
Fix typo
Tim Chevalier [Sun, 17 Feb 2008 22:38:44 +0000 (22:38 +0000)]
Print better error message for reading External Core
GHC panicked with a "Prelude.undefined" error message if you tried to
compile a .hcr file. Since support for reading ExternalCore simply does
not exist, I added an error message to say that.
Please merge to 6.8. Thanks.
Tim Chevalier [Sun, 17 Feb 2008 21:32:06 +0000 (21:32 +0000)]
Documentation only: update External Core section of user guide
I updated the External Core section of the user guide, mostly to reflect
that the input path is broken and there are no firm plans to fix it.
Ian Lynagh [Sat, 16 Feb 2008 14:10:31 +0000 (14:10 +0000)]
Generate foo(void) rather than foo() in FFI stub files
-Wstrict-prototypes warns about the latter.
Patch from pcc in trac #2100.
Ian Lynagh [Fri, 15 Feb 2008 16:03:09 +0000 (16:03 +0000)]
Make hasktags -Wall clean
Ian Lynagh [Fri, 15 Feb 2008 15:51:22 +0000 (15:51 +0000)]
Whitespace only
Ian Lynagh [Fri, 15 Feb 2008 15:44:15 +0000 (15:44 +0000)]
Fix building hasktags
Ian Lynagh [Fri, 15 Feb 2008 15:35:58 +0000 (15:35 +0000)]
Revert an accidental comment change
marco-oweber@gmx.de [Tue, 12 Feb 2008 23:21:57 +0000 (23:21 +0000)]
find module names, fix for get constructor names, find class names as well, sort ctag files
marco-oweber@gmx.de [Tue, 12 Feb 2008 23:18:53 +0000 (23:18 +0000)]
added TODO item and link to alternatives on wiki
Duncan Coutts [Thu, 7 Feb 2008 17:00:20 +0000 (17:00 +0000)]
Make more arch-specific #if's exclusive with #else #error cases
So when the next person compiles the Sparc NCG it should fail more
obviously at compile time rather than panicing at runtime.
Plus one obvious fix for LocalReg gaining an extra param
Missing bits of Sparc NCG:
* genSwitch for generating jump tables. This is the most tricky one.
* ALLOCATABLE_REGS_INTEGER and ALLOCATABLE_REGS_DOUBLE just requires
finding and verifying the values. The nearby comment describes how.
* isRegRegMove and mkRegRegMoveInstr. Sparc uses Or for int move, check
what this is supposed to do for single and double float types.
* regDotColor. Probably just copy the ppc impl.
Ian Lynagh [Wed, 13 Feb 2008 16:11:06 +0000 (16:11 +0000)]
Document code a bit better
Ian Lynagh [Wed, 13 Feb 2008 15:42:32 +0000 (15:42 +0000)]
Add a necessary [] error case
Ian Lynagh [Wed, 13 Feb 2008 15:38:35 +0000 (15:38 +0000)]
\e -> f e ===> f
Twan van Laarhoven [Mon, 4 Feb 2008 02:11:31 +0000 (02:11 +0000)]
Fixed warnings in parser/Lexer.x
The -w flag can not be removed, because alex also generates code with lots of warnings.
Twan van Laarhoven [Mon, 4 Feb 2008 01:50:53 +0000 (01:50 +0000)]
Monadification and Fixed warnings in parser/RdrHsSyn, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 22:39:32 +0000 (22:39 +0000)]
Fixed warnings in vectorise/VectMonad
Roman Leshchinskiy [Tue, 12 Feb 2008 05:22:19 +0000 (05:22 +0000)]
Fix typo in message
Simon Marlow [Thu, 7 Feb 2008 14:39:15 +0000 (14:39 +0000)]
Remove old code to get TMPDIR, use System.Directory.getTemporaryDirectory
Manuel M T Chakravarty [Mon, 11 Feb 2008 11:52:01 +0000 (11:52 +0000)]
Mac installer: Added XCODE_EXTRA_CONFIGURE_ARGS
Manuel M T Chakravarty [Mon, 11 Feb 2008 09:11:19 +0000 (09:11 +0000)]
Mac installer: make Uninstaller a bit more robust
Manuel M T Chakravarty [Mon, 11 Feb 2008 06:14:50 +0000 (06:14 +0000)]
Mac installer: add comprehensive licencing information
Manuel M T Chakravarty [Mon, 11 Feb 2008 02:23:29 +0000 (02:23 +0000)]
Force -s on ar in xcode builds
Roman Leshchinskiy [Mon, 11 Feb 2008 04:02:11 +0000 (04:02 +0000)]
Fix warning (FIX validate)
Roman Leshchinskiy [Mon, 11 Feb 2008 03:23:50 +0000 (03:23 +0000)]
Symbolic tags for simplifier phases
Every simplifier phase can have an arbitrary number of tags and multiple
phases can share the same tags. The tags can be used as arguments to
-ddump-simpl-phases to specify which phases are to be dumped.
For instance, -ddump-simpl-phases=main will dump the output of phases 2, 1 and
0 of the initial simplifier run (they all share the "main" tag) while
-ddump-simpl-phases=main:0 will dump only the output of phase 0 of that run.
At the moment, the supported tags are:
main The main, staged simplifier run (before strictness)
post-worker-wrapper After the w/w split
post-liberate-case After LiberateCase
final Final clean-up run
The names are somewhat arbitrary and will change in the future.
Roman Leshchinskiy [Mon, 11 Feb 2008 02:06:30 +0000 (02:06 +0000)]
Allow -ddump-simpl-phases to specify which phases to dump
We can now say -ddump-simpl-phases=1,2 to dump only these two phases and
nothing else.
Twan van Laarhoven [Mon, 4 Feb 2008 02:22:26 +0000 (02:22 +0000)]
Fixed warnings in parser/ParserCoreUtils
Twan van Laarhoven [Mon, 4 Feb 2008 00:05:10 +0000 (00:05 +0000)]
Fixed warnings in hsSyn/Convert, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 22:42:28 +0000 (22:42 +0000)]
Fixed warnings in types/Unify
Twan van Laarhoven [Sun, 3 Feb 2008 22:41:59 +0000 (22:41 +0000)]
Fixed warnings in ndpFlatten/FlattenInfo
Twan van Laarhoven [Sun, 3 Feb 2008 22:40:43 +0000 (22:40 +0000)]
Fixed warnings in vectorise/VectBuiltIn
Twan van Laarhoven [Sun, 3 Feb 2008 22:40:03 +0000 (22:40 +0000)]
Fixed warnings in vectorise/VectCore
Twan van Laarhoven [Sun, 3 Feb 2008 21:48:48 +0000 (21:48 +0000)]
Fixed warnings in deSugar/DsExpr, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:46:02 +0000 (21:46 +0000)]
Fixed warnings in deSugar/DsGRHSs, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:12:53 +0000 (21:12 +0000)]
Fixed warnings in deSugar/DsListComp, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:08:14 +0000 (21:08 +0000)]
Fixed warnings in deSugar/Check, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:05:33 +0000 (21:05 +0000)]
Fixed warnings in deSugar/Match, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:04:02 +0000 (21:04 +0000)]
Fixed warnings in deSugar/MatchCon, except for incomplete pattern matches
Twan van Laarhoven [Sun, 3 Feb 2008 21:03:39 +0000 (21:03 +0000)]
Fixed warnings in deSugar/DsMonad
Ian Lynagh [Sun, 10 Feb 2008 17:11:04 +0000 (17:11 +0000)]
Wibble the Makefile: DQ, \" and '"'
Ian Lynagh [Sun, 10 Feb 2008 17:10:50 +0000 (17:10 +0000)]
Don't use -w when compiling Config.hs
Ian Lynagh [Sun, 10 Feb 2008 17:09:25 +0000 (17:09 +0000)]
Add typesigs to Config.hs
Ian Lynagh [Sun, 10 Feb 2008 16:28:42 +0000 (16:28 +0000)]
Allow skipping "make clean" or only re-running the testsuite in validate
Manuel M T Chakravarty [Sat, 9 Feb 2008 11:07:27 +0000 (11:07 +0000)]
Mac installer: added support for full docs
Manuel M T Chakravarty [Thu, 7 Feb 2008 03:05:28 +0000 (03:05 +0000)]
Fixed permissions and other cleanup in Mac installer package
simonpj@microsoft.com [Thu, 7 Feb 2008 17:16:22 +0000 (17:16 +0000)]
Adjust error message (Trac #2079)
simonpj@microsoft.com [Thu, 7 Feb 2008 15:51:02 +0000 (15:51 +0000)]
Redo inlining patch, plus some tidying up
This adds back in the patch
* UNDO: Be a little keener to inline
It originally broke the compiler because it tickled a Cmm optimisation bug,
now fixed.
In revisiting this I have also make inlining a bit cleverer, in response to
more examples from Roman. In particular
* CoreUnfold.CallCtxt is a data type that tells something about
the context of a call. The new feature is that if the context is
the argument position of a function call, we record both
- whether the function (or some higher up function) has rules
- what the argument discount in that position is
Either of these make functions keener to inline, even if it's
in a lazy position
* There was conseqential tidying up on the data type of CallCont.
In particular I got rid of the now-unused LetRhsFlag
simonpj@microsoft.com [Fri, 25 Jan 2008 17:42:03 +0000 (17:42 +0000)]
Comments, and a type signature
Simon Marlow [Fri, 8 Feb 2008 12:42:19 +0000 (12:42 +0000)]
FIX #2080: an optimisation to remove a widening was wrong
Simon Marlow [Fri, 8 Feb 2008 12:41:32 +0000 (12:41 +0000)]
Remove some of the old compat stuff now that we assume GHC 6.4
Simon Marlow [Thu, 7 Feb 2008 14:58:30 +0000 (14:58 +0000)]
Allow runghc to take input from stdin, just like Ruby & Python
Simon Marlow [Thu, 7 Feb 2008 14:38:05 +0000 (14:38 +0000)]
remove a bogus assertion
Ian Lynagh [Thu, 7 Feb 2008 14:47:36 +0000 (14:47 +0000)]
Convert more UniqFM's back to LazyUniqFM's
These fix these failures:
break008(ghci)
break009(ghci)
break026(ghci)
ghci.prog009(ghci)
ghci025(ghci)
print007(ghci)
prog001(ghci)
prog002(ghci)
prog003(ghci)
at least some of which have this symptom:
Exception: expectJust prune
Ian Lynagh [Tue, 5 Feb 2008 21:19:09 +0000 (21:19 +0000)]
Be a bit more consistent about what's a set and what's a map
Ian Lynagh [Thu, 7 Feb 2008 01:57:14 +0000 (01:57 +0000)]
Make some more modules use LazyUniqFM instead of UniqFM
If these modules use UniqFM then we get a stack overflow when compiling
modules that use fundeps. I haven't tracked down the actual cause.
Ian Lynagh [Thu, 7 Feb 2008 00:25:44 +0000 (00:25 +0000)]
Remove unused import
Ian Lynagh [Wed, 6 Feb 2008 14:16:20 +0000 (14:16 +0000)]
Make UniqFM strict in its elements
Ian Lynagh [Wed, 6 Feb 2008 00:00:43 +0000 (00:00 +0000)]
Use uniqSetToList rather than eltsUFM
Ian Lynagh [Tue, 5 Feb 2008 20:53:36 +0000 (20:53 +0000)]
Use isEmptyUniqSet rather than isNullUFM
Manuel M T Chakravarty [Wed, 6 Feb 2008 07:30:54 +0000 (07:30 +0000)]
Added Uninstaller
Simon Marlow [Wed, 6 Feb 2008 11:39:36 +0000 (11:39 +0000)]
FIX BUILD on x86_64
Simon Marlow [Tue, 5 Feb 2008 09:04:29 +0000 (09:04 +0000)]
matchesPkg: match against the pkg Id (foo-1.0) not just the package name (foo)
Fixes the ghcpkg01 test.
Roman Leshchinskiy [Wed, 6 Feb 2008 03:50:07 +0000 (03:50 +0000)]
Teach cheapEqExpr about casts
Previously, cheapEqExpr would always return False if it encountered a cast.
This was bad for two reasons. Firstly, CSE (which uses cheapEqExpr to compare
expressions) never eliminated expressions which contained casts and secondly,
it was inconsistent with exprIsBig. This patch fixes this.
simonpj@microsoft.com [Tue, 5 Feb 2008 16:55:07 +0000 (16:55 +0000)]
Inject implicit bindings before the simplifier (Trac #2070)
With constructor unpacking, it's possible for constructors and record
selectors to have non-trivial code, which should be optimised before
being fed to the code generator. Example:
data Foo = Foo { get :: {-# UNPACK #-} !Int }
Then we do not want to get this:
T2070.get =
\ (tpl_B1 :: T2070.Foo) ->
case tpl_B1 of tpl1_B2 { T2070.Foo rb_B4 ->
let {
ipv_B3 [Just S] :: GHC.Base.Int
[Str: DmdType m]
ipv_B3 = GHC.Base.I# rb_B4
} in ipv_B3 }
If this goes through to codegen, we'll generate bad code. Admittedly,
this only matters when the selector is used in a curried way (e.g
map get xs), but nevertheless it's silly.
This patch injects the implicit bindings in SimplCore, before the
simplifier runs. That slows the simplifier a little, because it has
to look at some extra bindings; but it's probably a slight effect.
If it turns out to matter I suppose we can always inject them later,
e.g. just before the final simplification.
An unexpected (to me) consequence is that we get some specialisation rules
for class-method selectors. E.g. we get a rule
RULE (==) Int dInt = eqInt
There's no harm in this, but not much benefit either, because the
same result will happen when we inline (==) and dInt, but it's perhaps
more direct.
simonpj@microsoft.com [Tue, 5 Feb 2008 16:48:16 +0000 (16:48 +0000)]
Make do-notation a bit more flexible (Trac #1537)
This is a second attempt to fix #1537: to make the static typechecking
of do-notation behave just like the desugared version of the same thing.
This should allow parameterised monads to work properly (see Oleg's comment
in the above ticket).
We can probably merge to 6.8.3 if it goes smoothly.
Incidentally, the resulting setup suffers from greater type ambiguity
if (>>=) has a very general type. So test rebindable6 no longer works
(at least not without more type signatures), and rebindable5 requires
extra functional dependencies. But they are weird tests.
simonpj@microsoft.com [Tue, 5 Feb 2008 16:37:02 +0000 (16:37 +0000)]
White space only
Simon Marlow [Tue, 5 Feb 2008 10:14:25 +0000 (10:14 +0000)]
FIX #2047: Windows (and older Unixes): align info tables to 4 bytes, not 2
Perhaps in the past '.align 2' meant align to 4 bytes, but nowadays it
means align to 2 bytes. The compacting collector requires info tables
to be aligned to 4 bytes, because it stores tag bits in the low 2
bits.
This only affects -fvia-C - the native code generator was already
emitting the correct alignment. The incorrect alignment might well
have been adversely affecting performance with -fvia-C on Windows.
Manuel M T Chakravarty [Tue, 5 Feb 2008 07:37:38 +0000 (07:37 +0000)]
Most of installer for framework on system volume
Manuel M T Chakravarty [Tue, 5 Feb 2008 05:25:04 +0000 (05:25 +0000)]
Split into two types of Mac installer specs
Manuel M T Chakravarty [Tue, 5 Feb 2008 05:20:17 +0000 (05:20 +0000)]
Lambda logo for packages
- This image is in the public domain, cf
http://en.wikipedia.org/wiki/Image:Greek_lc_lamda_thin.svg