[Git][ghc/ghc][wip/az/ghc-cpp] 85 commits: Propagate long distance info to guarded let binds

Alan Zimmerman (@alanz) gitlab at gitlab.haskell.org
Sun Mar 2 18:22:49 UTC 2025


Alan Zimmerman pushed to branch wip/az/ghc-cpp at Glasgow Haskell Compiler / GHC


Commits:
0f2241e9 by sheaf at 2025-02-25T19:23:21-05:00
Propagate long distance info to guarded let binds

This commit ensures that we propagate the enclosing long distance
information to let bindings inside guards, in order to get accurate
pattern-match checking warnings, in particular incomplete record
selector warnings.

Example:

  data D = K0 | K1 { fld :: Int }
  f :: D -> Int
  f d@(K1 {})
    | let i = fld d
    = i
  f _ = 3

We now correctly recognise that the field selector 'fld' cannot fail,
due to the outer pattern match which guarantees that the value 'd' has
the field 'fld'.

Fixes #25749

- - - - -
64b0d4d0 by Fangyi Zhou at 2025-02-25T19:24:07-05:00
wasm: use primitive opcodes for fabs and sqrt

- Add new `WasmInstr` constructor `WasmSqrt` for sqrt, corresponding to
  primitivie operations in wasm.
- When lowering CallishMachOp, use `WasmAbs` and `WasmSqrt` for F32 and
  F64 fabs and sqrt.

- - - - -
272eaef0 by Cheng Shao at 2025-02-25T19:24:43-05:00
hadrian: enable building stage1 haddock for cross ghc

This commit enables building stage1 haddock for cross ghc. Without
this change, hadrian would panic with "Unknown program" error when
building the _build/stage1/bin/cross-prefix-haddock program needed by
the docs-haddock target, even if it only needs to copy from
_build/stage0/bin/cross-prefix-haddock.

- - - - -
a794e733 by Cheng Shao at 2025-02-25T19:24:43-05:00
hadrian: enable building docs for cross targets

Hadrian used to omit the docs target as a part of binary-dist-dir for
cross targets. This commit enables docs to be built as a part of cross
bindists and it works just fine in CI.

- - - - -
6dba56e1 by Cheng Shao at 2025-02-25T19:24:43-05:00
ci: build haddock/sphinx-html for wasm jobs

This commit enables building haddock & sphinx-html documentation for
wasm targets. The docs are useful for end users and should be tested
in CI.

I've omitted pdf & manpage generation for the wasm target; I've never
found the pdf version of docs to be useful, and the manpage only
contains `ghc.1` where we really want `wasm32-wasi-ghc.1` but that
should be a separate issue to fix.

- - - - -
2d6a63ab by Cheng Shao at 2025-02-25T19:25:20-05:00
ghci: remove unused showBreakArray function

GHCi.BreakArray.showBreakArray is not used anywhere, hence the
housecleaning.

- - - - -
b228fcb5 by Cheng Shao at 2025-02-25T19:25:57-05:00
ghc-heap: fix HalfWord incompatible Binary instances for cross GHC

ghc-heap defines HalfWord as Word32/Word16 depending on host word
size. For cross GHC with different host/target word sizes, the Binary
instances are incompatible and breaks iserv serialization of any
message type that involves HalfWord, breaking the ghci debugger. This
patch fixes the issue and has been tested to fix ghci debugger
functionality of the wasm backend. Fixes #25420 #25781.

- - - - -
ec02f8c2 by Rodrigo Mesquita at 2025-02-26T11:03:38-05:00
ghci-debugger: display thunks provenance if avail

Improves reporting on ghci breakpoints when IPE information is available
by printing, next to the thunk, the source file and src span where the
thunk originated.

Closes #25746

- - - - -
6acaff2b by Vladislav Zavialov at 2025-02-26T11:04:15-05:00
Tidy up error messages for TypeAbstractions

1. Print the '@' symbol before invisible patterns and improve phrasing:

      T24557c.hs:8:4: error: [GHC-11983]
     -    Invisible type pattern pat is not allowed here
     +    Illegal invisible type pattern: @pat
     +    An invisible type pattern must occur in an argument position.

