Zubin pushed to branch wip/9.10.3-backports at Glasgow Haskell Compiler / GHC

Commits:

5 changed files:

Changes:

  • .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
    ... ... @@ -129,8 +129,11 @@ def fetch_artifacts(release: str, pipeline_id: int,
    129 129
                     for f in doc_files:
    
    130 130
                         subprocess.run(['tar', '-xf', f, '-C', dest])
    
    131 131
                         logging.info(f'extracted docs {f} to {dest}')
    
    132
    -                index_path = destdir / 'index.html'
    
    132
    +                index_path = destdir / 'docs' / 'index.html'
    
    133 133
                     index_path.replace(dest / 'index.html')
    
    134
    +                pdfs = list(destdir.glob('*.pdf'))
    
    135
    +                for f in pdfs:
    
    136
    +                  f.replace(dest / f.name)
    
    134 137
                 elif job.name == 'hackage-doc-tarball':
    
    135 138
                     dest = dest_dir / 'hackage_docs'
    
    136 139
                     logging.info(f'moved hackage_docs to {dest}')
    

  • docs/users_guide/using-optimisation.rst
    ... ... @@ -517,16 +517,24 @@ as such you shouldn't need to set any of them explicitly. A flag
    517 517
         Eta-expand let-bindings to increase their arity.
    
    518 518
     
    
    519 519
     .. ghc-flag:: -fdo-clever-arg-eta-expansion
    
    520
    -    :shortdesc: Enable sophisticated argument eta-expansion. Implied by :ghc-flag:`-O2`.
    
    520
    +    :shortdesc: Enable sophisticated argument eta-expansion. Implied by :ghc-flag:`-O`.
    
    521 521
         :type: dynamic
    
    522 522
         :reverse: -fno-do-clever-arg-eta-expansion
    
    523 523
         :category:
    
    524 524
     
    
    525 525
         :default: off
    
    526
    +    :since: 9.10.1
    
    526 527
     
    
    527 528
         Eta-expand arguments to increase their arity to avoid allocating unnecessary
    
    528 529
         thunks for them.
    
    529 530
     
    
    531
    +    For example in code like `foo = f (g x)` this flag will determine which analysis
    
    532
    +    is used to decide the arity of `g x`, with the goal of avoiding a thunk for `g x`
    
    533
    +    in cases where `g` is a function with an arity higher than one.
    
    534
    +
    
    535
    +    Enabling the flag enables a more sophisticated analysis, resulting in better
    
    536
    +    runtime but longer compile time.
    
    537
    +
    
    530 538
     .. ghc-flag:: -feager-blackholing
    
    531 539
         :shortdesc: Turn on :ref:`eager blackholing <parallel-compile-options>`
    
    532 540
         :type: dynamic
    

  • m4/find_ld.m4
    ... ... @@ -21,14 +21,7 @@ AC_DEFUN([FIND_LD],[
    21 21
                 return
    
    22 22
             fi
    
    23 23
     
    
    24
    -        case $CPU in
    
    25
    -        i386)
    
    26
    -            # We refuse to use ld.gold on i386 due to #23579, which we don't
    
    27
    -            # have a good autoconf check for.
    
    28
    -            linkers="ld.lld ld" ;;
    
    29
    -        *)
    
    30
    -            linkers="ld.lld ld.gold ld" ;;
    
    31
    -        esac
    
    24
    +        linkers="ld.lld ld"
    
    32 25
     
    
    33 26
             # Manually iterate over possible names since we want to ensure that, e.g.,
    
    34 27
             # if ld.lld is installed but gcc doesn't support -fuse-ld=lld, that we
    

  • testsuite/tests/driver/recomp015/all.T
    ... ... @@ -5,7 +5,11 @@ test('recomp015',
    5 5
            # See ticket:11022#comment:7
    
    6 6
            unless(opsys('linux') or opsys('solaris2') or opsys('openbsd'), skip),
    
    7 7
            when(arch('arm'), skip),
    
    8
    -       js_skip # JS backend doesn't support .s assembly files
    
    8
    +       js_skip, # JS backend doesn't support .s assembly files
    
    9
    +
    
    10
    +       # the linker sometimes throws warnings since we don't
    
    11
    +       # generate a .note.GNU-stack section
    
    12
    +       ignore_stderr,
    
    9 13
          ],
    
    10 14
          makefile_test, [])
    
    11 15
     

  • utils/ghc-toolchain/src/GHC/Toolchain/Tools/Link.hs
    ... ... @@ -91,7 +91,7 @@ findLinkFlags enableOverride cc ccLink
    91 91
               -- executable exists before trying cc.
    
    92 92
               do _ <- findProgram (linker ++ " linker") emptyProgOpt ["ld."++linker]
    
    93 93
                  prog <$ checkLinkWorks cc prog
    
    94
    -        | linker <- ["lld", "gold"]
    
    94
    +        | linker <- ["lld", "bfd"]
    
    95 95
             , let prog = over _prgFlags (++["-fuse-ld="++linker]) ccLink
    
    96 96
             ]
    
    97 97
             <|> (ccLink <$ checkLinkWorks cc ccLink)