1. 23 Jul, 2009 5 commits
  2. 22 Jul, 2009 5 commits
  3. 19 Jul, 2009 1 commit
  4. 22 Jul, 2009 1 commit
  5. 20 Jul, 2009 2 commits
    • Simon Marlow's avatar
      remove unused $(HscIfaceFileVersion) · 872bd77d
      Simon Marlow authored
      872bd77d
    • Simon Marlow's avatar
      Choose external names more predictably · fa9f1e20
      Simon Marlow authored
      Now, for a compiler-generated binding "x", if "x" is referred to by
      the exported "f", then it will be named "f_x" rather than something
      like "x23".  This means that hopefully
      
        - compilation will more often product the same results given the
          same input (the choice of names is not dependent on the
          non-deterministic order of bindings within the compiler).
      
        - less recompilation will be necessary after making changes
      
        - navigating Core might be a bit easier.
      
      unfortunately, compilation with -O still does not consistently produce
      the same ABI.  The simplifier sometimes does different things,
      apparently.
      
      Names will be longer, but I can't see a way around that.
      fa9f1e20
  6. 17 Jul, 2009 1 commit
  7. 16 Jul, 2009 1 commit
  8. 22 Jul, 2009 1 commit
    • simonpj@microsoft.com's avatar
      Take account of GADTs when reporting patterm-match overlap · 5b494344
      simonpj@microsoft.com authored
      When matching against a GADT, some of the constructors may be impossible.
      For example
      	data T a where
                T1 :: T Int
                T2 :: T Bool
                T3 :: T a
      
              f :: T Int -> Int
              f T1 = 3
              f T3 = 4
      
      Here, does not have any missing cases, despite omittting T2, because
      T2 :: T Bool.
      
      This patch teaches the overlap checker about GADTs, which happily
      turned out to be rather easy even though the overlap checker needs
      a serious rewrite.
      5b494344
  9. 20 Jul, 2009 1 commit
  10. 19 Jul, 2009 2 commits
  11. 18 Jul, 2009 7 commits
  12. 17 Jul, 2009 5 commits
  13. 24 Jun, 2009 1 commit
  14. 26 Jun, 2009 1 commit
  15. 18 Jun, 2009 1 commit
  16. 17 Jul, 2009 1 commit
  17. 16 Jul, 2009 4 commits
    • Simon Marlow's avatar
      Use names like '$fOrdInt' for dfuns (and TF instances), rather than '$f21' · a6f29db0
      Simon Marlow authored
      2 reasons for this:
        - compilation is more predictable.  Adding or removing an instance
          is less likely to force unnecessary recompilation due to
          renumbering other dfun names.
        - it makes it easier to read Core / C-- / asm
      
      The names aren't completely deterministic.  To do that, we'd have to
      include package and module names, which would make the symbol names
      long and reduce readability.  So the compromise is that if there's a
      clash, we disambiguate by adding an integer suffix.  This is fairly
      unlikely in practice unless you're using overlapping instances.
      
      Type family instances are handled in the same way, with the same
      disambiguation strategy.
      a6f29db0
    • Simon Marlow's avatar
      Use a stable ordering for the export list in the interface · 5aeae7aa
      Simon Marlow authored
      The export list was ordered according to the whim of FastStrings,
      which meant that interface fingerprints could change for no good
      reason, causing spurious recompilation.
      5aeae7aa
    • Ian Lynagh's avatar
      Don't put all of $CFLAGS into $SRC_CC_OPTS · 17c5559e
      Ian Lynagh authored
      Instead, we just put the flags we need in there (e.g. -m64 on OS X 64).
      This fixes a problem found by Simon M, where we were compiling
      everything with -g, leading to a bloated RTS.
      17c5559e
    • Ian Lynagh's avatar
      Move showOpt into DynFlags · caf21123
      Ian Lynagh authored
      caf21123