Fix and enable object unloading in GHCi

Fixes #16525

See Note [Object unloading] in CheckUnload.c for details.

NoFib results:

--------------------------------------------------------------------------------
        Program           Size    Allocs    Instrs     Reads    Writes
--------------------------------------------------------------------------------
             CS          -0.2%      0.0%     +0.0%     +0.0%     +0.0%
            CSD          -0.2%      0.0%     +0.0%     +0.0%     +0.0%
             FS          -0.2%      0.0%     +0.0%     +0.0%     -0.0%
              S          -0.2%      0.0%     +1.0%     +1.1%     +0.0%
             VS          -0.2%      0.0%     +0.0%     +0.0%     -0.0%
            VSD          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
            VSM          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           anna          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
           ansi          -0.1%      0.0%     +0.0%     +0.0%      0.0%
           atom          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         awards          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         banner          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
     bernouilli          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
   binary-trees          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
          boyer          -0.1%      0.0%     +0.1%     +0.1%      0.0%
         boyer2          -0.1%      0.0%     +0.0%     +0.1%      0.0%
           bspt          -0.1%      0.0%     +0.0%     +0.0%      0.0%
      cacheprof          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
       calendar          -0.1%      0.0%     +0.0%     +0.0%      0.0%
       cichelli          -0.1%      0.0%     +0.1%     +0.2%     +0.0%
        circsim          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
       clausify          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
  comp_lab_zift          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
       compress          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
      compress2          -0.1%      0.0%     +0.0%     +0.0%      0.0%
    constraints          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
   cryptarithm1          -0.1%      0.0%     +0.0%     +0.0%      0.0%
   cryptarithm2          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
            cse          -0.1%      0.0%     +0.0%     +0.0%      0.0%
   digits-of-e1          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
   digits-of-e2          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
         dom-lt          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
          eliza          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
          event          -0.1%      0.0%     +0.0%     +0.1%      0.0%
    exact-reals          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
         exp3_8          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         expert          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
 fannkuch-redux          -0.1%      0.0%     +0.0%     +0.0%      0.0%
          fasta          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
            fem          -0.1%      0.0%     +0.0%     +0.0%      0.0%
            fft          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           fft2          -0.1%      0.0%     +0.0%     +0.0%      0.0%
       fibheaps          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           fish          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
          fluid          -0.1%      0.0%     +0.1%     +0.1%     -0.0%
         fulsom          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         gamteb          -0.1%      0.0%     +0.0%     +0.0%      0.0%
            gcd          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
    gen_regexps          -0.2%      0.0%     +0.0%     +0.0%     -0.0%
         genfft          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
             gg          -0.1%      0.0%     +0.1%     +0.1%      0.0%
           grep          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         hidden          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
            hpg          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
            ida          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
          infer          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
        integer          -0.1%      0.0%     +0.0%     +0.0%      0.0%
      integrate          -0.1%      0.0%     +0.0%     +0.0%      0.0%
   k-nucleotide          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
          kahan          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
        knights          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         lambda          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
     last-piece          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           lcss          -0.1%      0.0%     +0.0%     +0.0%      0.0%
           life          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           lift          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
         linear          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
      listcompr          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
       listcopy          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
       maillist          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
         mandel          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
        mandel2          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           mate          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
        minimax          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
        mkhprog          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
     multiplier          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
         n-body          -0.1%      0.0%     +0.0%     +0.0%      0.0%
       nucleic2          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           para          -0.1%      0.0%     +0.0%     +0.0%      0.0%
      paraffins          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         parser          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
        parstof          -0.1%      0.0%     +0.2%     +0.2%     -0.0%
            pic          -0.1%      0.0%     +0.1%     +0.1%     +0.0%
       pidigits          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
          power          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
         pretty          -0.1%      0.0%     +0.5%     +0.6%     -0.0%
         primes          -0.1%      0.0%     +0.0%     +0.0%      0.0%
      primetest          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
         prolog          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
         puzzle          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
         queens          -0.1%      0.0%     +0.0%     +0.0%      0.0%
        reptile          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
