1. 23 Aug, 2007 1 commit
    • rl@cse.unsw.edu.au's avatar
      Use n-ary sums and products for NDP's generic representation · a52f1489
      rl@cse.unsw.edu.au authored
      Originally, we wanted to only use binary ones, at least initially. But this
      would a lot of fiddling with selectors when converting to/from generic
      array representations. This is both inefficient and hard to implement.
      Instead, we will limit the arity of our sums/product representation to, say,
      16 (it's 3 at the moment) and initially refuse to vectorise programs for which
      this is not sufficient. This allows us to implement everything in the library.
      Later, we can implement the necessary splitting.
  2. 30 Aug, 2007 2 commits
  3. 29 Aug, 2007 5 commits
  4. 30 Aug, 2007 2 commits
  5. 29 Aug, 2007 2 commits
  6. 24 Aug, 2007 1 commit
  7. 29 Aug, 2007 2 commits
  8. 28 Aug, 2007 1 commit
  9. 29 Aug, 2007 3 commits
  10. 28 Aug, 2007 4 commits
  11. 24 Aug, 2007 3 commits
  12. 28 Aug, 2007 3 commits
  13. 27 Aug, 2007 3 commits
    • mnislaih's avatar
      :stepover ---> :steplocal, :stepmodule · 3240dc3b
      mnislaih authored
       :stepover is declared a failed experiment. 
      :steplocal steps only on ticks contained in the current
      top level declaration. 
      :stepmodule steps only on ticks contained on the current
      The current top level declaration and module are with
       respect to the breakpoint we are stopped on.
       The main reason for the failure of :stepover
      (apart from lacking a lexical call stack of course)
      is that it fails to detect when the expression being 
      evaluated is "complete", i.e. there are no ticks left in it.
      My assumption of the rightmost tick as the "last one",
      signaling that the expression is completely evaluated,
      is not true at all under laziness. 
      This assumption was key in the implementation of :stepover.
    • mnislaih's avatar
      Use a version of obtainTerm that takes a max depth bound · a27d12f0
      mnislaih authored
      when printing the contents of binding at a breakpoint
    • mnislaih's avatar
  14. 26 Aug, 2007 2 commits
  15. 24 Aug, 2007 1 commit
    • mnislaih's avatar
      A partial attempt to improve :stepover · 99794f66
      mnislaih authored
        With this patch, :stepover can effectively appear to step over recursive calls and 
        calls to locally bound functions (in a where clause).
        However, when we run out of ticks in the current expression, 
        the illusion vanishes and laziness brings us to the body of the last function 
        we "stepped over". 
        This is not desired at all, it is potentially very confusing.
        As a countermeasure, when this happens :stepover emits a warning
           "Warning: no more breakpoints in this function body, switching to :step"  
  16. 22 Aug, 2007 1 commit
  17. 28 Aug, 2007 1 commit
  18. 26 Aug, 2007 2 commits
    • Simon Marlow's avatar
      convert to use System.FilePath · fa6c4bf0
      Simon Marlow authored
    • Simon Marlow's avatar
      Refactoring only: remove [Id] field from ForeignStubs · 663b3914
      Simon Marlow authored
      We used to pass the list of top-level foreign exported bindings to the
      code generator so that it could create StablePtrs for them in the
      stginit code.  Now we don't use stginit unless profiling, and the
      StablePtrs are generated by C functions marked with
      attribute((constructor)).  This patch removes various bits associated
      with the old way of doing things, which were previously left in place
      in case we wanted to switch back, I presume.  Also I refactored
      dsForeigns to clean it up a bit.
  19. 28 Aug, 2007 1 commit
    • chak@cse.unsw.edu.au.'s avatar
      Type checking for type synonym families · 5822cb8d
      chak@cse.unsw.edu.au. authored
      This patch introduces type checking for type families of which associated
      type synonyms are a special case. E.g.
              type family Sum n m
              type instance Sum Zero n = n
              type instance Sum (Succ n) m = Succ (Sum n m)
              data Zero       -- empty type
              data Succ n     -- empty type
      In addition we support equational constraints of the form:
              ty1 ~ ty2
      (where ty1 and ty2 are arbitrary tau types) in any context where
      type class constraints are already allowed, e.g.
              data Equals a b where
                      Equals :: a ~ b => Equals a b
      The above two syntactical extensions are disabled by default. Enable
      with the -XTypeFamilies flag.
      For further documentation about the patch, see:
              * the master plan
              * the user-level documentation
      The patch is mostly backwards compatible, except for:
              * Some error messages have been changed slightly.
              * Type checking of GADTs now requires a bit more type declarations:
                not only should the type of a GADT case scrutinee be given, but also
                that of any identifiers used in the branches and the return type.
      Please report any unexpected behavior and incomprehensible error message 
      for existing code.
      Contributors (code and/or ideas):
              Tom Schrijvers
              Manuel Chakravarty
              Simon Peyton-Jones
              Martin Sulzmann 
      with special thanks to Roman Leshchinskiy