1. 29 Apr, 2003 1 commit
  2. 25 Apr, 2003 1 commit
  3. 23 Apr, 2003 1 commit
  4. 22 Apr, 2003 3 commits
  5. 17 Apr, 2003 4 commits
    • simonpj's avatar
      [project @ 2003-04-17 15:23:32 by simonpj] · 6e6f5469
      simonpj authored
      ----------------------------------
      	Implement Typeable properly
      	----------------------------------
      
      1.  Add 'deriving' for Typeable class. So you can say
      
      	data T a b = .... deriving( Typeable )
      
          At the moment you only get this if you ask for it. If you say
          nothing you get nothing.
      
      2.  Implement Typeable better, with proper O(1) comparison of
          type representations
      
      3.  Add the 'cast' operation described in 'Scrap your boilerplate'
          and use it.
      
      
      4.  Consequence: need to move the definition of IOArray from
          Data.Array.IO.Internals to GHC.IOBase, where it joins IORef.
          This is necssary so that HashTable can be low down in the compilation
          hierarchy, and hence so can Dynamic.
      
      
      
      	WARNING: I'm not certain the imports in HashTable and Dynamic
      		 will all be right for Hugs and NHC. I hope you can
      	  	 fix them up.
      6e6f5469
    • simonpj's avatar
      [project @ 2003-04-17 15:22:38 by simonpj] · f238dae7
      simonpj authored
      Comments
      f238dae7
    • simonpj's avatar
      [project @ 2003-04-17 14:12:15 by simonpj] · 989039af
      simonpj authored
      Comments
      989039af
    • simonpj's avatar
      [project @ 2003-04-17 07:13:54 by simonpj] · fb147188
      simonpj authored
      Update hi-boot files
      fb147188
  6. 16 Apr, 2003 1 commit
    • simonpj's avatar
      [project @ 2003-04-16 13:34:13 by simonpj] · 221b6b69
      simonpj authored
      ----------------------------------
       Use the Infer/Check idea for typechecking higher-rank types
      	----------------------------------
      
      The main idea is that
      
      	data Expected ty = Infer (TcRef ty) | Check ty
      
      	tcMonoExpr :: Expr -> Expected TcRhoType -> TcM Expra
      
      
      This "Expected" type tells tcMonoExpr whether it's doing inference or
      checking.  It replaces the "HoleTv" flavour of type variable.
      
      This actually leads to slightly more lines of code, but it's much
      clearer, and the new type distinctions showed up several subtle bugs
      in the previous implementation.  It all arose out of writing the
      prototype implementation for the paper.
      
      Error messages wibble around a little bit.  I'm not quite certain why!  But the
      changes look like improvements to me.
      221b6b69
  7. 12 Apr, 2003 2 commits
  8. 11 Apr, 2003 3 commits
  9. 10 Apr, 2003 6 commits
  10. 09 Apr, 2003 2 commits
    • simonpj's avatar
      [project @ 2003-04-09 08:07:58 by simonpj] · cf31797e
      simonpj authored
      -------------------------------------
            Fix a functional-dependency-related bug in
      		tcSimpifyRestricted
      	-------------------------------------
      
      	MERGE TO STABLE if it goes over conveniently
      		(but I rather think it may not)
      
      tcSimplifyRestricted works by (a) simplifying brutall to find out
      what the constrained type variables are, and (b) simplifying more
      gently, knowing the constrained type varaibles.  The bug is that
      in step (b) we were not doing the check-for-improvement-and-loop
      part, thinking that step (a) had alrady done all the improvement.
      But not so, as an example in the code now shows.
      
      Simple to fix.  I rather think we could tidy up these various loops.
      cf31797e
    • simonpj's avatar
      [project @ 2003-04-09 07:48:31 by simonpj] · 92cee1fc
      simonpj authored
      Comments
      92cee1fc
  11. 08 Apr, 2003 5 commits
  12. 06 Apr, 2003 1 commit
  13. 01 Apr, 2003 2 commits
    • sof's avatar
      [project @ 2003-04-01 15:28:20 by sof] · 1d87bd26
      sof authored
      Have Literal.Literal support the representation of NULL pointers only,
      and not arbitrary pointer values.
      
      (MachAddr <some-pointer-value-as-an-Integer>) wasn't being used,
      except to handle nullAddr#. It (MachAddr) is a potential source of
      problems should the compiler start doing constant folding or other
      interesting operations over MachAddrs (think: interface files +
      cross-compilation), so we might as well scale back the representation
      of raw pointer values.
      1d87bd26
    • simonmar's avatar
      [project @ 2003-04-01 09:35:13 by simonmar] · 999f8cf9
      simonmar authored
      Don't constant-fold (negateFloat# 0.0#), because the compiler's
      internal representation of floating-point literals (Rational) can't
      represent -0.0.  This means that
      
         main = print (-0.0)
      
      now gives the same results with -O as it does without.
      
      Fixes test arith005.
      999f8cf9
  14. 31 Mar, 2003 1 commit
  15. 28 Mar, 2003 1 commit
    • sof's avatar
      [project @ 2003-03-28 01:59:05 by sof] · a5687b3b
      sof authored
      Off-by-one tidyup.
      
      ALLOC_AP, ALLOC_PAP and MKAP were all being constructed
      with size arguments equal to (1+number of args/FVs) in
      ByteCodeGen.schemeE, only for Interpreter.c to subtract 1
      when fishing out the payloads. This commit drops the
      up-and-downery.
      
      Simplification spotted by Andy Moran
      a5687b3b
  16. 27 Mar, 2003 5 commits
    • sof's avatar
      [project @ 2003-03-27 17:59:09 by sof] · 6da62425
      sof authored
      NCG support for f.e.d. stdcall -- Literal.MachLabels now optionally carry
      the size (in bytes) of the stack frame it expects, if known. That just
      so happens to match what stdcall labels need to be annotated with when
      emitting them in the NCG..
      6da62425
    • simonpj's avatar
      [project @ 2003-03-27 08:25:31 by simonpj] · b52d5ab7
      simonpj authored
      -------------------------------------
            Fix a wibble in default-type setting for TH
      	-------------------------------------
      
      When a bunch of declarations contains no 'default' declaration,
      we were setting 'defaultDefaultTys' as appropriate default types.
      This isn't right for Template Haskell, which may have more than
      one bunch of top-level decls.  (The bunches are separated by
      top-level declaration splices.)
      
      Instead, if there is no 'default' declaration we should do nothing.
      b52d5ab7
    • simonpj's avatar
      [project @ 2003-03-27 08:21:27 by simonpj] · 3ede7cd4
      simonpj authored
      -------------------------------------
            Respect SPECIALISE pragmas in instance decls
      	-------------------------------------
      
      For some time now we have simply been discarding SPECIALISE pragmas
      in instance declarations.  I think this was my fault, at some point
      when I was re-plumbing TcClassDcl.lhs, but it's been this way for
      some time.
      
      The only uses of this facility in the Prelude are in GHC/Float.lhs
      and GHC/Real.lhs, which affected the efficiency of the Float and
      Double instance of properFraction, floor, ceiling, etc.
      
      Ah well, it's fixed now.
      3ede7cd4
    • simonpj's avatar
      [project @ 2003-03-27 08:18:21 by simonpj] · e79e33b9
      simonpj authored
      Reduce tctrace verbosity
      e79e33b9
    • simonpj's avatar
      [project @ 2003-03-27 08:16:29 by simonpj] · e9440920
      simonpj authored
      Import wibbles
      e9440920
  17. 25 Mar, 2003 1 commit