1. 31 Mar, 2015 2 commits
  2. 30 Mar, 2015 5 commits
    • thomie's avatar
      Syntax check package-qualified imports (#9225) · 5971ad56
      thomie authored
      Version numbers are not allowed in the package name of a
      package-qualified import.
      
      Reviewed By: austin, ezyang
      
      Differential Revision: https://phabricator.haskell.org/D755
      5971ad56
    • thomie's avatar
      Delete unused field `PipeEnv.pe_isHaskellishFile` · b1d6a608
      thomie authored
      Differential Revision: https://phabricator.haskell.org/D774
      b1d6a608
    • Dave Laing's avatar
    • Joachim Breitner's avatar
      Refactor the story around switches (#10137) · de1160be
      Joachim Breitner authored
      This re-implements the code generation for case expressions at the Stg →
      Cmm level, both for data type cases as well as for integral literal
      cases. (Cases on float are still treated as before).
      
      The goal is to allow for fancier strategies in implementing them, for a
      cleaner separation of the strategy from the gritty details of Cmm, and
      to run this later than the Common Block Optimization, allowing for one
      way to attack #10124. The new module CmmSwitch contains a number of
      notes explaining this changes. For example, it creates larger
      consecutive jump tables than the previous code, if possible.
      
      nofib shows little significant overall improvement of runtime. The
      rather large wobbling comes from changes in the code block order
      (see #8082, not much we can do about it). But the decrease in code size
      alone makes this worthwhile.
      
      ```
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
                  Min          -1.8%      0.0%     -6.1%     -6.1%     -2.9%
                  Max          -0.7%     +0.0%     +5.6%     +5.7%     +7.8%
       Geometric Mean          -1.4%     -0.0%     -0.3%     -0.3%     +0.0%
      ```
      
      Compilation time increases slightly:
      ```
              -1 s.d.                -----            -2.0%
              +1 s.d.                -----            +2.5%
              Average                -----            +0.3%
      ```
      
      The test case T783 regresses a lot, but it is the only one exhibiting
      any regression. The cause is the changed order of branches in an
      if-then-else tree, which makes the hoople data flow analysis traverse
      the blocks in a suboptimal order. Reverting that gets rid of this
      regression, but has a consistent, if only very small (+0.2%), negative
      effect on runtime. So I conclude that this test is an extreme outlier
      and no reason to change the code.
      
      Differential Revision: https://phabricator.haskell.org/D720
      de1160be
    • Dave Laing's avatar
      Renames some files to help with validation cleanup (#10212) · e24f6381
      Dave Laing authored
      Test Plan: validate twice
      
      Reviewed by: thomie
      
      Differential Revision: https://phabricator.haskell.org/D771
      e24f6381
  3. 29 Mar, 2015 1 commit
  4. 28 Mar, 2015 1 commit
  5. 27 Mar, 2015 3 commits
    • thomie's avatar
      Rename driver phases C(obj)cpp to C(obj)cplusplus · abde5da4
      thomie authored
      Before:
      Cpp     = Pre-process C
      Ccpp    = Compile C++
      Cobjcpp = Compile Objective-C++
      CmmCpp  = Pre-process Cmm
      
      Quite confusing! This commit renames `Ccpp` to `Ccplusplus`, and
      `Cobjcpp` to `Cobjcplusplus`. The two letters `p-p` keep standing for
      `pre-processing` throughout the compiler.
      
      Reviewed By: austin
      
      Differential Revision: https://phabricator.haskell.org/D756
      abde5da4
    • rwbarton's avatar
      Update list of primops that don't get wrappers (#10191) · af45feba
      rwbarton authored
      Summary:
      The list was 14 years old, and there don't seem to be any problems
      with seq# or par#; the other par*# primops were not actually
      implemented at all and were removed in D758.
      
      Test Plan:
      validate; will also try to locally validate an unregisterised build
      in case there was some truth to the deleted comment
      
      Reviewers: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D759
      
      GHC Trac Issues: #10191
      af45feba
    • rwbarton's avatar
      Remove some unimplemented GranSim primops · 90dd11bf
      rwbarton authored
      Summary:
      An attempt to use these resulted in an error like:
      
      [1 of 1] Compiling Main             ( p.hs, p.o )
      ghc: panic! (the 'impossible' happened)
        (GHC version 7.8.4 for x86_64-unknown-linux):
      	emitPrimOp: can't translate PrimOp  parAt#{v}
      
      Test Plan: validate
      
      Reviewers: thomie, austin
      
      Reviewed By: thomie, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D758
      90dd11bf
  6. 26 Mar, 2015 1 commit
    • Herbert Valerio Riedel's avatar
      Fix Git-commit-id detection for RELEASE=YES · 5aa57d01
      Herbert Valerio Riedel authored
      By mistake, the Git-commit-id detection was only enabled for
      `RELEASE=NO` (since the date-based GHC version computation is
      only active in that case). With this commit the commit-id
      detection is active regardless of the `RELEASE`-setting.
      
      This is a follow-up to 73e5e2f8
      5aa57d01
  7. 25 Mar, 2015 1 commit
  8. 24 Mar, 2015 7 commits
  9. 23 Mar, 2015 14 commits
    • Erik de Castro Lopo's avatar
      Do version specific detection of LLVM tools (#10170). · 42448e37
      Erik de Castro Lopo authored
      The LLVM developers seem to make breaking changes in the LLVM IR
      language between major releases. As a consumer of the LLVM tools
      GHC now needs to be locked more tightly to a single version of
      the LLVM tools.
      
      GHC HEAD currently only supports LLVM version 3.6. This commit
      changes the configure script to look for `llc-3.6` and `opt-3.6`
      before looking for `llc` and `opt`. If the former are not found,
      but the later are, check that they actually are version 3.6.
      
      At the same time, when detecting known problems with the LLVM
      tools (ie #9439) test for it using the versions of the LLVM tools
      retrieved from the bootstrap compiler's settings file.
      
      Test Plan: Manual testing.
      
      Reviewers: thomie, rwbarton, nomeata, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D745
      
      GHC Trac Issues: #10170
      42448e37
    • Joachim Breitner's avatar
      isEmptyTy: Improve comment · aef4de47
      Joachim Breitner authored
      [skip ci]
      aef4de47
    • Joachim Breitner's avatar
      Add Note [No alternatives lint check] · 8f080696
      Joachim Breitner authored
      in a follow up to #10180.
      8f080696
    • Joachim Breitner's avatar
      New lint check: Check idArity invariants (#10181) · 567db32b
      Joachim Breitner authored
      The arity of an id should not be larger than what the type allows, and
      it should also not contradict the strictness signature. This adds a lint
      check for that.
      
      This broke test T8743, uncovering a bug in the SOURCE import machinery,
      which is now filed as #10182.
      567db32b
    • Joachim Breitner's avatar
      New Lint check: no alternatives implies bottoming expression · a0678f1f
      Joachim Breitner authored
      detected either by exprIsBottom or by an empty type.
      
      This was suggested by SPJ and fixes #10180.
      a0678f1f
    • Joachim Breitner's avatar
      exprIsBottom should look through type lambdas · 5673bfc4
      Joachim Breitner authored
      as evaluting (\ (@ a) -> e) diverges if and only if evaluating e
      diverges. This was found in the context of #10180.
      5673bfc4
    • eir@cis.upenn.edu's avatar
      Do proper depth checking in the flattener to avoid looping. · c1edbdfd
      eir@cis.upenn.edu authored
      This implements (roughly) the plan put forward in comment:14:ticket:7788,
      fixing #7788, #8550, #9554, #10139, and addressing concerns raised in #10079.
      There are some regressions w.r.t. GHC 7.8, but only with pathological type
      families (like F a = F a). This also (hopefully -- don't have a test case)
      fixes #10158. Unsolved problems include #10184 and #10185, which are both
      known deficiencies of the approach used here.
      
      As part of this change, the plumbing around detecting infinite loops has
      changed. Instead of -fcontext-stack and -ftype-function-depth, we now have
      one combined -freduction-depth parameter. Setting it to 0 disbales the
      check, which is now the recommended way to get (terminating) code to
      typecheck in releases. (The number of reduction steps may well change between
      minor GHC releases!)
      
      This commit also introduces a new IntWithInf type in BasicTypes
      that represents an integer+infinity. This type is used in a few
      places throughout the code.
      
      Tests in
        indexed-types/should_fail/T7788
        indexed-types/should_fail/T8550
        indexed-types/should_fail/T9554
        indexed-types/should_compile/T10079
        indexed-types/should_compile/T10139
        typecheck/should_compile/T10184  (expected broken)
        typecheck/should_compile/T10185  (expected broken)
      
      This commit also changes performance testsuite numbers, for the better.
      c1edbdfd
    • thomie's avatar
      Make testsuite driver Python 2.6 compatible again · 0f03a843
      thomie authored
      Another bug in the #10164 series. Only Python 2.7 and up allow you to
      omit the positional argument specifiers in format strings.
      
      Test Plan: this fixes the Solaris builders
      
      Reviewed By: kgardas
      
      Differential Revision: https://phabricator.haskell.org/D750
      
      GHC Trac Issues: #10164
      0f03a843
    • Herbert Valerio Riedel's avatar
      Update base changelog regarding 4.8.1 changes · 1a728869
      Herbert Valerio Riedel authored
      Turns out we've been a bit too lazy and quite a few undocumented changes have
      accumulated in `base` relative to GHC 7.10's `base-4.8.0.0`...
      
      [skip ci]
      1a728869
    • Herbert Valerio Riedel's avatar
      Minor bump `base` version to 4.8.1.0 · 7035ff87
      Herbert Valerio Riedel authored
      We've accumulated enough to justify a minor version bump to 4.8.1.0,
      but not enough to justify a major version bump yet as far as I can see.
      7035ff87
    • thomie's avatar
      Fix quasiquotation test (#4150) · f72074ec
      thomie authored
      f72074ec
    • Joachim Breitner's avatar
      Minor fix to Note [Trimming arity] · 992040e9
      Joachim Breitner authored
      [ci skip]
      992040e9
    • Herbert Valerio Riedel's avatar
      Fix integer-gmp source tarball distribution · cab5b3ac
      Herbert Valerio Riedel authored
      The `configure` script checks for presence of `install-sh` even if
      it's not used, so we simply add it to the distribution to make `configure`
      happy.
      cab5b3ac
    • Herbert Valerio Riedel's avatar
      Update integer-gmp2's changelog for release · 5ef5a18d
      Herbert Valerio Riedel authored
      [skip ci]
      
      (cherry picked from commit 7bd3efe3)
      5ef5a18d
  10. 22 Mar, 2015 5 commits