reverse-complem          -0.2%      0.0%     +0.0%     +0.0%      0.0%
        rewrite          -0.1%      0.0%     +0.0%     +0.0%      0.0%
           rfib          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
            rsa          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
            scc          -0.2%      0.0%     +0.5%     +0.7%     +0.0%
          sched          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
            scs          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
         simple          -0.1%      0.0%     +0.3%     +0.4%      0.0%
          solid          -0.1%      0.0%     +0.0%     +0.0%      0.0%
        sorting          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
  spectral-norm          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
         sphere          -0.1%      0.0%     +0.0%     +0.0%      0.0%
         symalg          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
            tak          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
      transform          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
       treejoin          -0.1%      0.0%     +0.1%     +0.1%      0.0%
      typecheck          -0.1%      0.0%     +0.0%     +0.0%      0.0%
        veritas          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
           wang          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
      wave4main          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
   wheel-sieve1          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
   wheel-sieve2          -0.1%      0.0%     +0.0%     +0.0%     -0.0%
           x2n1          -0.1%      0.0%     +0.0%     +0.0%     +0.0%
--------------------------------------------------------------------------------
            Min          -0.2%      0.0%     +0.0%     +0.0%     -0.0%
            Max          -0.1%      0.0%     +1.0%     +1.1%     +0.0%
 Geometric Mean          -0.1%     -0.0%     +0.0%     +0.0%     -0.0%
23 jobs for !3478 with t16525_3 in 170 minutes and 21 seconds (queued for 1 second)
latest detached
Status Job ID Name Coverage
  Lint
passed #377024
lint
ghc-linters

00:01:12

passed #377025
lint
lint-linters

00:01:11

passed #377028
lint
lint-submods

00:00:24

passed #377026
lint
lint-testsuite

00:00:17

passed #377027
lint
typecheck-testsuite

00:00:16

 
  Quick Build
passed #377029
x86_64-linux
hadrian-ghc-in-ghci

00:24:26

 
  Build
failed #377030
x86_64-linux
validate-x86_64-linux-deb9-hadrian

02:23:31

 
  Full Build
skipped #377033
aarch64-linux allowed to fail
validate-aarch64-linux-deb9
skipped #377034
armv7-linux allowed to fail
validate-armv7-linux-deb9
skipped #377035
x86_64-linux
validate-i386-linux-deb9
skipped #377042
new-x86_64-windows test allowed to fail
validate-i386-windows
skipped #377032
x86_64-darwin
validate-x86_64-darwin
skipped #377036
x86_64-linux
validate-x86_64-linux-deb9-debug
skipped #377038
x86_64-linux
validate-x86_64-linux-deb9-dwarf
skipped #377037
x86_64-linux
validate-x86_64-linux-deb9-integer-simple
skipped #377031
x86_64-linux
validate-x86_64-linux-deb9-unreg-hadrian
skipped #377039
x86_64-linux
validate-x86_64-linux-fedora27
skipped #377041
new-x86_64-windows test allowed to fail
validate-x86_64-windows
skipped #377040
new-x86_64-windows test allowed to fail
validate-x86_64-windows-hadrian
 
  Cleanup
passed #377043
x86_64-darwin
cleanup-darwin

00:00:27

 
  Packaging
skipped #377044
x86_64-linux allowed to fail
doc-tarball
 
  Testing
skipped #377045
x86_64-linux allowed to fail manual
hackage
skipped #377046
x86_64-linux
perf-nofib
 
Name Stage Failure
failed
validate-x86_64-linux-deb9-hadrian Build
Running after script...
$ .gitlab/ci.sh clean
Running make --quiet clean...
Running rm -Rf _build...
Uploading artifacts for failed job
Uploading artifacts...
junit.xml: found 1 matching files and directories

Uploading artifacts as "junit" to coordinator... ok
id=377030 responseStatus=201 Created token=rsdrLcP1
ERROR: Job failed: exit code 1