Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
6166 commits behind the upstream repository.
Alan Zimmerman's avatar
Alan Zimmerman authored
The AnnSortKey is used to keep track of the order of declarations for
printing when the container has split them apart.

This applies to HsValBinds and ClassDecl, ClsInstDecl.

When making modifications to the list of declarations, the new order
must be captured for when it must be printed. For each list of
declarations (binds and sigs for a HsValBind) we can just store the
list in order.

To recreate the list when printing, we must merge them, and this is
what the AnnSortKey records. It used to be indexed by SrcSpan, we now
simply index by a marker as to which list to take the next item from.
ab40aa52
History

GHC Testsuite Readme

For the full testsuite documentation, please see here.

Quick Guide

Commands to run testsuite:

  • Full testsuite: hadrian/build test
  • Using more threads: hadrian/build test -j12
  • Reduced (fast) testsuite: hadrian/build test --test-speed=fast
  • Run a specific test: hadrian/build test --only="tc055 tc054"
  • Test a specific 'way': hadrian/build test --test-way=optllvm
  • Skip performance tests: hadrian/build test --skip-perf
  • Set verbosity: hadrian/build test --test-verbose=<n> where n=0: No per-test output, n=1: Only failures, n=2: Progress output, n=3: Include commands called (default), n=4: Include perf test results unconditionally, n=5: Echo commands in subsidiary make invocations

Testsuite Ways

The testsuite can be run in a variety of 'ways'. This concept refers to different ways that GHC can compile the code. For example, using the native code generator (-fasm) is one way, while using the LLVM code generator (-fllvm) is another way.

The various ways that GHC supports are defined in config/ghc

Adding Tests

Please see the more extensive documentation here.