Skip to content
Snippets Groups Projects
  1. Aug 30, 2023
  2. Aug 22, 2023
    • Krzysztof Gogolewski's avatar
      Testsuite cleanup · 52a6d868
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      - Remove misleading help text in perf_notes, ways are not metrics
      - Remove no_print_summary - this was used for Phabricator
      - In linters tests, run 'git ls-files' just once.
        Previously, it was called on each has_ls_files()
      - Add ghc-prim.cabal to gitignore, noticed in #23726
      - Remove ghc-prim.cabal, it was accidentally committed in 524c60c8
      52a6d868
  3. Aug 04, 2023
  4. Jul 14, 2023
  5. Jul 08, 2023
    • Oleg Grenrus's avatar
      Add warn_and_run test kind · a9bc20cb
      Oleg Grenrus authored and Marge Bot's avatar Marge Bot committed
      This is a compile_and_run variant which also captures the GHC's
      stderr. The warn_and_run name is best I can come up with,
      as compile_and_run is taken.
      
      This is useful specifically for testing warnings.  We want to test that
      when warning triggers, and it's not a false positive, i.e. that the
      runtime behaviour is indeed "incorrect".
      
      As an example a single test is altered to use warn_and_run
      a9bc20cb
  6. Jul 07, 2023
    • Ben Gamari's avatar
      testsuite: Allow preservation of unexpected output · 9955eead
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Here we introduce a new flag to the testsuite driver,
      --unexpected-output-dir=<dir>, which allows the user to ask
      the driver to preserve unexpected output from tests. The intent is for
      this to be used in CI to allow users to more easily fix unexpected
      platform-dependent output.
      9955eead
  7. Jul 05, 2023
  8. Jun 21, 2023
  9. Jun 14, 2023
  10. Jun 13, 2023
  11. Jun 02, 2023
  12. Jun 01, 2023
    • Krzysztof Gogolewski's avatar
      Fix testsuite skipping Lint · 2c38551e
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      setTestOpts() is used to modify the test options for an entire .T file,
      rather than a single test.
      If there was a test using collect_compiler_stats, all of the tests
      in the same file had lint disabled.
      
      Fixes #21247
      2c38551e
  13. May 30, 2023
    • Matthew Pickering's avatar
      testsuite: Pass -kb16k -kc128k for performance tests · b4816919
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      Setting a larger stack chunk size gives a greater protection
      from stack thrashing (where the repeated overflow/underflow allocates a lot of
      stack chunks which sigificantly impact allocations). This
      stabilises some tests against differences cause by more things being
      pushed onto the stack.
      
      The performance tests are generally testing work done by the compiler,
      using allocation as a proxy, so removing/stabilising the allocations due
      to the stack gives us more stable tests which are also more sensitive
      to actual changes in compiler performance.
      
      The tests which increase are ones where we compile a lot of modules, and
      for each module we spawn a thread to compile the module in. Therefore
      increasing these numbers has a multiplying effect on these tests because
      there are many more stacks which we can increase in size.
      
      The most significant improvements though are cases such as T8095 which
      reduce significantly in allocations (30%). This isn't a performance
      improvement really but just helps stabilise the test against this
      threshold set by the defaults.
      
      Fixes #23439
      
      -------------------------
      Metric Decrease:
          InstanceMatching
          T14683
          T8095
          T9872b_defer
          T9872d
          T9961
          hie002
          T19695
          T3064
      Metric Increase:
          MultiLayerModules
          T13701
          T14697
      -------------------------
      b4816919
  14. May 25, 2023
  15. May 12, 2023
  16. May 11, 2023
    • sheaf's avatar
      Add fused multiply-add instructions · 87eebf98
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This patch adds eight new primops that fuse a multiplication and an
      addition or subtraction:
      
        - `{fmadd,fmsub,fnmadd,fnmsub}{Float,Double}#`
      
      fmadd x y z is x * y + z, computed with a single rounding step.
      
      This patch implements code generation for these primops in the following
      backends:
      
        - X86, AArch64 and PowerPC NCG,
        - LLVM
        - C
      
      WASM uses the C implementation. The primops are unsupported in the
      JavaScript backend.
      
      The following constant folding rules are also provided:
      
        - compute a * b + c when a, b, c are all literals,
        - x * y + 0 ==> x * y,
        - ±1 * y + z ==> z ± y and x * ±1 + z ==> z ± x.
      
      NB: the constant folding rules incorrectly handle signed zero.
      This is a known limitation with GHC's floating-point constant folding
      rules (#21227), which we hope to resolve in the future.
      87eebf98
  17. May 04, 2023
    • Rodrigo Mesquita's avatar
      Add hashes to unit-ids created by hadrian · db4be339
      Rodrigo Mesquita authored and Marge Bot's avatar Marge Bot committed
      This commit adds support for computing an inputs hash for packages
      compiled by hadrian. The result is that ABI incompatible packages should
      be given different hashes and therefore be distinct in a cabal store.
      
      Hashing is enabled by the `--flag`, and is off by default as the hash
      contains a hash of the source files. We enable it when we produce
      release builds so that the artifacts we distribute have the right unit
      ids.
      db4be339
  18. Apr 27, 2023
  19. Apr 11, 2023
  20. Mar 30, 2023
  21. Feb 28, 2023
  22. Feb 10, 2023
  23. Feb 08, 2023
  24. Feb 06, 2023
    • Sylvain Henry's avatar
      JS: replace "js" architecture with "javascript" · 6636b670
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      
      Despite Cabal supporting any architecture name, `cabal --check` only
      supports a few built-in ones. Sadly `cabal --check` is used by Hackage
      hence using any non built-in name in a package (e.g. `arch(js)`) is
      rejected and the package is prevented from being uploaded on Hackage.
      
      Luckily built-in support for the `javascript` architecture was added for
      GHCJS a while ago. In order to allow newer `base` to be uploaded on
      Hackage we make the switch from `js` to `javascript` architecture.
      
      Fixes #22740.
      
      Co-authored-by: default avatarBen Gamari <ben@smart-cactus.org>
      6636b670
Loading