1. 28 Sep, 2006 1 commit
  2. 27 Sep, 2006 2 commits
  3. 20 Sep, 2006 9 commits
    • chak@cse.unsw.edu.au.'s avatar
      Import/export of data constructors in family instances · a835e9fa
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 19:50:42 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Import/export of data constructors in family instances
        Tue Sep 12 13:54:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * Import/export of data constructors in family instances
          - Data constructors of a data/newtype family F can be exported and imported
            by writing F(..) or F(ConName).
          - This appears the most natural from a user's persepctive - although, it has a
            slightly different flavour than similar import/exports items for closed data 
            types.  The data constructors denoted by F(..) vary in dependence on the 
            visible data instances.
          - This has been non-trivial to achieve as RnNames derives its knowledge of what
            sub-binders an F(..) item exports/imports from the relation specified by 
            Name.nameParent - ie, the constructors of a data/newtype instance need to 
            have the family name (not the internal name of the representation tycon) as 
            their parent.
          
          *** WARNING: This patched changes the iface format! ***
          ***          Please re-compile from scratch!	    ***
      a835e9fa
    • chak@cse.unsw.edu.au.'s avatar
      Option -findexed-types · 284d83ee
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 19:42:48 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Option -findexed-types
        Fri Sep  8 21:35:37 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * Option -findexed-types
          - Introduced the switch -findexed-types to activate the indexed type family 
            framework.
          - The switch enables the special 'family' and allows kind signatures (which are
            currently compulsory for associated families).
      284d83ee
    • chak@cse.unsw.edu.au.'s avatar
      ATs are now implicitTyThings · 14a3631d
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 19:36:03 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * ATs are now implicitTyThings
        Tue Sep  5 21:09:54 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * ATs are now implicitTyThings
      14a3631d
    • chak@cse.unsw.edu.au.'s avatar
      Straightened out implicit coercions for indexed types · d76c18e0
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 19:35:24 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Straightened out implicit coercions for indexed types
        Mon Sep  4 23:46:14 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * Straightened out implicit coercions for indexed types
          - HscTypes.implicitTyThings and LoadIface.ifaceDeclSubBndrs now
            include the coercion of indexed data/newtypes.
          - Name generation for the internal names of indexed data/newtypes now uses
            the same counter that generates the dfun unique indexes (ie, class and type
            instances are counted with the one counter).  We could make this two 
            separate counters if that's what's preferred.
          - The unique index of a data/newtype instances needs to go into the iface, so
            that we can generate the same names on slurping in the iface as when the
            original module was generated.  This is a bit yucky, but I don't see a way
            to avoid that (other than putting the full blown internal tycon name and 
            coercion name into the iface, which IMHO would be worse).
          - The predicate for when a datacon has a wrapper didn't take GADT
            equations nor whether it comes froma  family instance into account.
          
          *** WARNING!  This patch changed the interface file format. ***
          ***           Please recompile from scratch.                ***
      d76c18e0
    • chak@cse.unsw.edu.au.'s avatar
      Fixed two data family bugs · 275dde6d
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 19:06:51 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Fixed two data family bugs
        Mon Aug 21 15:16:16 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * Fixed two data family bugs
          - Too liberal pattern matching in `tcTyClDecl1'
          - Open TyCons must always be exposed (ie, never be turned into abstract tycons
            during tidying)
      275dde6d
    • chak@cse.unsw.edu.au.'s avatar
      Make sure ATs are included into the temporary env for tc knot tying · f94a8dbd
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 19:03:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Make sure ATs are included into the temporary env for tc knot tying
        Wed Aug 16 17:52:40 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * Make sure ATs are included into the temporary env for tc knot tying
      f94a8dbd
    • chak@cse.unsw.edu.au.'s avatar
      Extend Class.Class to include the TyCons of ATs · bb106f28
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 18:58:51 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Extend Class.Class to include the TyCons of ATs
        Wed Aug 16 16:15:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * Extend Class.Class to include the TyCons of ATs
      bb106f28
    • chak@cse.unsw.edu.au.'s avatar
      Extended TyCon and friends to represent family declarations · e8a591c1
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 18:50:35 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Extended TyCon and friends to represent family declarations
        Tue Aug 15 16:52:31 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * Extended TyCon and friends to represent family declarations
      e8a591c1
    • chak@cse.unsw.edu.au.'s avatar
      newtype fixes, coercions for non-recursive newtypes now optional · c94408e5
      chak@cse.unsw.edu.au. authored
      Mon Sep 18 14:24:27 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * newtype fixes, coercions for non-recursive newtypes now optional
        Sat Aug  5 21:19:58 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
          * newtype fixes, coercions for non-recursive newtypes now optional
          Fri Jul  7 06:11:48 EDT 2006  kevind@bu.edu
      c94408e5
  4. 15 Sep, 2006 3 commits
    • chak@cse.unsw.edu.au.'s avatar
      Renaming of indexed types · 82c4d36b
      chak@cse.unsw.edu.au. authored
      Tue Aug  1 23:51:38 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Renaming of indexed types
      82c4d36b
    • chak@cse.unsw.edu.au.'s avatar
      Parser support for assoc synonyms · 72264dbc
      chak@cse.unsw.edu.au. authored
      Fri Jul 28 21:52:46 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Parser support for assoc synonyms
      72264dbc
    • chak@cse.unsw.edu.au.'s avatar
      Migrate cvs diff from fptools-assoc branch · afef3973
      chak@cse.unsw.edu.au. authored
      Wed Jul 26 17:46:55 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
        * Migrate cvs diff from fptools-assoc branch
        - Syntactic support for associated types
        - Renamer support for associated types
        - ATs are only allowed with -fglasgow-exts
        - Handle ATs in the type and class declaration kinding knot-tying exercise
      afef3973
  5. 04 Aug, 2006 3 commits
  6. 19 Sep, 2006 2 commits
    • Simon Marlow's avatar
      Packages cleanup, and allow new packages to be loaded with :set again · ee565d46
      Simon Marlow authored
      This cleans up the package subsystem a little.  There are some
      changes to the GHC API as a result.
      
        - GHC.init and GHC.initFromArgs are no longer necessary.
      
        - GHC.newSession takes the root of the GHC tree as an argument
          (previously passed to GHC.init).
      
        - You *must* do GHC.setSessionDynFlags after GHC.newSession,
          this is what loads the package database.
      
        - Several global vars removed from SysTools
      
        - The :set command in GHCi can now cause new packages to be loaded,
          or can hide/ignore existing packages.
      ee565d46
    • Simon Marlow's avatar
      unused imports · eb0f8a5a
      Simon Marlow authored
      eb0f8a5a
  7. 06 Sep, 2006 1 commit
  8. 01 Sep, 2006 1 commit
  9. 25 Aug, 2006 1 commit
    • rl@cse.unsw.edu.au's avatar
      Make sure GCC uses the Sparc V9 instruction set · 1777f480
      rl@cse.unsw.edu.au authored
      We only support Sparc V9 and better as V8 lacks an atomic CAS instruction
      which we need for SMP. This means that we have to pass -mcpu=v9 to GCC when
      compiling and assembling. Hardcoding the flag is hackish but seems to be
      our best bet at the moment. It can still be overridden by the user as GCC
      picks the best -mcpu flag regardless of the ordering.
      1777f480
  10. 23 Aug, 2006 1 commit
  11. 24 Aug, 2006 1 commit
  12. 23 Aug, 2006 1 commit
  13. 22 Aug, 2006 1 commit
  14. 18 Aug, 2006 1 commit
    • simonpj@microsoft.com's avatar
      Fall over more gracefully when there's a Template Haskell error · 7a59afce
      simonpj@microsoft.com authored
      For a long time, Template Haskell has fallen over in a very un-graceful
      way (i.e. panic) even when it encounters a programmer error.  In particular,
      when DsMeta converts HsSyn to TH syntax, it may find Haskell code that
      TH does not understand. This should be reported as a normal programmer
      error, not with a compiler panic!
      
      Originally the desugarer was supposed to never generate error
      messages, but this TH desugaring thing does make it do so.  And in
      fact, for other reasons, the desugarer now uses the TcRnIf monad, the
      common monad used by the renamer, typechecker, interface checker, and
      desugarer.  
      
      This patch completes the job, by 
       - allowing the desugarer to generate errors
       - re-plumbing the error handling to take account of this
       - making DsMeta use the new facilities to report error gracefully
      
      Quite a few lines of code are touched, but nothing deep is going on.
      
      Fixes Trac# 760.
      7a59afce
  15. 11 Aug, 2006 3 commits
  16. 10 Jul, 2006 2 commits
  17. 09 Jul, 2006 2 commits
  18. 07 Aug, 2006 1 commit
    • simonpj@microsoft.com's avatar
      Add -fextended-default-rules and -fmono-pat-binds · 6e0c3f50
      simonpj@microsoft.com authored
      Add -fextended-deafult-rules (in response to Don Stewart's message below),
      and document them.
      
      Also doucument -fmono-pat-binds/-fno-mono-pat-binds, which has been in 
      GHC a few weeks now. 
      
      (The two are in one patch because the diffs were so close together
      that Darcs combined them.)
      
      Simon
      
      
      From: Donald Bruce Stewart [mailto:dons@cse.unsw.edu.au] 
      Sent: 07 August 2006 10:52
      
      While we're thinking about defaulting, I have a question..
      
      ghci uses an extended defaulting system, to allow things like:
              Prelude> reverse []
              []
      to work, and to have the right instance of Show found. The manual says:
      
          "..it is tiresome for the user to have to specify the type, so GHCi extends
          Haskell's type-defaulting rules (Section 4.3.4 of the Haskell 98 Report
          (Revised)) as follows. If the expression yields a set of type constraints
          that are all from standard classes (Num, Eq etc.), and at least one is
          either a numeric class or the Show, Eq, or Ord class, GHCi will try to use
          one of the default types, just as described in the Report. The standard
          defaulting rules require that one of the classes is numeric; the difference
          here is that defaulting is also triggered at least one is Show, Eq, or Ord."
      
      Currently, there is no way to get at this "extended" defaulting for compiled
      modules. However, I have a use case for in fact doing this.
      
      With runtime evaluated Haskell, embedding 'interpreters' (over hs-plugins) is
      easy. lambdabot, for example, implements a sandboxed haskell eval system. But
      it doesn't have access to the defaulting mechanism of ghci, so we have:
      
          dons:: > reverse []
          lambdabot:: Add a type signature
          dons:: > reverse [] :: [()]
          lambdabot:: []
      
      Which is annoying -- newbies wonder why they have to add these extra
      constraints to get a Show instance.
      
      I'm wondering, since the extended defaulting mechanisms are already
      implemented, could they be made available to compiled modules as well,
      perhaps using a flag, -fextended-defaulting? 
      6e0c3f50
  19. 28 Jul, 2006 2 commits
  20. 27 Jul, 2006 2 commits