Ian Lynagh [Sat, 12 Apr 2008 13:21:58 +0000 (13:21 +0000)]
(F)SLIT -> (f)sLit in Packages
Ian Lynagh [Sat, 12 Apr 2008 13:20:44 +0000 (13:20 +0000)]
(F)SLIT -> (f)sLit in Lexer
Ian Lynagh [Sat, 12 Apr 2008 13:18:31 +0000 (13:18 +0000)]
(F)SLIT -> (f)sLit in MkId
Ian Lynagh [Sat, 12 Apr 2008 13:17:07 +0000 (13:17 +0000)]
(F)SLIT -> (f)sLit in Rules
Ian Lynagh [Sat, 12 Apr 2008 13:16:12 +0000 (13:16 +0000)]
(F)SLIT -> (f)sLit in PrelRules
Ian Lynagh [Sat, 12 Apr 2008 13:07:37 +0000 (13:07 +0000)]
(F)SLIT -> (f)sLit in HsSyn
Ian Lynagh [Sat, 12 Apr 2008 12:53:20 +0000 (12:53 +0000)]
(F)SLIT -> (f)sLit in HsUtils
Ian Lynagh [Sat, 12 Apr 2008 12:52:29 +0000 (12:52 +0000)]
(F)SLIT -> (f)sLit in HsExpr
Ian Lynagh [Sat, 12 Apr 2008 12:49:28 +0000 (12:49 +0000)]
(F)SLIT -> (f)sLit in HsDecls
Ian Lynagh [Sat, 12 Apr 2008 12:48:40 +0000 (12:48 +0000)]
(F)SLIT -> (f)sLit in HsImpExp
Ian Lynagh [Sat, 12 Apr 2008 12:47:58 +0000 (12:47 +0000)]
(F)SLIT -> (f)sLit in HsPat
Ian Lynagh [Sat, 12 Apr 2008 12:46:45 +0000 (12:46 +0000)]
(F)SLIT -> (f)sLit in HsTypes
Ian Lynagh [Sat, 12 Apr 2008 12:46:07 +0000 (12:46 +0000)]
(F)SLIT -> (f)sLit in IfaceSyn
Ian Lynagh [Sat, 12 Apr 2008 12:45:07 +0000 (12:45 +0000)]
(F)SLIT -> (f)sLit in IfaceType
Ian Lynagh [Sat, 12 Apr 2008 12:44:20 +0000 (12:44 +0000)]
(F)SLIT -> (f)sLit in CoreUnfold
Ian Lynagh [Sat, 12 Apr 2008 12:43:39 +0000 (12:43 +0000)]
(F)SLIT -> (f)sLit in CoreLint
Ian Lynagh [Sat, 12 Apr 2008 12:42:18 +0000 (12:42 +0000)]
(F)SLIT -> (f)sLit in CoreUtils
Ian Lynagh [Sat, 12 Apr 2008 12:41:41 +0000 (12:41 +0000)]
(F)SLIT -> (f)sLit in PprCore
Ian Lynagh [Sat, 12 Apr 2008 12:39:52 +0000 (12:39 +0000)]
(F)SLIT -> (f)sLit in Id
Ian Lynagh [Sat, 12 Apr 2008 12:37:45 +0000 (12:37 +0000)]
(F)SLIT -> (f)sLit in TcType
Ian Lynagh [Sat, 12 Apr 2008 12:36:37 +0000 (12:36 +0000)]
(F)SLIT -> (f)sLit in IdInfo
Ian Lynagh [Sat, 12 Apr 2008 12:35:07 +0000 (12:35 +0000)]
(F)SLIT -> (f)sLit in CoreSyn
Ian Lynagh [Sat, 12 Apr 2008 12:34:02 +0000 (12:34 +0000)]
(F)SLIT -> (f)sLit in CostCentre
Ian Lynagh [Sat, 12 Apr 2008 12:33:22 +0000 (12:33 +0000)]
(F)SLIT -> (f)sLit in Literal
Ian Lynagh [Sat, 12 Apr 2008 12:32:47 +0000 (12:32 +0000)]
Generate fsLit not FSLIT in genprimopcode
Ian Lynagh [Sat, 12 Apr 2008 12:29:46 +0000 (12:29 +0000)]
(F)SLIT -> (f)sLit in TysWiredIn
Ian Lynagh [Sat, 12 Apr 2008 12:28:46 +0000 (12:28 +0000)]
(F)SLIT -> (f)sLit in TysPrim
Ian Lynagh [Sat, 12 Apr 2008 12:27:57 +0000 (12:27 +0000)]
(F)SLIT -> (f)sLit in ForeignCall
Ian Lynagh [Sat, 12 Apr 2008 12:27:09 +0000 (12:27 +0000)]
(F)SLIT -> (f)sLit in DataCon
Ian Lynagh [Sat, 12 Apr 2008 12:26:27 +0000 (12:26 +0000)]
(F)SLIT -> (f)sLit in Coercion
Ian Lynagh [Sat, 12 Apr 2008 12:25:24 +0000 (12:25 +0000)]
(F)SLIT -> (f)sLit in Type
Ian Lynagh [Sat, 12 Apr 2008 12:24:09 +0000 (12:24 +0000)]
(F)SLIT -> (f)sLit in TypeRep
Ian Lynagh [Sat, 12 Apr 2008 12:14:37 +0000 (12:14 +0000)]
(F)SLIT -> (f)sLit in VarEnv
Ian Lynagh [Sat, 12 Apr 2008 12:12:45 +0000 (12:12 +0000)]
(F)SLIT -> (f)sLit in Class
Ian Lynagh [Sat, 12 Apr 2008 12:12:11 +0000 (12:12 +0000)]
(F)SLIT -> (f)sLit in Class
Ian Lynagh [Sat, 12 Apr 2008 12:11:40 +0000 (12:11 +0000)]
(F)SLIT -> (f)sLit in Var
Ian Lynagh [Sat, 12 Apr 2008 12:10:50 +0000 (12:10 +0000)]
(F)SLIT -> (f)sLit in Name
Ian Lynagh [Sat, 12 Apr 2008 12:10:08 +0000 (12:10 +0000)]
(F)SLIT -> (f)sLit in OccName
Ian Lynagh [Sat, 12 Apr 2008 12:09:09 +0000 (12:09 +0000)]
(F)SLIT -> (f)sLit in SrcLoc
Ian Lynagh [Sat, 12 Apr 2008 12:08:17 +0000 (12:08 +0000)]
(F)SLIT -> (f)sLit in Module
Ian Lynagh [Sat, 12 Apr 2008 12:07:45 +0000 (12:07 +0000)]
(F)SLIT -> (f)sLit in BasicTypes
Ian Lynagh [Sat, 12 Apr 2008 12:05:38 +0000 (12:05 +0000)]
(F)SLIT -> (f)sLit in Outputable
Ian Lynagh [Sat, 12 Apr 2008 12:00:04 +0000 (12:00 +0000)]
SLIT -> sLit in Prety.lhs
Ian Lynagh [Sat, 12 Apr 2008 11:57:45 +0000 (11:57 +0000)]
Don't use CPP for SLIT/FSLIT
simonpj@microsoft.com [Tue, 22 Apr 2008 12:04:00 +0000 (12:04 +0000)]
Simplify SimplCont, plus some other small changes to the Simplifier
The main change in this patch is this:
* The Stop constructor of SimplCont no longer contains the OutType
of the whole continuation. This is a nice simplification in
lots of places where we build a Stop continuation. For example,
rebuildCall no longer needs to maintain the type of the function.
* Similarly StrictArg no longer needs an OutType
* The consequential complication is that contResultType (not called
much) needs to be given the type of the thing in the middle. No
big deal.
* Lots of other small knock-on effects
Other changes in here
* simplLazyBind does do the type-abstraction thing if there's
a lambda inside. See comments in simplLazyBind
* simplLazyBind reduces simplifier iterations by keeping
unfolding information for stuff for which type abstraction is
done (see add_poly_bind)
All of this came up when implementing System IF, but seems worth applying
to the HEAD
simonpj@microsoft.com [Tue, 22 Apr 2008 12:03:04 +0000 (12:03 +0000)]
Comments only in SimplCore
simonpj@microsoft.com [Tue, 22 Apr 2008 12:01:43 +0000 (12:01 +0000)]
Comments only
simonpj@microsoft.com [Tue, 22 Apr 2008 11:52:38 +0000 (11:52 +0000)]
Minor bug in SpecConstr
In SpecConstr.isValue, we recorded a ConVal for a big-lambda,
which seems wrong. I came across this when implementing System IF.
The code now reads:
isValue env (Lam b e)
| isTyVar b = case isValue env e of
Just _ -> Just LambdaVal -- NB!
Nothing -> Nothing
| otherwise = Just LambdaVal
simonpj@microsoft.com [Tue, 22 Apr 2008 11:52:21 +0000 (11:52 +0000)]
Comments only
simonpj@microsoft.com [Tue, 22 Apr 2008 11:50:03 +0000 (11:50 +0000)]
Fix a long-standing bug in FloatOut
We really should not float anything out of an _inline_me_ Note,
for reasons described in this new comment:
-- Do no floating at all inside INLINE.
-- The SetLevels pass did not clone the bindings, so it's
-- unsafe to do any floating, even if we dump the results
-- inside the Note (which is what we used to do).
I'm about to get rid of these _inline_me_ Notes, but it's
better to fix it anyway. I found this bug when implementing System IF.
simonpj@microsoft.com [Tue, 22 Apr 2008 11:48:48 +0000 (11:48 +0000)]
Remove static flag opt_RuntimeTypes (has not been used in years)
simonpj@microsoft.com [Tue, 22 Apr 2008 11:30:14 +0000 (11:30 +0000)]
Refactor the TyVarTy case of 'match'. No change in behaviour.
simonpj@microsoft.com [Tue, 22 Apr 2008 11:29:25 +0000 (11:29 +0000)]
Add Note [Generating the in-scope set for a substitution]
simonpj@microsoft.com [Tue, 22 Apr 2008 11:28:04 +0000 (11:28 +0000)]
Rename WpCo to WpCast
pepe [Mon, 21 Apr 2008 17:13:22 +0000 (17:13 +0000)]
Fix #2044 (:printing impredicatively typed things)
Switching to boxyUnify should be enough to fix this.
Tim Chevalier [Tue, 22 Apr 2008 04:52:44 +0000 (04:52 +0000)]
Improve External Core syntax for newtypes
I was confused by the newtype eta-contraction trick before.
Newtype declarations are much less redundant now.
Tim Chevalier [Tue, 22 Apr 2008 04:43:42 +0000 (04:43 +0000)]
Update External Core docs
Update documentation to reflect GHC HEAD.
Tim Chevalier [Tue, 22 Apr 2008 01:56:22 +0000 (01:56 +0000)]
External Core typechecker - improve handling of coercions
Reorganized coercion-related code in the typechecker (this was
brought about by typechecking the Core versions of the optimized GHC
libraries.) A few miscellaneous changes (fixed a bug in Prep involving
eta-expanding partial applications that had additional type
arguments.)
Tim Chevalier [Tue, 22 Apr 2008 01:27:34 +0000 (01:27 +0000)]
Naming changes in External Core
Two changes:
- Top-level bindings in a given module are now printed as a
single %rec group. I found that in External Core generated from
optimized code, nonrec bindings weren't being printed in
dependency order. Rather than fixing that, I decided to not
even pretend to preserve dependency order (since there's
recursion between modules anyway.)
- Internal names are now printed with their uniques attached
(otherwise, GHC was printing out code with shadowed bindings,
and this isn't supposed to happen in External Core.)
simonpj@microsoft.com [Mon, 21 Apr 2008 15:21:30 +0000 (15:21 +0000)]
Add clarifying comments about unsafeCoerce
Ian Lynagh [Sun, 20 Apr 2008 19:58:56 +0000 (19:58 +0000)]
Make the integer library to use more configurable
Now you just set INTEGER_LIBRARY=integer-foo in build.mk
Ian Lynagh [Wed, 16 Apr 2008 16:23:30 +0000 (16:23 +0000)]
Remove some duplicate extern decls
Ian Lynagh [Thu, 17 Apr 2008 17:19:43 +0000 (17:19 +0000)]
Add some more generic (en|de)code(Double|Float) code
Ian Lynagh [Sat, 12 Apr 2008 10:06:57 +0000 (10:06 +0000)]
Updates to handle Ordering moving from base to ghc-prim
Ian Lynagh [Tue, 8 Apr 2008 19:34:36 +0000 (19:34 +0000)]
Fix lndir
It would copy when it should symlink, and vice-versa.
Tim Chevalier [Wed, 16 Apr 2008 00:03:47 +0000 (00:03 +0000)]
Improve External Core syntax
Got rid of the silly '^' characters before qualified names (plus:
reverts to the original syntax; minus: makes the parser a little
hairier.)
Also, added warning in the typechecker for coercion kind mismatches
rather than considering that a type error. (see the added comment in
Check.hs for details.)
Simon Marlow [Mon, 14 Apr 2008 17:32:25 +0000 (17:32 +0000)]
FIX BUILD (Windows): Copy the ln trick used by the GMP build
simonpj@microsoft.com [Fri, 11 Apr 2008 16:21:37 +0000 (16:21 +0000)]
Revive the static argument transformation
This patch revives the Static Argument Transformation, thanks to
Max Bolingbroke. It is enabled with
-fstatic-argument-transformation
or -O2
Headline nofib results
Size Allocs Runtime
Min +0.0% -13.7% -21.4%
Max +0.1% +0.0% +5.4%
Geometric Mean +0.0% -0.2% -6.9%
simonpj@microsoft.com [Fri, 11 Apr 2008 14:24:18 +0000 (14:24 +0000)]
Transfer strictness and arity info when abstracting over type variables
See Note [transferPolyIdInfo] in Id.lhs, and test
eyeball/demand-on-polymorphic-floatouts.hs
Max Bolingbroke discovered that we were gratuitiously losing strictness
info. This simple patch fixes it. But see the above note for things
that are still discarded: worker info and rules.
Tim Chevalier [Mon, 14 Apr 2008 02:46:48 +0000 (02:46 +0000)]
Revive External Core typechecker
The typechecker works again! Yay!
Details upon request.
Tim Chevalier [Mon, 14 Apr 2008 03:16:54 +0000 (03:16 +0000)]
Eta-expand newtype coercions in External Core
Typechecking External Core is easier if we eta-expand axioms
in newtype declarations. For a fuller explanation, see:
http://www.haskell.org/pipermail/cvs-ghc/2008-April/041948.html
Tim Chevalier [Mon, 14 Apr 2008 02:54:07 +0000 (02:54 +0000)]
Extra info in genprimopcode --make-ext-core-source
The ext-core typechecker needs to know what types are
valid for various kinds of literals, so I changed
genprimopcode to dump out that information as well
with --make-ext-core-source.
andy@galois.com [Fri, 11 Apr 2008 22:05:10 +0000 (22:05 +0000)]
Fixing HPCTIXDIR problem with mkdir usage on Windows
Tim Chevalier [Fri, 11 Apr 2008 18:57:34 +0000 (18:57 +0000)]
Update .darcs-boring with utils/ext-core stuff
Simon Marlow [Fri, 11 Apr 2008 17:34:04 +0000 (17:34 +0000)]
FIX #2197: an update frame might point to an IND_OLDGEN
simonpj@microsoft.com [Fri, 11 Apr 2008 13:23:50 +0000 (13:23 +0000)]
Rejig error reporting in the unifier slightly
simonpj@microsoft.com [Thu, 10 Apr 2008 11:31:05 +0000 (11:31 +0000)]
Improve error message layout slightly
simonpj@microsoft.com [Thu, 10 Apr 2008 11:28:12 +0000 (11:28 +0000)]
Two improvements to boxy matching
I can't quite remember what provoked these two changes, but they are in my
tree.
One improves boxy_match (which failed unnecessarily)
One fixes boxy_lub (which was assymetrical)
simonpj@microsoft.com [Thu, 10 Apr 2008 11:15:14 +0000 (11:15 +0000)]
Fix Trac #2206: ensure the return type is rigid in a GADT match
simonpj@microsoft.com [Thu, 10 Apr 2008 09:43:36 +0000 (09:43 +0000)]
Fix Trac #2205, which I introduced recently
simonpj@microsoft.com [Thu, 10 Apr 2008 08:49:30 +0000 (08:49 +0000)]
Ensure that arity is accurate in back end
See Note [exprArity invariant] in CoreUtils. In code generated by Happy
I was seeing this after TidyPgm and CorePrep
f :: Any
f {arity 1} = id `cast` unsafe-co
So f claimed to have arity 1 (because exprArity looked inside), but
did not have any top-level lambdas (because its type is Any).
This triggered a slightly-obscure ASSERT failure in CoreToStg
This patch
- makes exprArity trim the arity if the type is not a function
- adds a stronger ASSERT in TidyPgm
It's not the only way to solve this problem (see Note [exprArity invariant])
but it's enough for now.
simonpj@microsoft.com [Thu, 10 Apr 2008 08:26:19 +0000 (08:26 +0000)]
Make the arity and strictness agree, for wired-in bottoming Ids
Roman Leshchinskiy [Fri, 11 Apr 2008 04:53:07 +0000 (04:53 +0000)]
Fix bug in vectorisation of case expressions
Tim Chevalier [Thu, 10 Apr 2008 18:58:10 +0000 (18:58 +0000)]
Extend genprimopcode to print primop types for ext-core
I added a new flag, --make-ext-core-source, to genprimopcode. It prints out the
type information for primops that the External Core typechecker needs. This
replaces the old mechanism where the ext-core tools had a hard-wired Prims
module that could get out of sync with the old primops.txt. Now, that won't happen.
Simon Marlow [Wed, 9 Apr 2008 20:41:43 +0000 (20:41 +0000)]
add pointers to the wiki for the rules about C prototypes
Simon Marlow [Wed, 9 Apr 2008 20:40:48 +0000 (20:40 +0000)]
avoid warnings from ffi.h when UseLibFFIForAdjustors=YES
Simon Marlow [Wed, 9 Apr 2008 20:37:24 +0000 (20:37 +0000)]
FIX BUILD (bootstrap with -fvia-C): prototype fixes
Tim Chevalier [Thu, 10 Apr 2008 04:37:27 +0000 (04:37 +0000)]
Another round of External Core fixes
With this patch, GHC should now be printing External Core in a format
that a stand-alone program can parse and typecheck. Major bug fixes:
- The printer now handles qualified/unqualified declarations correctly
(particularly data constructor declarations)
- It prints newtype declarations with enough information to
typecheck code that uses the induced coercions (this required a
syntax change)
- It expands type synonyms correctly
Documentation and external tool patches will follow.
andy@galois.com [Tue, 8 Apr 2008 23:24:50 +0000 (23:24 +0000)]
Adding environment variable HPCTIXDIR, a directory to place tix results.
andy@galois.com [Tue, 8 Apr 2008 23:20:32 +0000 (23:20 +0000)]
Fixing hpc combine and hpc map to use the correct help message
Simon Marlow [Tue, 8 Apr 2008 18:34:34 +0000 (18:34 +0000)]
Import libffi-3.0.4, and use it to provide FFI support in GHCi
This replaces the hand-rolled architecture-specific FFI support in
GHCi with the standard libffi as used in GCJ, Python and other
projects. I've bundled the complete libffi-3.0.4 tarball in the
source tree in the same way as we do for GMP, the difference being
that we always build and install our own libffi regardless of whether
there's one on the system (it's small, and we don't want
dependency/versioning headaches).
In particular this means that unregisterised builds will now have a
fully working GHCi including FFI out of the box, provided libffi
supports the platform.
There is also code in the RTS to use libffi in place of
rts/Adjustor.c, but it is currently not enabled if we already have
support in Adjustor.c for the current platform. We need to assess the
performance impact before using libffi here too (in GHCi we don't care
too much about performance).
Simon Marlow [Mon, 7 Apr 2008 21:37:48 +0000 (21:37 +0000)]
FIX BUILD on non-x86: add missing prototypes
Simon Marlow [Mon, 7 Apr 2008 21:24:37 +0000 (21:24 +0000)]
update a comment
Simon Marlow [Thu, 3 Apr 2008 22:34:22 +0000 (22:34 +0000)]
remove dead code
Samuel Bronson [Mon, 7 Apr 2008 22:20:06 +0000 (22:20 +0000)]
Replace one occurance of CVS with darcs in HACKING
Manuel M T Chakravarty [Mon, 7 Apr 2008 07:07:28 +0000 (07:07 +0000)]
Remove GADT refinements, part 5
- TcGadt RIP
- The non-side effecting unification code is now in types/Unify.lhs
along with the refinement code needed for GADT record selectors.
Manuel M T Chakravarty [Mon, 3 Mar 2008 06:33:47 +0000 (06:33 +0000)]
Remove GADT refinements, part 4
- MkId.mkRecordSelId only used a special case of refineGadt, which doesn't
need full unification. That special case is now implemented as
TcGadt.matchRefine and TcGadt.refineGadt can finally go.
Tim Chevalier [Sun, 6 Apr 2008 20:23:33 +0000 (20:23 +0000)]
Improve error message for malformed LANGUAGE pragma
I made the error (which previously said "cannot parse LANGUAGE
pragma") slightly more helpful by reminding the user that pragmas
should be comma-separated.
Tim Chevalier [Sun, 6 Apr 2008 19:38:21 +0000 (19:38 +0000)]
Improve error message for non-matching file name
I changed the "File name does not match module name" error message so
that it prints out both the declared module name and the expected
module name (before, it was only printing the declared module name.)
Pepe Iborra [Sat, 5 Apr 2008 14:51:36 +0000 (14:51 +0000)]
Virtualize the cwd in GHCi
This fixes the issue where :list would stop working if the
program being debugged side-effected the working directory,
and should prevent other similar issues