- 12 Apr, 2011 1 commit
-
-
simonpj authored
(See his Haskell Symposium 2010 paper "A generic deriving mechaism for Haskell")
-
- 29 Mar, 2011 1 commit
-
-
Ian Lynagh authored
This fixes a couple of duplicates that had crept in, and also renumbers everything so that they are monotonically increasing through the file.
-
- 20 Feb, 2011 1 commit
-
-
chak@cse.unsw.edu.au. authored
- Added a pragma {-# VECTORISE var = exp #-} that prevents the vectoriser from vectorising the definition of 'var'. Instead it uses the binding '$v_var = exp' to vectorise 'var'. The vectoriser checks that the Core type of 'exp' matches the vectorised Core type of 'var'. (It would be quite complicated to perform that check in the type checker as the vectorisation of a type needs the state of the VM monad.) - Added parts of a related VECTORISE SCALAR pragma - Documented -ddump-vect - Added -ddump-vt-trace - Some clean up
-
- 26 Nov, 2010 1 commit
-
-
simonpj@microsoft.com authored
See Note [WildCard binders] in SimplEnv. Spotted by Roman.
-
- 16 Nov, 2010 1 commit
-
-
simonpj@microsoft.com authored
See Trac #4488. The basic idea is to check for fun :: ty -> ty where fun is one of toIntegerName toRationalName fromIntegralName realToFracName There's a (documented) flag to control it -fwarn-identities. Currently -Wall switches it on.
-
- 23 Oct, 2010 1 commit
-
-
Ian Lynagh authored
-
- 14 Sep, 2010 1 commit
-
-
simonpj@microsoft.com authored
and adjust imports accordingly
-
- 13 Sep, 2010 1 commit
-
-
simonpj@microsoft.com authored
This major patch implements the new OutsideIn constraint solving algorithm in the typecheker, following our JFP paper "Modular type inference with local assumptions". Done with major help from Dimitrios Vytiniotis and Brent Yorgey.
-
- 23 Nov, 2009 1 commit
-
-
Ian Lynagh authored
-
- 12 Nov, 2009 1 commit
-
-
simonpj@microsoft.com authored
* Core Lint now does full checking of kinds and coercion terms which picks up kind errors in coercions that were previously simply not checked for * Coercion.lhs now provides optCoercion which optimises coercion terms. It implements all of Dimitrios's rules * The constructors for coercion terms now make no attempt to be "smart"; instead we rely solely on the coercion optimiser * CoercionTyCons in TyCon.lhs always had a "custom" kinding rule (the coKindFun field of CoercionTyCon) but its type was not clever enough to do both (a) *figure out the result kind*, assuming the whole thing is well-kinded in the first place (b) *check* the kinds of everything, failing gracefully if they aren't right. We need (b) for the new CoreLint stuff. The field now has type CoTyConKindChecker which does the job nicely.
-
- 06 Nov, 2009 1 commit
-
-
simonpj@microsoft.com authored
In preparation for implementing the PushC rule for coercion-swizzling in the Simplifier, I had to inmplement the three new decomposition operators for coercions, which I've called csel1, csel2, and cselR. co :: ((s1~t1) => r1) ~ ((s2~t2) => r2) --------------------------------------- csel1 co :: s1~s2 and similarly csel2, cselR. On the way I fixed the coercionKind function for types of form (s1~t2) => r2 which currently are expressed as a forall type. And I refactored quite a bit to help myself understand what is going on.
-
- 29 Oct, 2009 1 commit
-
-
simonpj@microsoft.com authored
-
- 15 Oct, 2009 1 commit
-
-
simonpj@microsoft.com authored
DO NOT MERGE TO GHC 6.12 branch (Reason: interface file format change.) The typechecker needs to instantiate otherwise-unconstraint type variables to an appropriately-kinded constant type, but we didn't have a supply of arbitrarily-kinded tycons for this purpose. Now we do. The details are described in Note [Any types] in TysPrim. The fundamental change is that there is a new sort of TyCon, namely AnyTyCon, defined in TyCon. Ter's a small change to interface-file binary format, because the new AnyTyCons have to be serialised. I tided up the handling of uniques a bit too, so that mkUnique is not exported, so that we can see all the different name spaces in one module.
-
- 22 Jul, 2009 2 commits
-
-
Ian Lynagh authored
Rather than indirecting through an integer package
-
Simon Marlow authored
-
- 23 Jun, 2009 1 commit
-
-
Ian Lynagh authored
-
- 22 Jun, 2009 1 commit
-
-
Ian Lynagh authored
-
- 20 Jun, 2009 1 commit
-
-
Ian Lynagh authored
-
- 29 May, 2009 1 commit
-
-
Simon Marlow authored
-
- 26 Mar, 2009 1 commit
-
-
Ian Lynagh authored
-
- 02 Feb, 2009 1 commit
-
-
simonpj@microsoft.com authored
This patch is a straightforward extension of the 'deriving' mechanism. The ability to derive classes Functor, Foldable, Traverable is controlled by a single flag -XDeriveFunctor. (Maybe that's a poor name.) Still to come: documentation Thanks to twanvl for developing the patch
-
- 05 Dec, 2008 1 commit
-
-
simonpj@microsoft.com authored
-
- 30 Oct, 2008 1 commit
-
-
simonpj@microsoft.com authored
This patch, written by Max Bolingbroke, does two things 1. It adds a new CoreM monad (defined in simplCore/CoreMonad), which is used as the top-level monad for all the Core-to-Core transformations (starting at SimplCore). It supports * I/O (for debug printing) * Unique supply * Statistics gathering * Access to the HscEnv, RuleBase, Annotations, Module The patch therefore refactors the top "skin" of every Core-to-Core pass, but does not change their functionality. 2. It adds a completely new facility to GHC: Core "annotations". The idea is that you can say {#- ANN foo (Just "Hello") #-} which adds the annotation (Just "Hello") to the top level function foo. These annotations can be looked up in any Core-to-Core pass, and are persisted into interface files. (Hence a Core-to-Core pass can also query the annotations of imported things.) Furthermore, a Core-to-Core pass can add new annotations (eg strictness info) of its own, which can be queried by importing modules. The design of the annotation system is somewhat in flux. It's designed to work with the (upcoming) dynamic plug-ins mechanism, but is meanwhile independently useful. Do not merge to 6.10!
-
- 02 Oct, 2008 1 commit
-
-
dreixel authored
-
- 03 Oct, 2008 1 commit
-
-
simonpj@microsoft.com authored
This patch fixes a dirty hack (the fake ThFake module), which in turn was causing Trac #2632. The new scheme is that the top-level binders in a TH [d| ... |] decl splice get Internal names. That breaks a previous invariant that things like TyCons always have External names, but these TyCons are never long-lived; they live only long enough to typecheck the TH quotation; the result is discarded. So it seems cool. Nevertheless -- Template Haskell folk: please test your code. The testsuite is OK but it's conceivable that I've broken something in TH. Let's see.
-
- 25 Sep, 2008 1 commit
-
-
Ian Lynagh authored
-
- 12 Sep, 2008 1 commit
-
-
rl@cse.unsw.edu.au authored
-
- 25 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 12 Aug, 2008 1 commit
-
-
Ross Paterson authored
-
- 06 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 05 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 04 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 03 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 01 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 30 Jul, 2008 1 commit
-
-
Ian Lynagh authored
-
- 20 Jul, 2008 1 commit
-
-
Thomas Schilling authored
-
- 24 Jun, 2008 1 commit
-
-
Ian Lynagh authored
-
- 22 Apr, 2008 3 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-