1. 02 Apr, 2004 14 commits
    • simonmar's avatar
      [project @ 2004-04-02 14:28:57 by simonmar] · f216dd01
      simonmar authored
      Some updates I've had sitting in my tree for a while:
      
        - when there are two logs only, print a summary table at the beginning
          of the output with columns for allocs, runtime, memory reads/writes, instrs.
      
        - handle multiple runs of each program, and average the results. (changes
          to nofib build system to follow).
      f216dd01
    • simonmar's avatar
      [project @ 2004-04-02 14:22:30 by simonmar] · 8d0295c8
      simonmar authored
      cachegrind: update command line syntax for recent versions of valgrind
      8d0295c8
    • simonpj's avatar
      [project @ 2004-04-02 13:38:44 by simonpj] · 7010f47b
      simonpj authored
      Document -fno-state-hack
      7010f47b
    • simonpj's avatar
      [project @ 2004-04-02 13:34:42 by simonpj] · 52276d81
      simonpj authored
      Add a flag -fno-state-hack, which switches off the "state hack".
      
      It's claims that every function over realWorldStatePrimTy is a
      one-shot function.  This is pretty true in practice, and makes a big
      difference.  For example, consider
      	a `thenST` \ r -> ...E...
      The early full laziness pass, if it doesn't know that r is one-shot
      will pull out E (let's say it doesn't mention r) to give
      	let lvl = E in a `thenST` \ r -> ...lvl...
      When `thenST` gets inlined, we end up with
      	let lvl = E in \s -> case a s of (r, s') -> ...lvl...
      and we don't re-inline E.
      52276d81
    • simonpj's avatar
      [project @ 2004-04-02 13:19:28 by simonpj] · fb30abb2
      simonpj authored
      Get rid of DiscardedInfo, and fix a Ghci bug at the same time.
      
      The new story is this:
      
      - We always read the whole interface file, as it exists on disk,
        not dropping pragmas or anything.
      
      - We compare that from-the-disk copy with the new version before
        writing the new interface file.
      
      - We drop the pragmas
        a) Before loading the interface payload into the declaration pools
        b) In the no-need-to-recompile case, before typechecking the
      	interface decls.  Omitting this was the previous bug.
      fb30abb2
    • simonpj's avatar
      [project @ 2004-04-02 13:16:07 by simonpj] · 2a0ee8e5
      simonpj authored
      * Improve error message for overlapping instances
      
      * Improve handling of type-variable-only constraints like (Foo a).
        Previously we never looked them up in the instance envt, *except* if
        -fallow-undecideable-instances was on, because that allows
      	instance (...) => Foo a
        But -fallow-undecideable-instances might be on in the module with the
        instance decl, but off in the importing module.  Also it's really a per-class
        thing.  So now we just record in the instance env whether there are any such
        strange instances, a kind of short-cut for the lookup.
      
      * Arrange that we are a bit more eager about resolving overloading in
        the case of existential pattern matching [George Russel suggestion]
        Here's the example (see comments in InstEnv)
      	-- The key_tys can contain skolem constants, and we can guarantee that those
      	-- are never going to be instantiated to anything, so we should not involve
      	-- them in the unification test.  Example:
      	--	class Foo a where { op :: a -> Int }
      	--	instance Foo a => Foo [a] 	-- NB overlap
      	--	instance Foo [Int]		-- NB overlap
      	-- 	data T = forall a. Foo a => MkT a
      	--	f :: T -> Int
      	--	f (MkT x) = op [x,x]
      	-- The op [x,x] means we need (Foo [a]).  Without the filterVarSet we'd
      	-- complain, saying that the choice of instance depended on the instantiation
      	-- of 'a'; but of course it isn't *going* to be instantiated.
      2a0ee8e5
    • simonpj's avatar
      [project @ 2004-04-02 13:10:00 by simonpj] · 68021ad9
      simonpj authored
      Fix erroneous hi-boot
      68021ad9
    • simonpj's avatar
      [project @ 2004-04-02 12:38:33 by simonpj] · bc7bd6e3
      simonpj authored
      A preliminary step towards being able to identify existential
      type variables separately.  That in turn helps when resolving
      overloading; I think we want to resolve overloading without
      worrying about what these type variables might instantiate to.
      bc7bd6e3
    • simonpj's avatar
      [project @ 2004-04-02 12:04:13 by simonpj] · 8bdc5d40
      simonpj authored
      wibble
      8bdc5d40
    • simonpj's avatar
      [project @ 2004-04-02 11:59:21 by simonpj] · a4a7fd63
      simonpj authored
      Comments mainly, plus use newTyConRhs
      a4a7fd63
    • simonpj's avatar
      [project @ 2004-04-02 11:57:49 by simonpj] · fe93680b
      simonpj authored
      Remove unused result from dropInline
      fe93680b
    • simonpj's avatar
      [project @ 2004-04-02 11:56:37 by simonpj] · 2151d685
      simonpj authored
      Comments
      2151d685
    • simonpj's avatar
      [project @ 2004-04-02 11:55:34 by simonpj] · f1915c2a
      simonpj authored
      Import wibbles
      f1915c2a
    • igloo's avatar
      [project @ 2004-04-02 02:39:26 by igloo] · 427ce38d
      igloo authored
      Add support for foreign imports inside quasi-quotes.
      Gave TH a few more uniques to play with and fixed a typo.
      427ce38d
  2. 31 Mar, 2004 1 commit
    • simonmar's avatar
      [project @ 2004-03-31 15:23:16 by simonmar] · 17d537ba
      simonmar authored
      ClosureInfo.might_be_a_function: this predicate wasn't taking into
      account abstract types, which might also hide functions underneath.
      
      Fixes broken compiler when compiled without -O.
      17d537ba
  3. 30 Mar, 2004 2 commits
  4. 27 Mar, 2004 1 commit
  5. 24 Mar, 2004 2 commits
  6. 23 Mar, 2004 5 commits
  7. 22 Mar, 2004 4 commits
  8. 21 Mar, 2004 1 commit
  9. 19 Mar, 2004 4 commits
    • panne's avatar
      [project @ 2004-03-19 23:20:20 by panne] · 9b5e0886
      panne authored
      Fixed  the JOB line in heap  profiles, it contained superfluous spaces
      and an evil line break.
      
      Merge to STABLE
      (This fix looks quite right, but again, I leave this to the Master of
      Releases (tm), because there might already be tools depending on the
      slightly wrong old format.)
      9b5e0886
    • panne's avatar
      [project @ 2004-03-19 23:17:06 by panne] · 06ebaa8c
      panne authored
      Restrict the setlocale() to LC_CTYPE (was LC_ALL), because printf and friends
      are LC_NUMERIC-sensitive. This fixes the generation of heap profiles for e.g.
      de_DE locales where a comma separates the fractional part of a number, not a
      dot. (There was a similar bug in Hugs regarding atof, BTW, which was fixed last
      December.)
      
      Merge to STABLE
      (I leave this to the Grand Marshal of Releases, Mr. SimonM, because I'm not 100%
      sure of all the consequences.)
      06ebaa8c
    • simonpj's avatar
      [project @ 2004-03-19 13:25:24 by simonpj] · 45deb4d6
      simonpj authored
      Add comments
      45deb4d6
    • simonpj's avatar
      [project @ 2004-03-19 13:24:52 by simonpj] · fac53ab4
      simonpj authored
      Fix naming bogon for Typeable
      fac53ab4
  10. 18 Mar, 2004 3 commits
  11. 17 Mar, 2004 3 commits
    • simonpj's avatar
      [project @ 2004-03-17 15:38:13 by simonpj] · ad90960b
      simonpj authored
      Wibble
      ad90960b
    • simonpj's avatar
      [project @ 2004-03-17 13:59:06 by simonpj] · af5a2151
      simonpj authored
      ------------------------
      	More newtype clearing up
      	------------------------
      
      * Change the representation of TyCons so that it accurately reflects
      	* data     (0 or more constrs)
      	* newtype  (1 constr)
      	* abstract (unknown)
        Replaces DataConDetails and AlgTyConFlavour with AlgTyConRhs
      
      * Add IfaceSyn.IfaceConDecls, a kind of stripped-down analogue
        of AlgTyConRhs
      
      * Move NewOrData from BasicTypes to HsDecl (it's now an HsSyn thing)
      
      * Arrange that Type.newTypeRep and splitRecNewType_maybe unwrap just
        one layer of new-type-ness, leaving the caller to recurse.
      
        This still leaves typeRep and repType in Type.lhs; these functions
        are still vaguely disturbing and probably should get some attention.
      
      Lots of knock-on changes.  Fixes bug in ds054.
      af5a2151
    • simonpj's avatar
      [project @ 2004-03-17 10:44:06 by simonpj] · a34e79f1
      simonpj authored
      More Windows building notes
      a34e79f1