- 06 Jan, 2005 2 commits
- 05 Jan, 2005 7 commits
-
-
simonpj authored
Add assert
-
wolfgang authored
Don't use PK_Word64 and ASSIGN_Word64 on 64-bit machines; they just make the .hc files harder to read without adding any benefit.
-
simonpj authored
Allow trailing semicolon in GADT constructor list
-
simonpj authored
------------------------ GADTs and unification ------------------------ 1. Adjustment to typechecking of pattern matching the call to gadtRefineTys in TcPat. Now wobbly types are treated as wild cards in the unification process. 2. Add the WildCard possibility to the BindFlag in types/Unify.lhs 3. Some related refactoring of tcMatchTys etc.
-
ross authored
recent non-GHCs can use System.Cmd.rawSystem
-
malcolm authored
`rawSystem` is only available in GHC.
-
simonmar authored
Use rawSystem where appropriate.
-
- 04 Jan, 2005 4 commits
-
-
simonpj authored
------------------ Fix an mdo bug ------------------ Embarassingly, this bug makes GHC either panic (for some programs) or go into a loop (on others) in a recursive mdo that involves a polymorphic function. Urk! The fix is twofold: a) add a missing bindInstsOfLocalFuns to tcStmtAndThen (RecStmt case) b) bind the correct set of variables in dsRecStmt I added some explanatory comments about RecStmt in HsExpr too. The tests is mdo/should_compile/mdo006
-
simonmar authored
ghc/mk/config.mk was never being included in ordinary Makefiles. It was only included in the top-level fptools/Makefile for the purposes of obtaining binary distribution settings. This fixes that problem, and now as a side-effect $(GhcHasReadline) will start working again.
-
simonpj authored
Import trimming
-
simonpj authored
Remove redundant Subst hi-boot files
-
- 30 Dec, 2004 1 commit
-
-
simonpj authored
Fix to the pre-Xmas simplifier changes, which should make everything work again. I'd forgotten to attend to this corner. Still not properly tested I fear. Also remove dead code from SimplEnv, and simplify the remainder (hooray).
-
- 27 Dec, 2004 2 commits
- 24 Dec, 2004 3 commits
-
-
simonpj authored
--------------------------- Refactor the simplifier --------------------------- Driven by a GADT bug, I have refactored the simpifier, and the way GHC treats substitutions. I hope I have gotten it right. Be cautious about updating. * coreSyn/Subst.lhs has gone * coreSyn/CoreSubst replaces it, except that it's quite a bit simpler * simplCore/SimplEnv is added, and contains the simplifier-specific substitution stuff Previously Subst was trying to be all things to all men, and that was making it Too Complicated. There may be a little more code now, but it's much easier to understand.
-
simonpj authored
Reset the export flag for the new bindings in LiberateCase
-
simonpj authored
Further wibbles to the scoped-tyvar story. This commit tidies up the ATyVar in TcTyThing, making it ATyVar Name Type instead of the previous misleading ATyVar TyVar Type But the main thing is that we must take care with definitions like this: type T a = forall b. b -> (a,b) f :: forall c. T c f = ... Here, we want only 'c' to scope over the RHS of f. The renamer ensures that... but we must also take care that we freshly instantiate the expanded type signature (forall c b. b -> (c,b)) before checking f's RHS, so that we don't get false sharing between uses of T.
-
- 23 Dec, 2004 4 commits
-
-
simonpj authored
Simplifications, dead code elimination
-
simonpj authored
minor nomenclature wibble
-
simonpj authored
Enable scoped type variables only where there is an explicit forall
-
simonpj authored
--------------------------------- Template Haskell: names again --------------------------------- On 2 Dec 04 I made this commit (1.58 in Convert.lhs) Fix a Template Haskell bug that meant that top-level names created with newName were not made properly unique. But that just introduced a new bug! THe trouble is that names created by newName are NameUs; but I was *also* using NameU for names of free varaibles, such as the 'x' in the quoted code here f x = $( g [| \y -> (x,y) |]) But when converting to HsSyn, the x and y must be treated diffferently. The 'x' must convert to an Exact RdrName, so that it binds to the 'x' that's in the type environment; but the 'y' must generate a nice unique RdrName. So this commit adds NameL for the lexically-scoped bindings like 'x'.
-
- 22 Dec, 2004 3 commits
-
-
simonpj authored
---------------------------------------- Add more scoped type variables ---------------------------------------- Now the top-level forall'd variables of a type signature scope over the right hand side of that function. f :: a -> a f x = .... The type variable 'a' is in scope in the RHS, and in f's patterns. It's implied by -fglasgow-exts, but can also be switched off independently using -fscoped-type-variables (and the -fno variant)
-
simonpj authored
---------------------------------------- New Core invariant: keep case alternatives in sorted order ---------------------------------------- We now keep the alternatives of a Case in the Core language in sorted order. Sorted, that is, by constructor tag for DataAlt by literal for LitAlt The main reason is that it makes matching and equality testing more robust. But in fact some lines of code vanished from SimplUtils.mkAlts. WARNING: no change to interface file formats, but you'll need to recompile your libraries so that they generate interface files that respect the invariant.
-
simonpj authored
-------------------------- Add -fwarn-orphans flag -------------------------- This gives a decent report for modules that contain 'orphan' instance and rule declarations. These are to be avoided, because GHC has to proactively read the interface file every single time, just in case the instance/rule is needed. The flag just gives a convenient way of identifying the culprits.
-
- 21 Dec, 2004 12 commits
-
-
simonpj authored
--------------------------------- Template Haskell: dynamically scoped qualified names --------------------------------- This commit adds a constructor to TH.Name, so that nameBase (mkName "Foo.baz") == "baz" nameModule (MkName "Foo.baz") == "Foo" We always did parse the module name off the front, but it used to be done in hsSyn/Convert, but now it's done in TH.Syntax, which is a better place.
-
simonpj authored
Fix buglet in CSE
-
simonpj authored
An old commit about paths on windows
-
simonpj authored
--------------------------------- Improve handling of lexically scoped type variables --------------------------------- If we have f :: T a -> a f (x :: T b) = ... then the lexically scoped variable 'b' should refer to the rigid type variable 'a', without any intervening wobbliness. Previously the in-scope type variables were always mutable TyVars, which were instantatiated to point to the type they were bound to; but since the advent of GADTs the intervening mutable type variable is a bad thing. Hence * In the type environment, ATyVar now carries a type * The call to refineTyVars in tc_pat on SigPatIn finds the types by matching * Then tcExtendTyVarEnv3 extends the type envt appropriately Rater a lot of huff and puff, but it's quite natural for ATyVar to contain a type. Various other small nomenclature changes along the way.
-
simonpj authored
Comments
-
simonpj authored
Remove debug output
-
simonpj authored
Comments
-
simonpj authored
Add missing NoteTy cases to unify_
-
simonpj authored
Comments only
-
simonpj authored
Fix bogon in type comparison
-
simonpj authored
Comment only
-
simonpj authored
Another wibble to the Panic change; this time on Windows
-
- 20 Dec, 2004 1 commit
-
-
simonpj authored
-------------------------------- Deal properly with dual-renaming -------------------------------- When comparing types and terms, and during matching, we are faced with \x.e1 ~ \y.e2 There are many pitfalls here, and GHC has never done the job properly. Now, at last it does, using a new abstraction VarEnv.RnEnv2. See comments there for how it works. There are lots of consequential changes to use the new stuff, especially in types/Type (type comparison), types/Unify (matching on types) coreSyn/CoreUtils (equality on expressions), specialise/Rules (matching). I'm not 100% certain of that I've covered all the bases, so let me know if something unexpected happens after you update. Maybe wait until a nightly build has worked ok first!
-
- 18 Dec, 2004 1 commit
-
-
panne authored
The documentation breakage continues... >:-( Fixed DocBook. Again: "make html" (or the faster "make validate" in the case of DocBook XML) is your friend! >:-(
-