1. 11 Nov, 2019 1 commit
  2. 09 Nov, 2019 1 commit
  3. 31 Oct, 2019 1 commit
  4. 23 Oct, 2019 1 commit
  5. 22 Oct, 2019 1 commit
  6. 07 Aug, 2019 1 commit
  7. 19 Jul, 2019 2 commits
  8. 14 Jul, 2019 1 commit
    • John Ericson's avatar
      Expunge #ifdef and #ifndef from the codebase · d7c6c471
      John Ericson authored
      These are unexploded minds as far as the linter is concerned. I don't
      want to hit in my MRs by mistake!
      I did this with `sed`, and then rolled back some changes in the docs,
      config.guess, and the linter itself.
  9. 16 Jun, 2019 2 commits
  10. 13 Jun, 2019 1 commit
  11. 12 Jun, 2019 2 commits
  12. 10 Jun, 2019 1 commit
    • Ben Gamari's avatar
      base: Mark CPUTime001 as fragile · 1a3420ca
      Ben Gamari authored
      As noted in #16224, CPUTime001 has been quite problematic, reporting
      non-monotonic timestamps in CI. Unfortunately I've been unable to
      reproduce this locally.
  13. 07 Jun, 2019 1 commit
  14. 11 Apr, 2019 1 commit
    • Carter Schonwald's avatar
      removing x87 register support from native code gen · 42504f4a
      Carter Schonwald authored
      * simplifies registers to have GPR, Float and Double, by removing the SSE2 and X87 Constructors
      * makes -msse2 assumed/default for x86 platforms, fixing a long standing nondeterminism in rounding
      behavior in 32bit haskell code
      * removes the 80bit floating point representation from the supported float sizes
      * theres still 1 tiny bit of x87 support needed,
      for handling float and double return values in FFI calls  wrt the C ABI on x86_32,
      but this one piece does not leak into the rest of NCG.
      * Lots of code thats not been touched in a long time got deleted as a
      consequence of all of this
      all in all, this change paves the way towards a lot of future further
      improvements in how GHC handles floating point computations, along with
      making the native code gen more accessible to a larger pool of contributors.
  15. 04 Apr, 2019 1 commit
  16. 21 Mar, 2019 1 commit
  17. 15 Mar, 2019 1 commit
  18. 24 Feb, 2019 1 commit
  19. 31 Jan, 2019 1 commit
  20. 30 Jan, 2019 3 commits
  21. 27 Jan, 2019 1 commit
  22. 16 Jan, 2019 1 commit
  23. 06 Jan, 2019 1 commit
  24. 07 Nov, 2018 1 commit
    • davide's avatar
      testsuite: Save performance metrics in git notes. · 932cd41d
      davide authored
      This patch makes the following improvement:
        - Automatically records test metrics (per test environment) so that
          the programmer need not supply nor update expected values in *.T
          - On expected metric changes, the programmer need only indicate the
            direction of change in the git commit message.
        - Provides a simple python tool "perf_notes.py" to compare metrics
          over time.
        - Using just the previous commit allows performance to drift with each
          - Currently we allow drift as we have a preference for minimizing
            false positives.
          - Some possible alternatives include:
            - Use metrics from a fixed commit per test: the last commit that
              allowed a change in performance (else the oldest metric)
            - Or use some sort of aggregate since the last commit that allowed
              a change in performance (else all available metrics)
            - These alternatives may result in a performance issue (with the
              test driver) having to heavily search git commits/notes.
        - Run locally, performance tests will trivially pass unless the tests
          were run locally on the previous commit. This is often not the case
          e.g.  after pulling recent changes.
      Previously, *.T files contain statements such as:
      stats_num_field('peak_megabytes_allocated', (2, 1))
      compiler_stats_num_field('bytes allocated',
                               [(wordsize(64), 165890392, 10)])
      This required the programmer to give the expected values and a tolerance
      deviation (percentage). With this patch, the above statements are
      replaced with:
      collect_stats('peak_megabytes_allocated', 5)
      collect_compiler_stats('bytes allocated', 10)
      So that programmer must only enter which metrics to test and a tolerance
      deviation. No expected value is required. CircleCI will then run the
      tests per test environment and record the metrics to a git note for that
      commit and push them to the git.haskell.org ghc repo. Metrics will be
      compared to the previous commit. If they are different by the tolerance
      deviation from the *.T file, then the corresponding test will fail. By
      adding to the git commit message e.g.
       # Metric (In|De)crease <metric(s)> <options>: <tests>
      Metric Increase ['bytes allocated', 'peak_megabytes_allocated'] \
               (test_env='linux_x86', way='default'):
          Test012, Test345
      Metric Decrease 'bytes allocated':
      Metric Increase:
      This will allow the noted changes (letting the test pass). Note that by
      omitting metrics or options, the change will apply to all possible
      metrics/options (i.e. in the above, an increase for all metrics in all
      test environments is allowed for Test711)
      phabricator will use the message in the description
      Reviewers: bgamari, hvr
      Reviewed By: bgamari
      Subscribers: rwbarton, carter
      GHC Trac Issues: #12758
      Differential Revision: https://phabricator.haskell.org/D5059
  25. 01 Nov, 2018 1 commit
    • Zhou Fangyi's avatar
      Data.Maybe: add callstack for fromJust (Trac #15559) · 614028e3
      Zhou Fangyi authored
      Per feature request, add `HasCallStack` to `fromJust` in `Data.Maybe`
      and use `error` instead of `errorWithoutStackTrace`. This allows
      `fromJust` to print call stacks when throwing the error.
      Also add a new test case for the behaviour, modify existing test cases
      for new signature
      Test Plan: New test cases
      Reviewers: hvr, bgamari
      Reviewed By: bgamari
      Subscribers: ulysses4ever, rwbarton, carter
      GHC Trac Issues: #15559
      Differential Revision: https://phabricator.haskell.org/D5256
  26. 23 Oct, 2018 1 commit
  27. 15 Oct, 2018 1 commit
    • Vladislav Zavialov's avatar
      Enable -Wcompat=error in the testsuite · 165d3d5d
      Vladislav Zavialov authored
      Enabling -Werror=compat in the testsuite allows us to easily see the
      impact that a new warning has on code. It also means that in the period
      between adding the warning and making the actual breaking change, all
      new test cases that are being added to the testsuite will be
      forwards-compatible. This is good because it will make the actual
      breaking change contain less irrelevant testsuite updates.
      Things that -Wcompat warns about are things that are going to break in
      the future, so we can be proactive and keep our testsuite
      This patch consists of two main changes:
      * Add `TEST_HC_OPTS += -Werror=compat` to the testsuite configuration.
      * Fix all broken test cases.
      Test Plan: Validate
      Reviewers: hvr, goldfire, bgamari, simonpj, RyanGlScott
      Reviewed By: goldfire, RyanGlScott
      Subscribers: rwbarton, carter
      GHC Trac Issues: #15278
      Differential Revision: https://phabricator.haskell.org/D5200
  28. 07 Oct, 2018 1 commit
  29. 24 Aug, 2018 1 commit
  30. 09 Aug, 2018 1 commit
  31. 21 Jul, 2018 1 commit
    • David Feuer's avatar
      Harden fixST · 5a49651f
      David Feuer authored
      Trac #15349 reveals that lazy blackholing can cause trouble for
      `fixST` much like it can for `fixIO`. Make `fixST` work just
      like `fixIO`.
      Reviewers: simonmar, hvr, bgamari
      Reviewed By: simonmar
      Subscribers: rwbarton, thomie, carter
      GHC Trac Issues: #15349
      Differential Revision: https://phabricator.haskell.org/D4948
  32. 16 Jun, 2018 1 commit
  33. 14 Jun, 2018 2 commits
    • Vladislav Zavialov's avatar
      Embrace -XTypeInType, add -XStarIsType · d650729f
      Vladislav Zavialov authored
      Implement the "Embrace Type :: Type" GHC proposal,
      GHC 8.0 included a major change to GHC's type system: the Type :: Type
      axiom. Though casual users were protected from this by hiding its
      features behind the -XTypeInType extension, all programs written in GHC
      8+ have the axiom behind the scenes. In order to preserve backward
      compatibility, various legacy features were left unchanged. For example,
      with -XDataKinds but not -XTypeInType, GADTs could not be used in types.
      Now these restrictions are lifted and -XTypeInType becomes a redundant
      flag that will be eventually deprecated.
      * Incorporate the features currently in -XTypeInType into the
        -XPolyKinds and -XDataKinds extensions.
      * Introduce a new extension -XStarIsType to control how to parse * in
        code and whether to print it in error messages.
      Test Plan: Validate
      Reviewers: goldfire, hvr, bgamari, alanz, simonpj
      Reviewed By: goldfire, simonpj
      Subscribers: rwbarton, thomie, mpickering, carter
      GHC Trac Issues: #15195
      Differential Revision: https://phabricator.haskell.org/D4748
    • Peter Trommler's avatar
      Mark test broken on powerpc64[le] · 5f5d0c9d
      Peter Trommler authored
      Test num009 fails different results. #15062 lists more issues on other
      platforms. Test T14894 fails because DWARF support is not implemented in
      the PowerPC native code backend. T5435_v_asm_b fails because the runtime
      linker is not implemented for PowerPC 64-bit systems.
      Test Plan: validate
      Reviewers: bgamari, hvr, erikd, simonmar
      Reviewed By: bgamari
      Subscribers: rwbarton, thomie, carter
      GHC Trac Issues: #13634, #11261, #11259, #15062
      Differential Revision: https://phabricator.haskell.org/D4825
  34. 31 May, 2018 1 commit