2. Use a single error code for all type abstractions deemed illegal
   due to the TypeAbstractions extension being disabled.

   Before this change:
     * [GHC-78249] was used in function equations, lambdas
     * [GHC-17916] was used in constructor patterns

   After this change:
     * [GHC-78249] is used to report all illegal type abstractions
     * [GHC-17916] is no longer used

   There was no reason for both error codes to exist and this distinction
   was a source of complexity in GHC/Tc/Errors/* and GHC/Rename/Pat.hs

3. Group the different "invisible type pattern" error constructors
   under a single parent constructor, TcRnIllegalInvisibleTypePattern
   containing BadInvisPatReason

- - - - -
1ce9502e by Ben Gamari at 2025-02-27T04:48:29-05:00
haddock/doc: Drop version and release

We currently have no way of keeping this up-to-date with the project version
- - - - -
7f358f25 by Matthew Pickering at 2025-02-27T04:49:06-05:00
testsuite: Add test for :steplocal performance

This adds a simple test which exercises #25779

- - - - -
a6a3ffa6 by Sven Tennie at 2025-02-27T23:34:47-05:00
Do not deallocate stack for jump/switch table jumps

Though the name is misleading, we consider them to be branching. For
branch instructions we do not deallocate (parts of) the stack, but keep
the stack pointer (sp) intact.

- - - - -
39e51ddb by Sven Tennie at 2025-02-27T23:34:47-05:00
Add reproducer for dealloc instructions in switch table jump expressions (#25733)

Measures taken to make the test stable:

- Use 'a' as variable prefix, because X86 32bit stumbled over the
variable name 'i386'
- Flush stdout to make test output deterministic
- Use type annotations to support 32bit archs

- - - - -
d427df93 by Sylvain Henry at 2025-02-27T23:35:30-05:00
Remove redundant location strings in expectJust and friends (#25743)

Now we can use HasDebugCallStack instead to avoid cluttering the code
with strings and to avoid maintaining those strings (e.g. renaming them
when functions are renamed...).

- - - - -
90f1190e by Ben Gamari at 2025-02-28T20:53:53-05:00
compiler: Add export list to GHC.SysTools.Tasks

- - - - -
ec826009 by Ben Gamari at 2025-02-28T20:53:53-05:00
compiler: Pass --target to llvm-as

As noted in #25793, this is necessary due to potential ambiguity on
Apple machines with Rosetta.

- - - - -
9c1647d1 by Andreas Klebinger at 2025-02-28T20:54:30-05:00
cmmMachOpFoldM: Add missing pattern matches for bitcasts.

Fixes #25771

- - - - -
aab5525e by Alan Zimmerman at 2025-03-01T15:43:45+00:00
GHC-CPP: first rough proof of concept

Processes

     #define FOO
     #ifdef FOO
     x = 1
     #endif

Into

    [ITcppIgnored [L loc ITcppDefine]
    ,ITcppIgnored [L loc ITcppIfdef]
    ,ITvarid "x"
    ,ITequal
    ,ITinteger (IL {il_text = SourceText "1", il_neg = False, il_value = 1})
    ,ITcppIgnored [L loc ITcppEndif]
    ,ITeof]

In time, ITcppIgnored will be pushed into a comment

- - - - -
beaa7a20 by Alan Zimmerman at 2025-03-01T15:43:45+00:00
Tidy up before re-visiting the continuation mechanic

- - - - -
09e539e8 by Alan Zimmerman at 2025-03-01T15:43:45+00:00
Switch preprocessor to continuation passing style

Proof of concept, needs tidying up

- - - - -
d48d892e by Alan Zimmerman at 2025-03-01T15:43:45+00:00
Small cleanup

- - - - -
67baf128 by Alan Zimmerman at 2025-03-01T15:43:45+00:00
Get rid of some cruft

- - - - -
1ef80c97 by Alan Zimmerman at 2025-03-01T15:43:45+00:00
Starting to integrate.

Need to get the pragma recognised and set

- - - - -
ec7eded6 by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Make cppTokens extend to end of line, and process CPP comments

- - - - -
a13fba9b by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Remove unused ITcppDefined

- - - - -
d6f245a4 by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Allow spaces between # and keyword for preprocessor directive

- - - - -
c7127138 by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Process CPP continuation lines

They are emited as separate ITcppContinue tokens.
Perhaps the processing should be more like a comment, and keep on
going to the end.
BUT, the last line needs to be slurped as a whole.

- - - - -
7a13d82f by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Accumulate CPP continuations, process when ready

Can be simplified further, we only need one CPP token

- - - - -
6f8f2f9a by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Simplify Lexer interface. Only ITcpp

We transfer directive lines through it, then parse them from scratch
in the preprocessor.

- - - - -
806ffe58 by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Deal with directive on last line, with no trailing \n

- - - - -
4ee273f6 by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Start parsing and processing the directives

- - - - -
52a810ed by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Prepare for processing include files

- - - - -
19063786 by Alan Zimmerman at 2025-03-01T15:43:46+00:00
Move PpState into PreProcess

And initParserState, initPragState too

- - - - -
a2c7e100 by Alan Zimmerman at 2025-03-01T15:45:01+00:00
Process nested include files

Also move PpState out of Lexer.x, so it is easy to evolve it in a ghci
session, loading utils/check-cpp/Main.hs

- - - - -
d0a7936f by Alan Zimmerman at 2025-03-01T15:45:06+00:00
Split into separate files

- - - - -
d83b2429 by Alan Zimmerman at 2025-03-01T15:45:06+00:00
Starting on expression parser.

But it hangs. Time for Text.Parsec.Expr

- - - - -
221db369 by Alan Zimmerman at 2025-03-01T15:45:06+00:00
Start integrating the ghc-cpp work

>From https://github.com/alanz/ghc-cpp

- - - - -
dc3483e4 by Alan Zimmerman at 2025-03-01T15:45:06+00:00
WIP

- - - - -
6acaf021 by Alan Zimmerman at 2025-03-01T15:45:06+00:00
Fixup after rebase

- - - - -
559ce849 by Alan Zimmerman at 2025-03-01T15:45:06+00:00
WIP

- - - - -
327adfc9 by Alan Zimmerman at 2025-03-01T15:45:32+00:00
Fixup after rebase, including all tests pass

- - - - -
f47ad5c4 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Change pragma usage to GHC_CPP from GhcCPP

- - - - -
69223742 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Some comments

- - - - -
cbef8ace by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Reformat

- - - - -
2757e654 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Delete unused file

- - - - -
1a7efd24 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Rename module Parse to ParsePP

- - - - -
1359331f by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Clarify naming in the parser

- - - - -
1b9bfa42 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
WIP. Switching to alex/happy to be able to work in-tree

Since Parsec is not available

- - - - -
d7a16ecf by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Layering is now correct

- GHC lexer, emits CPP tokens
- accumulated in Preprocessor state
- Lexed by CPP lexer, CPP command extracted, tokens concated with
  spaces (to get rid of token pasting via comments)
- if directive lexed and parsed by CPP lexer/parser, and evaluated

- - - - -
21c37085 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
First example working

Loading Example1.hs into ghci, getting the right results

```
{-# LANGUAGE GHC_CPP #-}
module Example1 where

y = 3

x =
  "hello"
  "bye now"

foo = putStrLn x
```

- - - - -
15b6413a by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Rebase, and all tests pass except whitespace for generated parser

- - - - -
ce48e5d8 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
More plumbing. Ready for testing tomorrow.

- - - - -
62694623 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Proress. Renamed module State from Types

And at first blush it seems to handle preprocessor scopes properly.

- - - - -
e3d108cd by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Insert basic GHC version macros into parser

__GLASGOW_HASKELL__
__GLASGOW_HASKELL_FULL_VERSION__
__GLASGOW_HASKELL_PATCHLEVEL1__
__GLASGOW_HASKELL_PATCHLEVEL2__

- - - - -
546e03f3 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Re-sync check-cpp for easy ghci work

- - - - -
dab1a131 by Alan Zimmerman at 2025-03-01T15:45:36+00:00
Get rid of warnings

- - - - -
9387eb41 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Rework macro processing, in check-cpp

Macros kept at the top level, looked up via name, multiple arity
versions per name can be stored

- - - - -
a0563b89 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
WIP. Can crack arguments for #define

Next step it to crack out args in an expansion

- - - - -
e7066548 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
WIP on arg parsing.

- - - - -
cf104a8f by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Progress. Still screwing up nested parens.

- - - - -
df4e10f7 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Seems to work, but has redundant code

- - - - -
7872ef9f by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Remove redundant code

- - - - -
1339246f by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Reformat

- - - - -
14e385c1 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Expand args, single pass

Still need to repeat until fixpoint

- - - - -
f2846c98 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Fixed point expansion

- - - - -
8c891302 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Sync the playground to compiler

- - - - -
5d0a355a by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Working on dumping the GHC_CPP result

But We need to keep the BufSpan in a comment

- - - - -
5651478c by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Keep BufSpan in queued comments in GHC.Parser.Lexer

- - - - -
3ce0f1fc by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Getting close to being able to print the combined tokens

showing what is in and what is out

- - - - -
9170ce50 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
First implementation of dumpGhcCpp.

Example output

First dumps all macros in the state, then the source, showing which
lines are in and which are out

------------------------------

- |#define FOO(A,B) A + B
- |#define FOO(A,B,C) A + B + C
- |#if FOO(1,FOO(3,4)) == 8
- |-- a comment
  |x = 1
- |#else
- |x = 5
- |#endif

- - - - -
ae2db6c2 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Clean up a bit

- - - - -
831eaaf2 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Add -ddump-ghc-cpp option and a test based on it

- - - - -
9823870b by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Restore Lexer.x rules, we need them for continuation lines

- - - - -
e4fa675a by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Lexer.x: trying to sort out the span for continuations

- We need to match on \n at the end of the line
- We cannot simply back up for it

- - - - -
fb9154c6 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Inserts predefined macros. But does not dump properly

Because the cpp tokens have a trailing newline

- - - - -
d31a65b1 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Remove unnecessary LExer rules

We *need* the ones that explicitly match to the end of the line.

- - - - -
d3ad4a57 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Generate correct span for ITcpp

Dump now works, except we do not render trailing `\` for continuation
lines. This is good enough for use in test output.

- - - - -
ee81af9f by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Reduce duplication in lexer

- - - - -
2746ac07 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Tweaks

- - - - -
23771407 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Insert min_version predefined macros into state

The mechanism now works. Still need to flesh out the full set.

- - - - -
9014e2c8 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Trying my alternative pragma syntax.

It works, but dumpGhcCpp is broken, I suspect from the ITcpp token
span update.

- - - - -
5f75e638 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Pragma extraction now works, with both CPP and GHC_CPP

For the following

    {-# LANGUAGE CPP #-}
    #if __GLASGOW_HASKELL__ >= 913
    {-# LANGUAGE GHC_CPP #-}
    #endif

We will enable GHC_CPP only

- - - - -
e6d36b70 by Alan Zimmerman at 2025-03-01T15:45:37+00:00
Remove some tracing

- - - - -
25479c0e by Alan Zimmerman at 2025-03-02T18:21:53+00:00
Fix test exes for changes

- - - - -
6416d190 by Alan Zimmerman at 2025-03-02T18:22:11+00:00
For GHC_CPP tests, normalise config-time-based macros

- - - - -


209 changed files:

- .gitlab/generate-ci/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC.hs
- compiler/GHC/Cmm/LayoutStack.hs
- compiler/GHC/Cmm/Lexer.x
- compiler/GHC/Cmm/Liveness.hs
- compiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Opt.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Parser/Monad.hs
- compiler/GHC/Cmm/ProcPoint.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/BlockLayout.hs
- compiler/GHC/CmmToAsm/CFG.hs
- compiler/GHC/CmmToAsm/PPC/Instr.hs
- compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs
- compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs
- compiler/GHC/CmmToAsm/Wasm/Asm.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/Wasm/Types.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Coercion/Opt.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Make.hs
- compiler/GHC/Core/Opt/CprAnal.hs
- compiler/GHC/Core/Opt/FloatIn.hs
- compiler/GHC/Core/Opt/OccurAnal.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Opt/StaticArgs.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Core/SimpleOpt.hs
- compiler/GHC/Core/TyCo/Subst.hs
- compiler/GHC/Core/TyCon/Env.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Data/FastString/Env.hs
- compiler/GHC/Data/Graph/Directed.hs
- compiler/GHC/Data/Graph/Directed/Reachability.hs
- compiler/GHC/Data/Maybe.hs
- compiler/GHC/Driver/Backpack.hs
- compiler/GHC/Driver/Config/Parser.hs
- compiler/GHC/Driver/Env.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Driver/Make.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/GuardedRHSs.hs
- compiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/Match/Constructor.hs
- compiler/GHC/HsToCore/Pmc/Desugar.hs
- compiler/GHC/HsToCore/Pmc/Solver.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/Iface/Decl.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Syntax.hs
- compiler/GHC/Iface/Tidy.hs
- compiler/GHC/IfaceToCore.hs
- compiler/GHC/JS/Make.hs
- compiler/GHC/JS/Ppr.hs
- compiler/GHC/Linker/Deps.hs
- compiler/GHC/Parser.hs-boot
- compiler/GHC/Parser.y
- compiler/GHC/Parser/Annotation.hs
- compiler/GHC/Parser/HaddockLex.x
- compiler/GHC/Parser/Header.hs
- compiler/GHC/Parser/Lexer.x
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Parser/PostProcess/Haddock.hs
- + compiler/GHC/Parser/PreProcess.hs
- + compiler/GHC/Parser/PreProcess/Eval.hs
- + compiler/GHC/Parser/PreProcess/Lexer.x
- + compiler/GHC/Parser/PreProcess/Macro.hs
- + compiler/GHC/Parser/PreProcess/ParsePP.hs
- + compiler/GHC/Parser/PreProcess/Parser.y
- + compiler/GHC/Parser/PreProcess/ParserM.hs
- + compiler/GHC/Parser/PreProcess/State.hs
- compiler/GHC/Parser/Utils.hs
- compiler/GHC/Rename/Bind.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Rename/Names.hs
- compiler/GHC/Rename/Pat.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/Runtime/Debugger.hs
- compiler/GHC/Runtime/Eval.hs
- compiler/GHC/Runtime/Heap/Inspect.hs
- compiler/GHC/Runtime/Interpreter.hs
- compiler/GHC/Settings/IO.hs
- compiler/GHC/Stg/EnforceEpt.hs
- compiler/GHC/Stg/EnforceEpt/Rewrite.hs
- compiler/GHC/Stg/EnforceEpt/Types.hs
- compiler/GHC/Stg/Unarise.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/Expr.hs
- compiler/GHC/StgToCmm/Foreign.hs
- compiler/GHC/StgToCmm/Lit.hs
- compiler/GHC/StgToJS/Literal.hs
- compiler/GHC/SysTools/Cpp.hs
- compiler/GHC/SysTools/Tasks.hs
- compiler/GHC/Tc/Deriv/Generate.hs
- compiler/GHC/Tc/Deriv/Generics.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Gen/Export.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Gen/Pat.hs
- compiler/GHC/Tc/Instance/Class.hs
- compiler/GHC/Tc/Instance/Family.hs
- compiler/GHC/Tc/TyCl.hs
- compiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Zonk/Type.hs
- compiler/GHC/Types/Demand.hs
- compiler/GHC/Types/Error/Codes.hs
- compiler/GHC/Types/Name/Env.hs
- compiler/GHC/Types/Var/Env.hs
- compiler/GHC/Unit/Env.hs
- compiler/GHC/Unit/Home/Graph.hs
- compiler/GHC/Unit/Home/PackageTable.hs
- compiler/GHC/Unit/Module/Graph.hs
- compiler/GHC/Unit/Module/ModSummary.hs
- compiler/GHC/Unit/State.hs
- compiler/GHC/Utils/Misc.hs
- compiler/ghc.cabal.in
- distrib/configure.ac.in
- docs/users_guide/debugging.rst
- ghc/GHCi/UI.hs
- hadrian/bindist/Makefile
- hadrian/cfg/system.config.in
- hadrian/src/Oracles/Setting.hs
- hadrian/src/Rules/BinaryDist.hs
- hadrian/src/Rules/Generate.hs
- hadrian/src/Rules/SourceDist.hs
- hadrian/src/Settings/Default.hs
- hadrian/stack.yaml.lock
- libraries/ghc-heap/GHC/Exts/Heap/InfoTable/Types.hsc
- libraries/ghc-internal/src/GHC/Internal/LanguageExtensions.hs
- libraries/ghci/GHCi/BreakArray.hs
- libraries/ghci/GHCi/Message.hs
- libraries/ghci/GHCi/Run.hs
- m4/fp_settings.m4
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
- + testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
- testsuite/tests/cmm/should_run/all.T
- testsuite/tests/count-deps/CountDepsParser.stdout
- testsuite/tests/driver/T4437.hs
- testsuite/tests/ghc-api/T11579.hs
- + testsuite/tests/ghc-cpp/GhcCpp01.hs
- + testsuite/tests/ghc-cpp/GhcCpp01.stderr
- + testsuite/tests/ghc-cpp/all.T
- testsuite/tests/interface-stability/template-haskell-exports.stdout
- testsuite/tests/linters/notes.stdout
- testsuite/tests/perf/compiler/all.T
- + testsuite/tests/perf/compiler/interpreter_steplocal.hs
- + testsuite/tests/perf/compiler/interpreter_steplocal.script
- + testsuite/tests/perf/compiler/interpreter_steplocal.stdout
- + testsuite/tests/pmcheck/should_compile/T25749.hs
- testsuite/tests/pmcheck/should_compile/all.T
- testsuite/tests/rename/should_fail/T17594b.hs
- testsuite/tests/rename/should_fail/T17594b.stderr
- + testsuite/tests/rename/should_fail/T17594b_th.hs
- + testsuite/tests/rename/should_fail/T17594b_th.stderr
- testsuite/tests/rename/should_fail/T22478e.stderr
- testsuite/tests/rename/should_fail/all.T
- testsuite/tests/th/T24557a.stderr
- testsuite/tests/th/T24557b.stderr
- testsuite/tests/th/T24557c.stderr
- testsuite/tests/th/T24557d.stderr
- testsuite/tests/typecheck/should_fail/T17594c.stderr
- testsuite/tests/typecheck/should_fail/T17594d.stderr
- testsuite/tests/typecheck/should_fail/T17594g.stderr
- testsuite/tests/typecheck/should_fail/T19109.stderr
- testsuite/tests/typecheck/should_fail/T23776.stderr
- + utils/check-cpp/.ghci
- + utils/check-cpp/.gitignore
- + utils/check-cpp/Eval.hs
- + utils/check-cpp/Example1.hs
- + utils/check-cpp/Example2.hs
- + utils/check-cpp/Example3.hs
- + utils/check-cpp/Example4.hs
- + utils/check-cpp/Lexer.x
- + utils/check-cpp/Macro.hs
- + utils/check-cpp/Main.hs
- + utils/check-cpp/ParsePP.hs
- + utils/check-cpp/ParseSimulate.hs
- + utils/check-cpp/Parser.y
- + utils/check-cpp/ParserM.hs
- + utils/check-cpp/PreProcess.hs
- + utils/check-cpp/README.md
- + utils/check-cpp/State.hs
- + utils/check-cpp/run.sh
- utils/check-exact/Main.hs
- utils/check-exact/Parsers.hs
- utils/check-exact/Preprocess.hs
- utils/check-exact/Utils.hs
- utils/haddock/doc/conf.py
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
- utils/haddock/haddock-api/src/Haddock/Parser.hs
- utils/haddock/haddock-api/src/Haddock/Types.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b5089bc8b3e9be63a001175c726e1668fbbe3cbb...6416d190834100a491ccaa14fa7cc9a567aae019

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b5089bc8b3e9be63a001175c726e1668fbbe3cbb...6416d190834100a491ccaa14fa7cc9a567aae019
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20250302/0a0f39d6/attachment-0001.html>


More information about the ghc-commits mailing list