1. 04 Jul, 2016 5 commits
  2. 01 Jul, 2016 10 commits
  3. 30 Jun, 2016 13 commits
    • thomie's avatar
      Fix check_uniques in non-unicode locale · b65363d3
      thomie authored
      Testcase: `LC_ALL=C make -C utils/checkUniques`. Works with python2 and
      python3.
      
      Reviewed by: bgamari
      
      Differential Revision: https://phabricator.haskell.org/D2372
      b65363d3
    • Michal Terepeta's avatar
      CmmExpr: remove unused `vgcFlag` function · f1e16e92
      Michal Terepeta authored
      Test Plan: validate
      
      Reviewers: austin, bgamari, simonmar
      
      Reviewed By: bgamari, simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2351
      f1e16e92
    • Ben Gamari's avatar
      ghc-pkg: Drop trailing slashes in computing db paths · f68d40cb
      Ben Gamari authored
      Test Plan: Validate, try tests in ticket
      
      Reviewers: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2336
      
      GHC Trac Issues: #12194
      f68d40cb
    • Ben Gamari's avatar
      nativeGen: Allow -fregs-graph to be used · 6a5d13c4
      Ben Gamari authored
      Previously the flag was silently ignored due the #7679 and #8657. This,
      however, seems unnecessarily brutal and makes experimentation unduly
      difficult for users.
      
      Test Plan: Validate
      
      Reviewers: austin, simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2335
      
      GHC Trac Issues: #7679, #8657
      6a5d13c4
    • Alexander Vieth's avatar
      Trac #11554 fix loopy GADTs · 430f5c84
      Alexander Vieth authored
      Summary: Fixes T11554
      
      Reviewers: goldfire, thomie, simonpj, austin, bgamari
      
      Reviewed By: thomie, simonpj, bgamari
      
      Subscribers: simonpj, goldfire, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2283
      
      GHC Trac Issues: #11554
      430f5c84
    • Edward Z. Yang's avatar
      Updates to handle new Cabal · 0701db12
      Edward Z. Yang authored
      
      
      Specifically per-component macros and multiple libraries.
      
      Contains Cabal submodule update.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: validate
      
      Reviewers: austin, bgamari
      
      Reviewed By: austin, bgamari
      
      Subscribers: hvr, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2059
      0701db12
    • Edward Z. Yang's avatar
      Axe RecFlag on TyCons. · b8b3e30a
      Edward Z. Yang authored
      
      
      Summary:
      This commit removes the information about whether or not
      a TyCon is "recursive", as well as the code responsible
      for calculating this information.
      
      The original trigger for this change was complexity regarding
      how we computed the RecFlag for hs-boot files.  The problem
      is that in order to determine if a TyCon is recursive or
      not, we need to determine if it was defined in an hs-boot
      file (if so, we conservatively assume that it is recursive.)
      
      It turns that doing this is quite tricky.  The "obvious"
      strategy is to typecheck the hi-boot file (since we are
      eventually going to need the typechecked types to check
      if we properly implemented the hi-boot file) and just extract
      the names of all defined TyCons from the ModDetails, but
      this actually does not work well if Names from the hi-boot
      file are being knot-tied via if_rec_types: the "extraction"
      process will force thunks, which will force the typechecking
      process earlier than we have actually defined the types
      locally.
      
      Rather than work around all this trickiness (it certainly
      can be worked around, either by making interface loading
      MORE lazy, or just reading of the set of defined TyCons
      directly from the ModIface), we instead opted to excise
      the source of the problem, the RecFlag.
      
      For one, it is not clear if the RecFlag even makes sense,
      in the presence of higher-orderness:
      
          data T f a = MkT (f a)
      
      T doesn't look recursive, but if we instantiate f with T,
      then it very well is!  It was all very shaky.
      
      So we just don't bother anymore.  This has two user-visible
      implications:
      
      1. is_too_recursive now assumes that all TyCons are
      recursive and will bail out in a way that is still mysterious
      to me if there are too many TyCons.
      
      2. checkRecTc, which is used when stripping newtypes to
      get to representation, also assumes all TyCons are
      recursive, and will stop running if we hit the limit.
      
      The biggest risk for this patch is that we specialize less
      than we used to; however, the codeGen tests still seem to
      be passing.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Reviewers: simonpj, austin, bgamari
      
      Subscribers: goldfire, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2360
      b8b3e30a
    • niteria's avatar
      Remove ufmToList · 480e0661
      niteria authored
      This documents nondeterminism in code generation and removes
      the nondeterministic ufmToList function. In the future someone
      will have to use nonDetUFMToList (with proper explanation)
      or pprUFMWithKeys.
      480e0661
    • niteria's avatar
      Reorganize some determinism tests · b6b20a50
      niteria authored
      This directory structure makes it easier to find the tests
      b6b20a50
    • niteria's avatar
      Add a new determinism test · 9854f14e
      niteria authored
      This is one of the testcases that I forgot to commit
      9854f14e
    • niteria's avatar
      Delete Ord Unique · fb6e2c7f
      niteria authored
      Ord Unique can be a source of invisible, accidental
      nondeterminism as explained in Note [No Ord for Unique].
      This removes it, leaving a note with rationale.
      
      It's unfortunate that I had to write Ord instances for
      codegen data structures by hand, but I believe that it's a
      right trade-off here.
      
      Test Plan: ./validate
      
      Reviewers: simonmar, austin, bgamari
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2370
      
      GHC Trac Issues: #4012
      fb6e2c7f
    • thomie's avatar
      Testsuite: do not depend on sys.stdout.encoding · e8d62711
      thomie authored
      The cause of #12213 is in dump_stdout and dump_stderr:
      
            print(read_no_crs(<filename>))
      
      Commit 6f6f5154 changed read_no_crs to
      return a unicode string. Printing a unicode strings works fine as long
      as sys.stdout.encoding is 'UTF-8'.
      
      There are two reasons why sys.stdout.encoding might not be 'UTF-8'.
      
      * When output is going to a file, sys.stdout and sys.stdout do not respect
        the locale:
      
        $ LC_ALL=en_US.utf8 python -c 'import sys; print(sys.stderr.encoding)'
        UTF-8
        $ LC_ALL=en_US.utf8 python -c 'import sys; print(sys.stderr.encoding)' 2>/dev/null
        None
      
      * When output is going to the terminal, explicitly reopening sys.stdout has
        the side-effect of changing sys.stdout.encoding from 'UTF-8' to 'None'.
      
            sys.stdout = os.fdopen(sys.__stdout__.fileno(), "w", 0)
      
        We currently do this to set a buffersize of 0 (the actual
        buffersize used is irrelevant for the sys.stdout.encoding problem).
      
      Solution: fix dump_stdout and dump_stderr to not use read_no_crs.
      e8d62711
    • Simon Peyton Jones's avatar
      Fix pretty-printer for IfaceCo · 24194a6a
      Simon Peyton Jones authored
      As Trac #12242 showed, there was a missing case in
      the pretty printer for IfaceCo. I've refactored it
      so that the pattern-match ovelap checker will spot
      it next time.
      24194a6a
  4. 29 Jun, 2016 5 commits
    • thomie's avatar
      Testsuite: use ignore_stderr/stdout instead of ignore_output · 1084d375
      thomie authored
      The problem with ignore_output is that it hides errors for WAY=ghci.
      GHCi always returns with exit code 0 (unless it is broken itself).
      
      For example: ghci015 must have been failing with compile errors for
      years, but we didn't notice because all output was ignored.
      
      Therefore, replace all uses of ignore_output with either ignore_stderr
      or ignore_stdout. In some cases I opted for adding the expected output.
      
      Update submodule hpc and stm.
      
      Reviewed by: simonmar
      
      Differential Revision: https://phabricator.haskell.org/D2367
      1084d375
    • niteria's avatar
      Double the file descriptor limit for openFile008 · 8f7194fa
      niteria authored
      I have get test failures on `openFile008` with
      `openFile: resource exhausted (Too many open files)` when running
      inside `./validate`, but not when I run the test individually.
      I suspect that's because with `./validate` parallelism of 33 threads
      I go just above the `1024` file descriptor limit.
      This is probably related to the recent change:
      `58f0086b: Testsuite: open/close stdin/stdout/stderr explicitly`
      but I haven't looked deep enough to understand exactly how.
      I think bumping this is harmless, but I don't really know why it's
      necessary at all.
      
      Test Plan: ./validate
      
      Reviewers: austin, thomie, hvr, bgamari, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: simonmar
      
      Differential Revision: https://phabricator.haskell.org/D2368
      8f7194fa
    • niteria's avatar
      Refactor match to not use Unique order · 9a645a16
      niteria authored
      Unique order can introduce nondeterminism.
      As a step towards removing the Ord Unique instance
      I've refactored the code to use deterministic sets instead.
      
      Test Plan: ./validate
      
      Reviewers: simonmar, austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2369
      
      GHC Trac Issues: #4012
      9a645a16
    • thomie's avatar
      Testsuite: fixes for python2.6 support · 848e3ceb
      thomie authored
      848e3ceb
    • Simon Peyton Jones's avatar
      Test Trac #12185 · 2e9079ff
      Simon Peyton Jones authored
      2e9079ff
  5. 28 Jun, 2016 7 commits
    • Facundo Domínguez's avatar
      Stop the simplifier from removing StaticPtr binds. · dd92c67b
      Facundo Domínguez authored
      Summary:
      We have the FloatOut pass create exported ids for floated StaticPtr
      bindings. The simplifier doesn't try to remove those.
      
      This patch also improves on 7fc20b by making a common definition
      collectStaticPtrSatArgs to test for StaticPtr binds.
      
      Fixes #12207.
      
      Test Plan: ./validate
      
      Reviewers: simonpj, austin, bgamari, simonmar, goldfire
      
      Reviewed By: simonpj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2366
      
      GHC Trac Issues: #12207
      dd92c67b
    • Simon Peyton Jones's avatar
      Wibble error message for #11471 · dc62a222
      Simon Peyton Jones authored
      I'm not quite sure why this changed with my two recent commits,
      but it /has/ changed (in a benign way) so I'm accepting it.
      Maybe it wasn't me anyway... but life is short and I'm not inclined
      to dig further.
      dc62a222
    • Simon Peyton Jones's avatar
      Deal correctly with unused imports for 'coerce' · 23b80ac4
      Simon Peyton Jones authored
      We only do newtype unwrapping for Coercible constraints if
      the newtype's data constructor is in scope.  We were trying to
      record the fact that the data constructor was thereby 'used', so
      that an import statement would not be flagged as unnecsssary
      (by -Wunused-imports).
      
      But the code was simply wrong. It was wrong because it assumed
      that only one level of unwrapping happened, whereas
      tcTopNormaliseNewTypeTF_maybe actually unwraps multiple layers.
      So we need to return a /list/ of data constructors that are used.
      
      This entailed a bit of refactoring, as usual.
      
      Fixes Trac #12067
      23b80ac4
    • Simon Peyton Jones's avatar
      Don't omit any evidence bindings · af21e388
      Simon Peyton Jones authored
      This fixes Trac #12156, where we were omitting to make an
      evidence binding (because cec_suppress was on), but yet the
      program was compiled and run.
      
      The fix is easy, and involves deleting code :-).
      af21e388
    • thomie's avatar
      Testsuite: mark tests expect_broken · 3fb9837f
      thomie authored
      * T7837 is still broken for prof_ways (#9406)
      * T11627b is broken on Windows for WAY=prof_hc_hb (#12236)
      * T8089 is also broken for WAY=profasm on Windows
      3fb9837f
    • thomie's avatar
      Testsuite: do not add -debug explicitly in .T file · 0eb03781
      thomie authored
      This prevents `cannot find -lHSrts_debug_p` when running `make
      TEST=T9078 WAY=profasm` (#9078).
      0eb03781
    • thomie's avatar
      Testsuite: run all indexed-types ways on ./validate --slow · 6b3b631e
      thomie authored
      I don't know why some ways were omitted before.
      6b3b631e