[Git][ghc/ghc][wip/jeltsch/textual-bytecode-output] Switch to only removing suffixes that start with `r`
by Wolfgang Jeltsch (@jeltsch) 15 Jul '26
by Wolfgang Jeltsch (@jeltsch) 15 Jul '26
15 Jul '26
Wolfgang Jeltsch pushed to branch wip/jeltsch/textual-bytecode-output at Glasgow Haskell Compiler / GHC
Commits:
b51667d1 by Wolfgang Jeltsch at 2026-07-15T17:12:23+03:00
Switch to only removing suffixes that start with `r`
- - - - -
4 changed files:
- testsuite/tests/show-bytecode/Makefile
- testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout
- testsuite/tests/show-bytecode/show-bytecode-hpc.stdout
- testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout
Changes:
=====================================
testsuite/tests/show-bytecode/Makefile
=====================================
@@ -4,7 +4,7 @@ include $(TOP)/mk/test.mk
compile = '$(TEST_HC)' $(TEST_HC_OPTS) -fbyte-code -fwrite-byte-code -no-link
show = '$(TEST_HC)' $(TEST_HC_OPTS) --show-byte-code
-normalize = sed -E -e 's/_[[:alnum:]]+//g'
+normalize = sed -E -e 's/_r[[:alnum:]]+//g'
show-bytecode-vanilla:
$(compile) Example.hs
=====================================
testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout
=====================================
@@ -10,55 +10,55 @@ objects:
cost center of breakpoint 0
utilized items:
break array of module ‘Example’
- item named ‘static’
+ item named ‘static_ptr1’
item named ‘$dTypeable2’
item named ‘$fIsStaticStaticPtr’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1’:
data constructor name: StaticPtr
lifted: yes
literals:
word 2391484856205448807
word 14295153105712797526
utilized items:
- item named ‘static’
+ item named ‘static_ptr1_sat’
item named ‘primes’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: StaticPtrInfo
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- item named ‘static’
- ordinary object ‘static’:
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: top-level string "main"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: top-level string "Example"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: (,)
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ static-construction object ‘static_ptr1_sat’:
data constructor name: I#
lifted: yes
literals: word 27
utilized items: <none>
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: I#
lifted: yes
literals: word 20
@@ -72,7 +72,7 @@ objects:
info table of ‘:’
utilized items:
break array of module ‘Example’
- ordinary object ‘primes’:
+ ordinary object ‘primes_sat’:
arity: 0
literals:
top-level string "Example"
@@ -80,11 +80,11 @@ objects:
cost center of breakpoint 1
utilized items:
break array of module ‘Example’
- ordinary object ‘primes’:
+ ordinary object ‘primes_sat’:
arity: 0
literals: <none>
utilized items:
- ordinary object ‘primes’:
+ ordinary object ‘primes_sat’:
arity: 0
literals:
word 3
@@ -96,7 +96,7 @@ objects:
item named ‘enumFrom’
item named ‘isPrime’
item named ‘filter’
- ordinary object ‘primes’:
+ ordinary object ‘primes_sat’:
arity: 0
literals:
word 2
@@ -112,7 +112,7 @@ objects:
cost center of breakpoint 9
utilized items:
break array of module ‘Example’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals:
top-level string "Example"
@@ -120,7 +120,7 @@ objects:
cost center of breakpoint 8
utilized items:
break array of module ‘Example’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals:
top-level string "Example"
@@ -128,7 +128,7 @@ objects:
cost center of breakpoint 7
utilized items:
break array of module ‘Example’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals:
top-level string "Example"
@@ -136,7 +136,7 @@ objects:
cost center of breakpoint 6
utilized items:
break array of module ‘Example’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 0
literals:
top-level string "Example"
@@ -157,7 +157,7 @@ objects:
arity: 3
literals: <none>
utilized items: <none>
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals:
top-level string "Example"
@@ -178,7 +178,7 @@ objects:
item named ‘.’
item named ‘primes’
item named ‘takeWhile’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals:
top-level string "Example"
@@ -203,55 +203,55 @@ objects:
cost center of breakpoint 10
utilized items:
break array of module ‘Example’
- item named ‘static’
+ item named ‘static_ptr’
item named ‘$dTypeable2’
item named ‘$fIsStaticStaticPtr’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr’:
data constructor name: StaticPtr
lifted: yes
literals:
word 17112019464237448244
word 14704510317759369968
utilized items:
- item named ‘static’
+ item named ‘static_ptr_sat’
item named ‘fibonaccis’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: StaticPtrInfo
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- item named ‘static’
- ordinary object ‘static’:
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: top-level string "main"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: top-level string "Example"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: (,)
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ static-construction object ‘static_ptr_sat’:
data constructor name: I#
lifted: yes
literals: word 15
utilized items: <none>
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: I#
lifted: yes
literals: word 24
@@ -265,7 +265,7 @@ objects:
info table of ‘:’
utilized items:
break array of module ‘Example’
- ordinary object ‘fibonaccis’:
+ ordinary object ‘fibonaccis_sat’:
arity: 0
literals:
word 0
@@ -283,7 +283,7 @@ objects:
info table of ‘:’
utilized items:
break array of module ‘Example’
- ordinary object ‘positiveFibonaccis’:
+ ordinary object ‘positiveFibonaccis_sat’:
arity: 0
literals:
top-level string "Example"
@@ -291,7 +291,7 @@ objects:
cost center of breakpoint 12
utilized items:
break array of module ‘Example’
- ordinary object ‘positiveFibonaccis’:
+ ordinary object ‘positiveFibonaccis_sat’:
arity: 0
literals: <none>
utilized items:
@@ -300,7 +300,7 @@ objects:
item named ‘positiveFibonaccis’
item named ‘fibonaccis’
item named ‘zipWith’
- ordinary object ‘positiveFibonaccis’:
+ ordinary object ‘positiveFibonaccis_sat’:
arity: 0
literals:
word 1
@@ -590,13 +590,13 @@ objects:
cost center of breakpoint 15
utilized items:
break array of module ‘Example’
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 1
literals:
word 0
info table of ‘IS’
utilized items: item named ‘fromInteger’
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 3
literals:
top-level string "Example"
@@ -822,7 +822,7 @@ breakpoints:
%'Many eta1 :: a
corresponding source breakpoint: 1
static-pointer table entries:
- ed7a1b0a13717c34cc10ea39e61d12f0: static
- 213042ce5bda1667c6629602bbd55756: static
+ ed7a1b0a13717c34cc10ea39e61d12f0: static_ptr
+ 213042ce5bda1667c6629602bbd55756: static_ptr1
HPC information: <none>
=====================================
testsuite/tests/show-bytecode/show-bytecode-hpc.stdout
=====================================
@@ -5,78 +5,78 @@ objects:
ordinary object ‘primesPtr’:
arity: 0
literals:
- label ‘’
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
+ label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- item named ‘static’
+ item named ‘static_ptr1’
item named ‘$dTypeable2’
item named ‘$fIsStaticStaticPtr’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1’:
data constructor name: StaticPtr
lifted: yes
literals:
word 2391484856205448807
word 14295153105712797526
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ static-construction object ‘static_ptr1_sat’:
data constructor name: StaticPtrInfo
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- item named ‘static’
- ordinary object ‘static’:
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: top-level string "main"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: top-level string "Example"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: (,)
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ static-construction object ‘static_ptr1_sat’:
data constructor name: I#
lifted: yes
literals: word 27
utilized items: <none>
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: I#
lifted: yes
literals: word 20
utilized items: <none>
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: item named ‘primes’
ordinary object ‘primes2’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘primes2’:
+ ordinary object ‘primes2_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘primes2’:
+ ordinary object ‘primes2_sat’:
arity: 0
literals:
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
word 3
info table of ‘IS’
utilized items:
@@ -84,40 +84,40 @@ objects:
item named ‘fromInteger’
item named ‘$fEnumNatural’
item named ‘enumFrom’
- ordinary object ‘primes2’:
+ ordinary object ‘primes2_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: item named ‘isPrime’
item named ‘filter’
ordinary object ‘isPrime’:
arity: 1
literals:
- label ‘’
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
+ label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: item named ‘primes’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
ordinary object ‘v’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
item named ‘$fIntegralInteger’
item named ‘$fNumNatural’
@@ -125,7 +125,7 @@ objects:
ordinary object ‘v1’:
arity: 0
literals:
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
word 2
info table of ‘IS’
utilized items: <none>
@@ -133,19 +133,19 @@ objects:
arity: 3
literals: <none>
utilized items: <none>
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
ordinary object ‘v’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
item named ‘$fOrdNatural’
item named ‘<=’
ordinary object ‘v1’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: <none>
ordinary object ‘pap’:
arity: 3
@@ -153,13 +153,13 @@ objects:
utilized items: <none>
item named ‘.’
item named ‘takeWhile’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
ordinary object ‘v’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
ordinary object ‘pap’:
arity: 2
@@ -169,7 +169,7 @@ objects:
item named ‘divides’
ordinary object ‘v1’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: <none>
ordinary object ‘pap’:
arity: 3
@@ -181,8 +181,8 @@ objects:
ordinary object ‘primes’:
arity: 0
literals:
- label ‘’
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
+ label ‘_hpc_tickboxes_Example_hpc’
info table of ‘:’
utilized items:
item named ‘primes2’
@@ -190,7 +190,7 @@ objects:
ordinary object ‘primes1’:
arity: 0
literals:
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
word 2
info table of ‘IS’
utilized items:
@@ -199,90 +199,90 @@ objects:
ordinary object ‘fibonaccisPtr’:
arity: 0
literals:
- label ‘’
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
+ label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- item named ‘static’
+ item named ‘static_ptr’
item named ‘$dTypeable2’
item named ‘$fIsStaticStaticPtr’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr’:
data constructor name: StaticPtr
lifted: yes
literals:
word 17112019464237448244
word 14704510317759369968
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ static-construction object ‘static_ptr_sat’:
data constructor name: StaticPtrInfo
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- item named ‘static’
- ordinary object ‘static’:
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: top-level string "main"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: top-level string "Example"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: (,)
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ static-construction object ‘static_ptr_sat’:
data constructor name: I#
lifted: yes
literals: word 15
utilized items: <none>
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: I#
lifted: yes
literals: word 24
utilized items: <none>
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: item named ‘fibonaccis’
ordinary object ‘positiveFibonaccis1’:
arity: 0
literals:
- label ‘’
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
+ label ‘_hpc_tickboxes_Example_hpc’
info table of ‘:’
utilized items:
item named ‘positiveFibonaccis2’
item named ‘positiveFibonaccis’
ordinary object ‘positiveFibonaccis2’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘positiveFibonaccis2’:
+ ordinary object ‘positiveFibonaccis2_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: item named ‘positiveFibonaccis1’
- ordinary object ‘positiveFibonaccis2’:
+ ordinary object ‘positiveFibonaccis2_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: item named ‘fibonaccis’
- ordinary object ‘positiveFibonaccis2’:
+ ordinary object ‘positiveFibonaccis2_sat’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
item named ‘$fNumNatural’
item named ‘+’
@@ -290,20 +290,20 @@ objects:
ordinary object ‘fibonaccis’:
arity: 0
literals:
- label ‘’
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
+ label ‘_hpc_tickboxes_Example_hpc’
info table of ‘:’
utilized items:
item named ‘fibonaccis2’
item named ‘fibonaccis1’
ordinary object ‘fibonaccis2’:
arity: 0
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: item named ‘positiveFibonaccis1’
ordinary object ‘positiveFibonaccis’:
arity: 0
literals:
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
word 1
info table of ‘IS’
utilized items:
@@ -312,7 +312,7 @@ objects:
ordinary object ‘fibonaccis1’:
arity: 0
literals:
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
word 0
info table of ‘IS’
utilized items:
@@ -579,39 +579,39 @@ objects:
ordinary object ‘$dReal’:
arity: 0
literals:
- label ‘’
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
+ label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 1
literals:
- label ‘’
+ label ‘_hpc_tickboxes_Example_hpc’
word 0
info table of ‘IS’
utilized items:
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 0
literals: <none>
utilized items: item named ‘fromInteger’
item named ‘$p1Real’
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 3
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items:
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: <none>
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 1
- literals: label ‘’
+ literals: label ‘_hpc_tickboxes_Example_hpc’
utilized items: <none>
item named ‘mod’
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 0
literals: <none>
utilized items:
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 0
literals: <none>
utilized items: item named ‘==’
@@ -658,11 +658,11 @@ top-level strings:
$trModule1: "main"
breakpoints: <none>
static-pointer table entries:
- ed7a1b0a13717c34cc10ea39e61d12f0: static
- 213042ce5bda1667c6629602bbd55756: static
+ ed7a1b0a13717c34cc10ea39e61d12f0: static_ptr
+ 213042ce5bda1667c6629602bbd55756: static_ptr1
HPC information:
hash: 000000006110204f
module name: Example
- tick box name:
+ tick box name: _hpc_tickboxes_Example_hpc
number of ticks: 45
=====================================
testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout
=====================================
@@ -6,55 +6,55 @@ objects:
arity: 0
literals: <none>
utilized items:
- item named ‘static’
+ item named ‘static_ptr1’
item named ‘$dTypeable2’
item named ‘$fIsStaticStaticPtr’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1’:
data constructor name: StaticPtr
lifted: yes
literals:
word 2391484856205448807
word 14295153105712797526
utilized items:
- item named ‘static’
+ item named ‘static_ptr1_sat’
item named ‘primes’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: StaticPtrInfo
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- item named ‘static’
- ordinary object ‘static’:
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: top-level string "main"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: top-level string "Example"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr1_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: (,)
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr1_sat’
+ item named ‘static_ptr1_sat’
+ static-construction object ‘static_ptr1_sat’:
data constructor name: I#
lifted: yes
literals: word 27
utilized items: <none>
- static-construction object ‘static’:
+ static-construction object ‘static_ptr1_sat’:
data constructor name: I#
lifted: yes
literals: word 20
@@ -63,22 +63,22 @@ objects:
arity: 0
literals: <none>
utilized items:
- item named ‘primes2’
+ item named ‘primes2_sat’
item named ‘isPrime’
item named ‘filter’
ordinary object ‘isPrime’:
arity: 1
literals: <none>
utilized items:
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals: <none>
utilized items:
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals: <none>
utilized items:
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 1
literals:
word 2
@@ -91,7 +91,7 @@ objects:
item named ‘$fIntegralInteger’
item named ‘$fNumNatural’
item named ‘^’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 3
literals: <none>
utilized items: <none>
@@ -101,14 +101,14 @@ objects:
utilized items:
item named ‘$fOrdNatural’
item named ‘<=’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 3
literals: <none>
utilized items: <none>
item named ‘.’
item named ‘primes’
item named ‘takeWhile’
- ordinary object ‘isPrime’:
+ ordinary object ‘isPrime_sat’:
arity: 2
literals: <none>
utilized items:
@@ -124,11 +124,11 @@ objects:
utilized items:
item named ‘primes1’
item named ‘primes2’
- ordinary object ‘primes2’:
+ ordinary object ‘primes2_sat’:
arity: 0
literals: <none>
utilized items:
- ordinary object ‘primes2’:
+ ordinary object ‘primes2_sat’:
arity: 0
literals:
word 3
@@ -142,10 +142,10 @@ objects:
arity: 0
literals: <none>
utilized items:
- item named ‘primes1’
+ item named ‘primes1_sat’
item named ‘$fNumNatural’
item named ‘fromInteger’
- static-construction object ‘primes1’:
+ static-construction object ‘primes1_sat’:
data constructor name: IS
lifted: yes
literals: word 2
@@ -154,55 +154,55 @@ objects:
arity: 0
literals: <none>
utilized items:
- item named ‘static’
+ item named ‘static_ptr’
item named ‘$dTypeable2’
item named ‘$fIsStaticStaticPtr’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr’:
data constructor name: StaticPtr
lifted: yes
literals:
word 17112019464237448244
word 14704510317759369968
utilized items:
- item named ‘static’
+ item named ‘static_ptr_sat’
item named ‘fibonaccis’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: StaticPtrInfo
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- item named ‘static’
- ordinary object ‘static’:
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: top-level string "main"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: top-level string "Example"
utilized items:
- ordinary object ‘static’:
+ ordinary object ‘static_ptr_sat’:
arity: 0
literals: <none>
utilized items: item named ‘unpackCString#’
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: (,)
lifted: yes
literals: <none>
utilized items:
- item named ‘static’
- item named ‘static’
- static-construction object ‘static’:
+ item named ‘static_ptr_sat’
+ item named ‘static_ptr_sat’
+ static-construction object ‘static_ptr_sat’:
data constructor name: I#
lifted: yes
literals: word 15
utilized items: <none>
- static-construction object ‘static’:
+ static-construction object ‘static_ptr_sat’:
data constructor name: I#
lifted: yes
literals: word 24
@@ -213,7 +213,7 @@ objects:
utilized items:
item named ‘positiveFibonaccis1’
item named ‘fibonaccis’
- item named ‘positiveFibonaccis2’
+ item named ‘positiveFibonaccis2_sat’
item named ‘zipWith’
static-construction object ‘positiveFibonaccis1’:
data constructor name: :
@@ -229,7 +229,7 @@ objects:
utilized items:
item named ‘fibonaccis1’
item named ‘positiveFibonaccis1’
- ordinary object ‘positiveFibonaccis2’:
+ ordinary object ‘positiveFibonaccis2_sat’:
arity: 0
literals: <none>
utilized items:
@@ -239,10 +239,10 @@ objects:
arity: 0
literals: <none>
utilized items:
- item named ‘positiveFibonaccis’
+ item named ‘positiveFibonaccis_sat’
item named ‘$fNumNatural’
item named ‘fromInteger’
- static-construction object ‘positiveFibonaccis’:
+ static-construction object ‘positiveFibonaccis_sat’:
data constructor name: IS
lifted: yes
literals: word 1
@@ -251,10 +251,10 @@ objects:
arity: 0
literals: <none>
utilized items:
- item named ‘fibonaccis1’
+ item named ‘fibonaccis1_sat’
item named ‘$fNumNatural’
item named ‘fromInteger’
- static-construction object ‘fibonaccis1’:
+ static-construction object ‘fibonaccis1_sat’:
data constructor name: IS
lifted: yes
literals: word 0
@@ -521,26 +521,26 @@ objects:
arity: 0
literals: <none>
utilized items:
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 1
literals:
word 0
info table of ‘IS’
utilized items:
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 0
literals: <none>
utilized items: item named ‘fromInteger’
item named ‘$p1Real’
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 3
literals: <none>
utilized items: item named ‘mod’
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 0
literals: <none>
utilized items:
- ordinary object ‘divides’:
+ ordinary object ‘divides_sat’:
arity: 0
literals: <none>
utilized items: item named ‘==’
@@ -587,7 +587,7 @@ top-level strings:
$trModule1: "main"
breakpoints: <none>
static-pointer table entries:
- ed7a1b0a13717c34cc10ea39e61d12f0: static
- 213042ce5bda1667c6629602bbd55756: static
+ ed7a1b0a13717c34cc10ea39e61d12f0: static_ptr
+ 213042ce5bda1667c6629602bbd55756: static_ptr1
HPC information: <none>
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/b51667d150c1f226f2420e1f3da20e6…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/b51667d150c1f226f2420e1f3da20e6…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
15 Jul '26
Magnus pushed new branch wip/mangoiv/fix-nightly-messup at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/mangoiv/fix-nightly-messup
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/fix-cross-test-cc] 25 commits: ttg: Using ShortText over FastString in the AST
by Cheng Shao (@TerrorJack) 15 Jul '26
by Cheng Shao (@TerrorJack) 15 Jul '26
15 Jul '26
Cheng Shao pushed to branch wip/fix-cross-test-cc at Glasgow Haskell Compiler / GHC
Commits:
4ebfc478 by Rodrigo Mesquita at 2026-07-08T04:47:53-04:00
ttg: Using ShortText over FastString in the AST
To make the AST independent of GHC, this commit replaces usages of
`FastString` with `HText` in the AST, killing the last edge from
Language.Haskell.* to GHC.* modules.
Even though we /do/ want to use FastStrings in general -- critically in
Names or Ids -- there is no particular reason for the FastStrings that
occur in the AST proper to be FastStrings. Strings in the AST are
typically unique and don't benefit particularly from being interned
FastStrings with Uniques for fast comparison.
`HText` is a type synonym for `ShortText` which uses GHC's Modified
UTF-8 encoding exclusively.
Modified UTF-8 must be used to represent the Haskell AST because the
Haskell Report allows surrogate code points. `Data.Text.Text` functions
use Standard UTF-8 which replace surrogates with a placeholder value,
thus `Data.Text.Text` is unsuitable for AST strings. See the
`Language.Haskell.Syntax.Text` module header for more details.
Final progress towards #21592
Closes #21628
- - - - -
d910b353 by Simon Peyton Jones at 2026-07-08T04:48:36-04:00
Update equality-type documenation in GHC.Builtin.Types.Prim
Fix #27466
- - - - -
b2530542 by Simon Peyton Jones at 2026-07-08T04:48:36-04:00
Honour -dsuppress-coercions in GHC.Core.TyCo.pprCo
Fixes #27467
- - - - -
9a73179a by Facundo Domínguez at 2026-07-08T04:49:26-04:00
Add item to MR checklist asking to squash fixup commits after approval
The checklist has an item that reads
All commits are either individually buildable or squashed.
This item could be checked immediately after sending the merge request
though. If reviewers ask for amends later on, and the author amends
the merge request, there was no item that would remind the contributors
to squash the fixup commits before landing.
This commit adds a new item
After all approvals and before landing: all fixup commits are squashed with their originating commits.
which should be harder to mark as done before approvals have been given.
- - - - -
ed09895d by Andreas Klebinger at 2026-07-08T16:53:27-04:00
Fix a profiling race condition resulting in segfaults.
StgToCmm: Don't assume tagged FUN closures in closureCodeBody.
When entering a closure the self/node pointer might not be tagged in
some situations when a thunk is evaluated by multiple threads.
So we most AND away the tag bits rather than subtracting an expected tag.
Apply.cmm: Fix a race condition occuring when a thunk is mutated during GC.
In stg_ap_0_fast when might need to run GC before entering a thunk. If this happens
another thread or the GC itself might mutate the closure making entering it no longer
valid. We now check for this.
Add test and changelog for #27123 fixes.
- - - - -
67c03eb2 by Cheng Shao at 2026-07-08T16:54:09-04:00
ghc-heap: fix invalid srtlen returned by peekItbl when no-TNTC
This patch fixes the no-TNTC code path of `peekItbl` so that it looks
at the right memory address when reading the `srt` field from the
`StgInfoTable_` struct. Also adds a `T27465` regression test that
reproduces the bug on no-TNTC builds before the fix. Fixes #27465.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
2ecabb4f by Zubin Duggal at 2026-07-09T09:23:25-04:00
hadrian: binary-dist-dir should not be the default target
Revert behaviour to pre 23c9b6c392f52ec9d7a8618b204ff6b885f5fba2
In 23c9b6c392f52ec9d7a8618b204ff6b885f5fba2, we applied the following behaviour change:
```
hadrian: Build stage 2 cross compilers
...
* hadrian: Make binary-dist-dir the default build target. This allows us
to have the logic in one place about which libraries/stages to build
with cross compilers. Fixes #24192
```
This is a major regression to development experience, a plain hadrian/build
--freeze1 now takes ages because we rebuild all docs (which need to go in the
binary dist dir).
`binary-dist-dir` is the wrong default target for regular GHC development work
Fixes #27445
- - - - -
e16388e3 by Zubin Duggal at 2026-07-09T09:23:25-04:00
.gitignore: Add the hadrian system.config introduced by commit 23c9b6c392f52ec9d7a8618b204ff6b885f5fba2
Since
commit 23c9b6c392f52ec9d7a8618b204ff6b885f5fba2
Author: Matthew Pickering <matthewtpickering(a)gmail.com>
Date: Thu Dec 21 16:17:41 2023 +0000
hadrian: Build stage 2 cross compilers
./configure produces /hadrian/cfg/system.config.{host,target}
Add these to .gitignore
- - - - -
7e8abf41 by Alan Zimmerman at 2026-07-09T09:24:12-04:00
EPA: Replace AnnListItem with simply [TrailingAnn]
Remove the unnecessary wrapper around a single field.
- - - - -
29032f17 by Zubin Duggal at 2026-07-09T09:24:58-04:00
testsuite: Keep real reason for fragile test failures
- - - - -
c34e03a7 by Zubin Duggal at 2026-07-09T09:24:58-04:00
testsuite: Fall back to the failure reason for empty JUnit bodies
- - - - -
409d40f0 by Zubin Duggal at 2026-07-09T09:24:58-04:00
testsuite: Show output diffs in JUnit output
Also refactor compare_outputs to return essentially a `Maybe Diff`
(`CompareOutput`) instead of a bool, but more pythonic. This
allows us to pass the diff through nice.
- - - - -
06fee1ab by Zubin Duggal at 2026-07-09T09:24:58-04:00
perf notes: include stat deviation and acceptance window in notes so they show up in gitlab
- - - - -
57c0f32c by mangoiv at 2026-07-10T11:08:38-04:00
driver: enable -finter-module-far-jumps by default
this fixes a compatibility bug with certain binutils/gcc versions where
we were seeing jump offset overflow errors.
This commit can probably reverted if we stop supporting the problematic
binutils/gcc verions (2.44 and 14.2, respectively)
Reolves #26994
- - - - -
4396a6f2 by Andrea Vezzosi at 2026-07-10T11:09:25-04:00
[Fix #27287] preserve ModBreaks in ModIface
- - - - -
ed261a7e by Cheng Shao at 2026-07-14T17:59:38-04:00
hadrian: fix HLS support
This patch fixes hadrian's HLS support so one can rely on HLS when
working on the hadrian codebase. Fixes #27480.
Not building/linking shared libraries for hadrian is a severely
premature optimization; this top-level setting in `cabal.project` only
affects home packages while the dependencies in the cabal store are
built with vanilla/dynamic anyway, and even adding dynamic builds to
home packages would not be costly due to cabal's usage of
`-dynamic-too`.
- - - - -
eee8ec5b by Cheng Shao at 2026-07-14T18:00:20-04:00
compiler: fix miscompiled %load_relaxed, add missing %store_relaxed
This patch fixes the %load_relaxed cmm primop compilation logic to
correctly use relaxed memory ordering, and adds the missing
%store_relaxed primop. Parsing logic of %load/%store with explicit
ordering is covered in the AtomicFetch test case. Fixes #27483.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
1718230f by Alan Zimmerman at 2026-07-14T18:01:06-04:00
EPA: Keep binds and sigs together in HsValBindsLR
We combine them into a single list for GhcPs, wrapped in the
ValBind data type, which is the bind equivalent of ValD, having
constructors for binds and sigs.
This simplifies exact print processing, especially when using it to
update the contents of local binds, as we no longer need AnnSortKey
BindTag
- - - - -
6bd1ad2a by Andreas Klebinger at 2026-07-14T18:01:49-04:00
Bump nofib submodule to account for MonoLocalBinds.
New versions of GHC enable MonoLocalBinds by default.
This breaks some of the benchmarks. I've fixed this and
this bump pulls in that fix.
- - - - -
7eb0f1c9 by Cheng Shao at 2026-07-14T18:02:31-04:00
testsuite: fix bytecodeIPE test under +ipe flavours
This patch fixes the bytecodeIPE test under +ipe flavours. It used to
fail under +ipe because the RTS is built with IPE info, then
stg_AP_info in RTS carries IPE info, so whereFrom wouldn't return
Nothing. Now the test checks IPE info of a datacon in the ghci-loaded
module which is not affected by whether the RTS is built with IPE info
or not. Fixes #27498.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
ef038aae by cydparser at 2026-07-15T04:35:41-04:00
Reduce bytes allocated for `capabilities` in RTS (fixes #27487)
In rts/Capability.c, `capabilities` is an array of pointers, but it was allocated as if it were an
array of Capability's.
- - - - -
d377e83e by Cheng Shao at 2026-07-15T04:36:27-04:00
rts: fix missing UNTAG in stg_readTVarIOzh
This patch fixes missing UNTAG on the current value closure read from
StgTVar. UNTAG is a no-op when it's stg_TREC_HEADER_info which is word
aligned; it may be a tagged closure, and reading info table from the
tagged address is an unaligned load which may cause issues on
platforms with strict alignment requirements.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
8ed03842 by Cheng Shao at 2026-07-15T04:36:27-04:00
rts: fix missing UNTAG in stg_control0zh_ll
This patch fixes missing UNTAG on the cont closure returned by
captureContinuationAndAbort. In case it's not NULL,
captureContinuationAndAbort returns a tagged StgContinuation closure,
in which case it must be untagged before accessing the
apply_mask_frame field.
In the past it worked out of luck: when apply_mask_frame was NULL then
mask_frame_offset is also 0 so the control flow didn't diverge to a
wrong path. Still, this is horribly wrong and will crash once
StgContinuation struct is refactored and fields are shuffled around.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
5aa7000a by Cheng Shao at 2026-07-15T04:37:08-04:00
compiler: fix redundant AP thunk codegen when not using -ticky-ap-thunk
This patch fixes a double negation confusion in !7525 that results in
some redundant AP thunk code generation when not using
-ticky-ap-thunk. Now, we use `stgToCmmUseStdApThunk` to indicate
whether precomputed AP thunks in the RTS should be used, which
defaults to `True`, unless `-ticky-ap-thunk` is passed.
`-finfo-table-map` now also implies `-ticky-ap-thunk`, since when
doing IPE profiling we want the generated AP thunks to be unique.
Fixes #27502.
-------------------------
Metric Decrease:
T3064
-------------------------
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
77ade843 by Cheng Shao at 2026-07-15T13:39:17+00:00
WIP
- - - - -
202 changed files:
- .gitignore
- .gitlab/merge_request_templates/Default.md
- + changelog.d/T21628
- + changelog.d/T27123.md
- + changelog.d/fix-cmm-atomic-load-store
- + changelog.d/fix-peekitbl-no-tntc
- + changelog.d/fix-use-std-ap-thunk
- + changelog.d/inter-module-far-jumps-aarch64-default
- compiler/GHC/Builtin/Types/Prim.hs
- compiler/GHC/Builtin/Utils.hs
- compiler/GHC/ByteCode/Breakpoints.hs
- compiler/GHC/ByteCode/Types.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Core/Ppr.hs
- compiler/GHC/Core/TyCo/Ppr.hs
- compiler/GHC/Core/TyCo/Rep.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/Data/FastString.hs
- compiler/GHC/Data/StringBuffer.hs
- compiler/GHC/Driver/Config/StgToCmm.hs
- compiler/GHC/Driver/DynFlags.hs
- compiler/GHC/Driver/Errors/Ppr.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Main/Compile.hs
- compiler/GHC/Driver/Main/Hsc.hs
- compiler/GHC/Driver/Main/Passes.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Decls.hs
- compiler/GHC/Hs/Dump.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Lit.hs
- compiler/GHC/Hs/Type.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Breakpoints.hs
- + compiler/GHC/HsToCore/Breakpoints/Types.hs
- compiler/GHC/HsToCore/Errors/Types.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/Foreign/Wasm.hs
- compiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/Match/Literal.hs
- compiler/GHC/HsToCore/Pmc/Desugar.hs
- compiler/GHC/HsToCore/Pmc/Solver/Types.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Ticks.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Load.hs
- compiler/GHC/Iface/Make.hs
- compiler/GHC/Iface/Recomp.hs
- compiler/GHC/Iface/Syntax.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/Annotation.hs
- compiler/GHC/Parser/Errors/Ppr.hs
- compiler/GHC/Parser/HaddockLex.x
- compiler/GHC/Parser/Lexer.x
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Platform/Ways.hs
- compiler/GHC/Rename/Bind.hs
- compiler/GHC/Rename/Env.hs
- compiler/GHC/Rename/Expr.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Rename/Module.hs
- compiler/GHC/Rename/Names.hs
- compiler/GHC/Rename/Splice.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/Runtime/Eval.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/Bind.hs
- compiler/GHC/StgToCmm/Config.hs
- compiler/GHC/StgToCmm/Foreign.hs
- compiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/StgToJS/FFI.hs
- compiler/GHC/Tc/Deriv.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/Gen/Bind.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Head.hs
- compiler/GHC/Tc/Gen/HsType.hs
- compiler/GHC/Tc/Gen/Pat.hs
- compiler/GHC/Tc/Gen/Sig.hs
- compiler/GHC/Tc/Gen/Splice.hs
- compiler/GHC/Tc/Instance/Class.hs
- compiler/GHC/Tc/Solver/Dict.hs
- compiler/GHC/Tc/TyCl.hs
- compiler/GHC/Tc/TyCl/Utils.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Validity.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Types/Basic.hs
- compiler/GHC/Types/Error.hs
- compiler/GHC/Types/FieldLabel.hs
- compiler/GHC/Types/ForeignCall.hs
- compiler/GHC/Types/Literal.hs
- compiler/GHC/Unit/Module/ModGuts.hs
- compiler/GHC/Unit/Module/ModIface.hs
- compiler/GHC/Unit/Module/Warnings.hs
- compiler/GHC/Unit/Module/WholeCoreBindings.hs
- compiler/GHC/Utils/Binary.hs
- compiler/GHC/Utils/Outputable.hs
- compiler/Language/Haskell/Syntax/Basic.hs
- compiler/Language/Haskell/Syntax/Binds.hs
- compiler/Language/Haskell/Syntax/Decls.hs
- compiler/Language/Haskell/Syntax/Decls/Foreign.hs
- compiler/Language/Haskell/Syntax/Expr.hs
- compiler/Language/Haskell/Syntax/Extension.hs
- compiler/Language/Haskell/Syntax/Lit.hs
- compiler/Language/Haskell/Syntax/Module/Name.hs
- + compiler/Language/Haskell/Syntax/Text.hs
- compiler/Language/Haskell/Syntax/Type.hs
- compiler/ghc.cabal.in
- docs/users_guide/using-optimisation.rst
- ghc/GHCi/UI.hs
- hadrian/cabal.project
- hadrian/src/Rules.hs
- hadrian/src/Rules/BinaryDist.hs
- hadrian/src/Rules/Test.hs
- hadrian/src/Settings/Builders/RunTest.hs
- libraries/ghc-boot/GHC/Data/ShortText.hs
- + libraries/ghc-heap/tests/T27465.hs
- + libraries/ghc-heap/tests/T27465.stdout
- libraries/ghc-heap/tests/all.T
- libraries/ghc-internal/src/GHC/Internal/Heap/InfoTable.hsc
- libraries/ghc-internal/src/GHC/Internal/Heap/InfoTableProf.hsc
- nofib
- rts/Apply.cmm
- rts/Capability.c
- rts/ContinuationOps.cmm
- rts/PrimOps.cmm
- testsuite/driver/junit.py
- testsuite/driver/perf_notes.py
- testsuite/driver/testglobals.py
- testsuite/driver/testlib.py
- testsuite/driver/testutil.py
- testsuite/tests/cmm/should_run/AtomicFetch.hs
- testsuite/tests/cmm/should_run/AtomicFetch_cmm.cmm
- testsuite/tests/codeGen/should_compile/T25177.stderr
- testsuite/tests/count-deps/CountDepsAst.stdout
- testsuite/tests/count-deps/CountDepsParser.stdout
- testsuite/tests/ghc-api/T25121_status.stdout
- testsuite/tests/ghc-api/annotations-literals/parsed.hs
- testsuite/tests/ghc-api/exactprint/T22919.stderr
- testsuite/tests/ghc-api/exactprint/Test20239.stderr
- testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr
- testsuite/tests/ghci/scripts/bytecodeIPE.hs
- testsuite/tests/ghci/should_run/Makefile
- + testsuite/tests/ghci/should_run/T27287.hs
- + testsuite/tests/ghci/should_run/T27287.stdout
- testsuite/tests/ghci/should_run/all.T
- testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr
- testsuite/tests/haddock/should_compile_flag_haddock/T17544_kw.stderr
- testsuite/tests/haddock/should_compile_flag_haddock/T24221.stderr
- testsuite/tests/module/mod185.stderr
- testsuite/tests/numeric/should_compile/T15547.stderr
- testsuite/tests/parser/should_compile/DumpParsedAst.stderr
- testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr
- testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
- testsuite/tests/parser/should_compile/DumpSemis.stderr
- testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr
- testsuite/tests/parser/should_compile/KindSigs.stderr
- testsuite/tests/parser/should_compile/T14189.stderr
- testsuite/tests/parser/should_compile/T15323.stderr
- testsuite/tests/parser/should_compile/T20452.stderr
- testsuite/tests/parser/should_compile/T20718.stderr
- testsuite/tests/parser/should_compile/T20718b.stderr
- testsuite/tests/parser/should_compile/T20846.stderr
- testsuite/tests/parser/should_compile/T23315/T23315.stderr
- + testsuite/tests/parser/should_run/StringStartsWithNull.hs
- + testsuite/tests/parser/should_run/StringStartsWithNull.stdout
- testsuite/tests/parser/should_run/all.T
- testsuite/tests/perf/compiler/hard_hole_fits.stderr
- testsuite/tests/printer/AnnotationNoListTuplePuns.stdout
- testsuite/tests/printer/T18791.stderr
- testsuite/tests/printer/Test20297.stdout
- testsuite/tests/printer/Test24533.stdout
- + testsuite/tests/rts/T27123.hs
- testsuite/tests/rts/all.T
- testsuite/tests/simplCore/should_compile/DataToTagFamilyScrut.stderr
- testsuite/tests/simplCore/should_compile/T14978.stdout
- testsuite/tests/simplCore/should_compile/T18013.stderr
- testsuite/tests/simplCore/should_compile/T24229a.stderr
- testsuite/tests/simplCore/should_compile/T24229b.stderr
- testsuite/tests/typecheck/should_compile/T15242.stderr
- testsuite/tests/typecheck/should_compile/all.T
- utils/check-exact/ExactPrint.hs
- utils/check-exact/Main.hs
- utils/check-exact/Transform.hs
- utils/check-exact/Utils.hs
- utils/check-exact/check-exact.cabal
- utils/haddock/haddock-api/haddock-api.cabal
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
- utils/haddock/haddock-api/src/Haddock/Backends/LaTeX.hs
- utils/haddock/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs
- utils/haddock/haddock-api/src/Haddock/Convert.hs
- utils/haddock/haddock-api/src/Haddock/Interface/Create.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/39276ed17089e0945c871cad204ac7…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/39276ed17089e0945c871cad204ac7…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
15 Jul '26
Cheng Shao pushed new branch wip/fix-cross-test-cc at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/fix-cross-test-cc
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/improve-linker-discovery] configure: implement a saner linker discovery algorithm in dist/configure
by Magnus (@MangoIV) 15 Jul '26
by Magnus (@MangoIV) 15 Jul '26
15 Jul '26
Magnus pushed to branch wip/mangoiv/improve-linker-discovery at Glasgow Haskell Compiler / GHC
Commits:
2fdd1e71 by mangoiv at 2026-07-15T15:10:01+02:00
configure: implement a saner linker discovery algorithm in dist/configure
- - - - -
3 changed files:
- distrib/configure.ac.in
- + m4/bindist_determine_linker.m4
- m4/find_merge_objects.m4
Changes:
=====================================
distrib/configure.ac.in
=====================================
@@ -175,7 +175,11 @@ AC_SUBST([CmmCPPSupportsG0])
dnl ** Which ld to use?
dnl --------------------------------------------------------------
-FIND_LD([$target],[GccUseLdOpt])
+dnl currently if you pass $LD=foo, merge objs command will be set to $(which foo)
+dnl which is not required by GHC and also wrong.
+BINDIST_DETERMINE_LINKER([$target],[GccUseLdOpt])
+dnl at this point, we should have set LD in all cases, so FIND_MERGE_OBJECTS command can
+dnl go off and do it's thing
FIND_MERGE_OBJECTS()
CONF_GCC_LINKER_OPTS_STAGE1="$CONF_GCC_LINKER_OPTS_STAGE1 $GccUseLdOpt"
CONF_GCC_LINKER_OPTS_STAGE2="$CONF_GCC_LINKER_OPTS_STAGE2 $GccUseLdOpt"
=====================================
m4/bindist_determine_linker.m4
=====================================
@@ -0,0 +1,134 @@
+# BINDIST_DETERMINE_LINKER
+# ------------------------
+#
+# This is used to determine the linker within the bindists configure
+#
+# Notes:
+# - usually, linking works by invoking $CC
+# - objects are merged using $LD directly
+# - $LD is a configure variable and is meaningless to $CC
+# - gcc only knows linker *flavours*, it cannot use paths
+# which means that the linker path should not be an absolute path
+# - clang konws --ld-path which means that it can be passed that
+# flag and also merge objs can be an absolute path
+#
+# Algorithm:
+# if $LD is set
+# then if $CC accepts --ld-path=$(which $LD)
+# then set --ld-path=$(which $LD), MergeObjsCommand=$(which $LD)
+# else if $CC accepts --fuse-ld=$LD ($LD is a linker flavour, not an absolute path)
+# then set -fuse-ld=$LD, MergeObjsCommand=$LD (not $(which ld))
+# else Reject with
+# "$LD is not compatible with $CC you chose. This means that $LD is either
+# an unsupported linker flavour or your $CC does not support absolute linker
+# paths"
+# else if --disable-ld-override is set or $target is macos
+# then if $CC accepts --ld-path=$(which ld)
+# then set --ld-path=$(which ld), set MergeObjsCommand=$(which ld)
+# else set *no* flag (equivalent to --fuse-ld=ld, if you will), set MergeObjsCommand=ld
+# else if $CC accepts --ld-path=$(which ld.lld)
+# then set --ld-path=$(which ld.lld), MergeObjsCommand=$(which ld.lld)
+# else if $CC accepts -fuse-ld=lld
+# then set -fuse-ld=lld, MergeObjsCommand=ld.lld
+# else set *no* flag (equivalent to --fuse-ld=ld), set MergeObjsCommand=ld
+#
+# $1 = the platform
+# $2 = the variable to set with GHC options to configure gcc to use the chosen linker
+#
+AC_DEFUN([BINDIST_DETERMINE_LINKER],[
+ AC_ARG_ENABLE(ld-override,
+ [AS_HELP_STRING([--disable-ld-override],
+ [Prevent GHC from overriding the default linker used by gcc. If ld-override is enabled GHC will try to tell gcc to use whichever linker is selected by the LD environment variable. [default=override enabled]])],
+ [],
+ [enable_ld_override=yes])
+
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_TARGET])
+
+ check_ld_path() {
+ AC_MSG_CHECKING([whether C compiler supports --ld-path=[$]1])
+ ld_path="[$]1"
+ echo 'int main(void) { return 0; }' > conftest.c
+ if $CC -o conftest.o "--ld-path=$ld_path" $LDFLAGS conftest.c > /dev/null 2>&1
+ then
+ AC_MSG_RESULT([yes])
+ ld_path_ok=yes
+ else
+ AC_MSG_RESULT([no])
+ ld_path_ok=no
+ fi
+ rm -f conftest.c conftest.o
+ }
+
+ check_fuse_ld() {
+ AC_MSG_CHECKING([whether C compiler supports -fuse-ld=[$]1])
+ ld="[$]1"
+ echo 'int main(void) {return 0;}' > conftest.c
+ if $CC -o conftest.o -fuse-ld=[$]1 $LDFLAGS conftest.c > /dev/null 2>&1
+ then
+ AC_MSG_RESULT([yes])
+ fuse_ld_ok=yes
+ else
+ AC_MSG_RESULT([no])
+ fuse_ld_ok=no
+ fi
+ rm -f conftest.c conftest.o
+ }
+
+ try_set_linker_to() {
+ AC_MSG_CHECKING([whether linker can be set to [$]1])
+ tmp_ld=[$]1
+ abs_path=`command -v "$tmp_ld" 2>/dev/null` # get absolute path of $tmp_ld if it isn't already one
+ ld_path_ok="no"
+ if test "z$abs_path" != "z" && check_ld_path "$abs_path" && test "x$ld_path_ok" = "xyes";
+ then $2="--ld-path=$abs_path"
+ AC_CHECK_TARGET_TOOL([LD], [$abs_path])
+ linker_set_successfully=yes
+ else # --ld-path does not work or $LD cannot be resolved to an absolute path
+ fuse_ld_ok=no
+ if check_fuse_ld "$tmp_ld" && test "x$fuse_ld_ok" = "xyes";
+ then $2="-fuse-ld=$tmp_ld"
+ AC_CHECK_TARGET_TOOL([LD], [$tmp_ld])
+ linker_set_successfully=yes
+ else AC_MSG_WARN(["$tmp_ld could not be set via either '--ld-path' or '-fuse-ld"])
+ linker_set_successfully=no
+ fi
+ fi
+ }
+
+ # we are lenient when $LD=ld and just act as if $LD wasn't set and
+ # enable-ld-override is off
+ if test "z$LD" != "z" && test "z$LD" != "zld";
+ then linker_set_successfully=no
+ try_set_linker_to "$LD"
+ if test "z$linker_set_successfully" != "zyes";
+ then AC_MSG_FAILURE([ $tmp_ld is an invalid linker. If your C compiler accepts the '--ld-path' flag,
+ \$LD can be either of an executable name that is in \$PATH *or* a path to an executable.
+ If your C compiler only supports the '--fuse-ld' flag, \$LD can only be one of the linker flavours supported
+ by it. Mind that if your C compiler supports '--ld-path', 'configure' will always prefer using an absolute path
+ to your linker as that is less error-prone.])
+ fi
+
+ else # $LD is not set -- we will do the ld-override non-sense
+ if test "x$enable_ld_override" = "xyes" && test "z$LD" != "zld" && case "$1" in
+ *-darwin) false ;; # don't do the ld override thing on macos
+ *) true ;;
+ esac;
+ then
+ AC_MSG_NOTICE(["enable ld override was set and no more specific linker was chosen by setting \$LD, trying to find best possible linker"])
+ try_set_linker_to "lld"
+ if test "z$linker_set_successfully" != "zyes";
+ then # ... bail out, just use ld in path
+ $2=""
+ AC_CHECK_TARGET_TOOL([LD], [ld])
+ fi
+ else # ld override is not set and $LD not set either
+ $2=""
+ AC_CHECK_TARGET_TOOL([LD], [ld])
+ fi
+ fi
+
+ AC_MSG_NOTICE([linker discovery set $2 set to $$2])
+
+ CHECK_LD_COPY_BUG([$1])
+])
=====================================
m4/find_merge_objects.m4
=====================================
@@ -22,7 +22,6 @@ AC_DEFUN([CHECK_MERGE_OBJECTS],[
])
AC_DEFUN([FIND_MERGE_OBJECTS],[
- AC_REQUIRE([FIND_LD])
if test -z ${MergeObjsCmd+x}; then
AC_MSG_NOTICE([Setting cmd])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2fdd1e71a1b612913d8ead02d066c27…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/2fdd1e71a1b612913d8ead02d066c27…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/hadrian-uncompressed-tar] hadrian: allow building binary dist tar without compression
by Magnus (@MangoIV) 15 Jul '26
by Magnus (@MangoIV) 15 Jul '26
15 Jul '26
Magnus pushed to branch wip/mangoiv/hadrian-uncompressed-tar at Glasgow Haskell Compiler / GHC
Commits:
e189126d by mangoiv at 2026-07-15T15:09:36+02:00
hadrian: allow building binary dist tar without compression
- - - - -
1 changed file:
- hadrian/src/Rules/BinaryDist.hs
Changes:
=====================================
hadrian/src/Rules/BinaryDist.hs
=====================================
@@ -365,16 +365,17 @@ bindistRules = do
-- Finally, we create the archive <root>/bindist/ghc-X.Y.Z-platform.tar.xz
tarPath <- builderPath (Tar Create)
- cmd [Cwd $ root -/- bindist_folder] tarPath
- [ "-c", compressorTarFlag compressor, "-f"
- , ghcVersionPretty <.> "tar" <.> compressorExtension compressor
- , ghcVersionPretty ]
+ cmd [Cwd $ root -/- bindist_folder] tarPath $
+ [ "-c"
+ , "-f" , compressorExtension compressor $ ghcVersionPretty <.> "tar"
+ , ghcVersionPretty ] <> compressorTarFlag compressor
forM_ [("binary", buildBinDist), ("reloc-binary", buildBinDistReloc)] $ \(name, mk_bindist) -> do
phony (name <> "-dist") $ mk_bindist Xz
phony (name <> "-dist-gzip") $ mk_bindist Gzip
phony (name <> "-dist-bzip2") $ mk_bindist Bzip2
phony (name <> "-dist-xz") $ mk_bindist Xz
+ phony (name <> "-dist-uncompressed") $ mk_bindist NoCompressor
phony "binary-dist-cross" $ buildBinDistX "binary-dist-dir-cross" "bindist" Xz
phony "binary-dist-stage3" $ buildBinDistX "binary-dist-dir-stage3" "bindist" Xz
@@ -430,7 +431,7 @@ bindistRules = do
fixup f | f `elem` ["INSTALL", "README"] = "distrib" -/- f
| otherwise = f
-data Compressor = Gzip | Bzip2 | Xz
+data Compressor = Gzip | Bzip2 | Xz | NoCompressor
deriving (Eq, Ord, Show)
@@ -448,16 +449,18 @@ generateBuildMk BindistConfig{..} = do
a =. b = a ++ " = " ++ b
-- | Flag to pass to tar to use the given 'Compressor'.
-compressorTarFlag :: Compressor -> String
-compressorTarFlag Gzip = "--gzip"
-compressorTarFlag Xz = "--xz"
-compressorTarFlag Bzip2 = "--bzip"
+compressorTarFlag :: Compressor -> [String]
+compressorTarFlag Gzip = ["--gzip"]
+compressorTarFlag Xz = ["--xz" ]
+compressorTarFlag Bzip2 = ["--bzip"]
+compressorTarFlag NoCompressor = []
-- | File extension to use for archives compressed with the given 'Compressor'.
-compressorExtension :: Compressor -> String
-compressorExtension Gzip = "gz"
-compressorExtension Xz = "xz"
-compressorExtension Bzip2 = "bz2"
+compressorExtension :: Compressor -> String -> String
+compressorExtension Gzip p = p <.> "gz"
+compressorExtension Xz p = p <.> "xz"
+compressorExtension Bzip2 p = p <.> "bz2"
+compressorExtension NoCompressor p = p
-- | A list of files that allow us to support a simple
-- @./configure [...] && make install@ workflow.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e189126dd7e849947adf38144d3e25d…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e189126dd7e849947adf38144d3e25d…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/improve-linker-discovery] configure: implement a saner linker discovery algorithm in dist/configure
by Magnus (@MangoIV) 15 Jul '26
by Magnus (@MangoIV) 15 Jul '26
15 Jul '26
Magnus pushed to branch wip/mangoiv/improve-linker-discovery at Glasgow Haskell Compiler / GHC
Commits:
9fde49e8 by mangoiv at 2026-07-15T15:04:37+02:00
configure: implement a saner linker discovery algorithm in dist/configure
- - - - -
3 changed files:
- distrib/configure.ac.in
- + m4/bindist_determine_linker.m4
- m4/find_merge_objects.m4
Changes:
=====================================
distrib/configure.ac.in
=====================================
@@ -175,7 +175,11 @@ AC_SUBST([CmmCPPSupportsG0])
dnl ** Which ld to use?
dnl --------------------------------------------------------------
-FIND_LD([$target],[GccUseLdOpt])
+dnl currently if you pass $LD=foo, merge objs command will be set to $(which foo)
+dnl which is not required by GHC and also wrong.
+BINDIST_DETERMINE_LINKER([$target],[GccUseLdOpt])
+dnl at this point, we should have set LD in all cases, so FIND_MERGE_OBJECTS command can
+dnl go off and do it's thing
FIND_MERGE_OBJECTS()
CONF_GCC_LINKER_OPTS_STAGE1="$CONF_GCC_LINKER_OPTS_STAGE1 $GccUseLdOpt"
CONF_GCC_LINKER_OPTS_STAGE2="$CONF_GCC_LINKER_OPTS_STAGE2 $GccUseLdOpt"
=====================================
m4/bindist_determine_linker.m4
=====================================
@@ -0,0 +1,134 @@
+# BINDIST_DETERMINE_LINKER
+# ------------------------
+#
+# This is used to determine the linker within the bindists configure
+#
+# Notes:
+# - usually, linking works by invoking $CC
+# - objects are merged using $LD directly
+# - $LD is a configure variable and is meaningless to $CC
+# - gcc only knows linker *flavours*, it cannot use paths
+# which means that the linker path should not be an absolute path
+# - clang konws --ld-path which means that it can be passed that
+# flag and also merge objs can be an absolute path
+#
+# Algorithm:
+# if $LD is set
+# then if $CC accepts --ld-path=$(which $LD)
+# then set --ld-path=$(which $LD), MergeObjsCommand=$(which $LD)
+# else if $CC accepts --fuse-ld=$LD ($LD is a linker flavour, not an absolute path)
+# then set -fuse-ld=$LD, MergeObjsCommand=$LD (not $(which ld))
+# else Reject with
+# "$LD is not compatible with $CC you chose. This means that $LD is either
+# an unsupported linker flavour or your $CC does not support absolute linker
+# paths"
+# else if --disable-ld-override is set or $target is macos
+# then if $CC accepts --ld-path=$(which ld)
+# then set --ld-path=$(which ld), set MergeObjsCommand=$(which ld)
+# else set *no* flag (equivalent to --fuse-ld=ld, if you will), set MergeObjsCommand=ld
+# else if $CC accepts --ld-path=$(which ld.lld)
+# then set --ld-path=$(which ld.lld), MergeObjsCommand=$(which ld.lld)
+# else if $CC accepts -fuse-ld=lld
+# then set -fuse-ld=lld, MergeObjsCommand=ld.lld
+# else set *no* flag (equivalent to --fuse-ld=ld), set MergeObjsCommand=ld
+#
+# $1 = the platform
+# $2 = the variable to set with GHC options to configure gcc to use the chosen linker
+#
+AC_DEFUN([BINDIST_DETERMINE_LINKER],[
+ AC_ARG_ENABLE(ld-override,
+ [AS_HELP_STRING([--disable-ld-override],
+ [Prevent GHC from overriding the default linker used by gcc. If ld-override is enabled GHC will try to tell gcc to use whichever linker is selected by the LD environment variable. [default=override enabled]])],
+ [],
+ [enable_ld_override=yes])
+
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_TARGET])
+
+ check_ld_path() {
+ AC_MSG_CHECKING([whether C compiler supports --ld-path=[$]1])
+ ld_path="[$]1"
+ echo 'int main(void) { return 0; }' > conftest.c
+ if $CC -o conftest.o "--ld-path=$ld_path" $LDFLAGS conftest.c > /dev/null 2>&1
+ then
+ AC_MSG_RESULT([yes])
+ ld_path_ok=yes
+ else
+ AC_MSG_RESULT([no])
+ ld_path_ok=no
+ fi
+ rm -f conftest.c conftest.o
+ }
+
+ check_fuse_ld() {
+ AC_MSG_CHECKING([whether C compiler supports -fuse-ld=[$]1])
+ ld="[$]1"
+ echo 'int main(void) {return 0;}' > conftest.c
+ if $CC -o conftest.o -fuse-ld=[$]1 $LDFLAGS conftest.c > /dev/null 2>&1
+ then
+ AC_MSG_RESULT([yes])
+ fuse_ld_ok=yes
+ else
+ AC_MSG_RESULT([no])
+ fuse_ld_ok=no
+ fi
+ rm -f conftest.c conftest.o
+ }
+
+ try_set_linker_to() {
+ AC_MSG_CHECKING([whether linker can be set to [$]1])
+ tmp_ld=[$]1
+ abs_path=`command -v "$tmp_ld" 2>/dev/null` # get absolute path of $tmp_ld if it isn't already one
+ ld_path_ok="no"
+ if test "z$abs_path" != "z" && check_ld_path "$abs_path" && test "x$ld_path_ok" = "xyes";
+ then $2="--ld-path=$abs_path"
+ AC_CHECK_TARGET_TOOL([LD], [$abs_path])
+ linker_set_successfully=yes
+ else # --ld-path does not work or $LD cannot be resolved to an absolute path
+ fuse_ld_ok=no
+ if check_fuse_ld "$tmp_ld" && test "x$fuse_ld_ok" = "xyes";
+ then $2="-fuse-ld=$tmp_ld"
+ AC_CHECK_TARGET_TOOL([LD], [$tmp_ld])
+ linker_set_successfully=yes
+ else AC_MSG_WARN(["$tmp_ld could not be set via either '--ld-path' or '-fuse-ld"])
+ linker_set_successfully=no
+ fi
+ fi
+ }
+
+ # we are lenient when $LD=ld and just act as if $LD wasn't set and
+ # enable-ld-override is off
+ if test "z$LD" != "z" && test "z$LD" != "zld";
+ then linker_set_successfully=no
+ try_set_linker_to "$LD"
+ if test "z$linker_set_successfully" != "zyes";
+ then AC_MSG_FAILURE([ $tmp_ld is an invalid linker. If your C compiler accepts the '--ld-path' flag,
+ \$LD can be either of an executable name that is in \$PATH *or* a path to an executable.
+ If your C compiler only supports the '--fuse-ld' flag, \$LD can only be one of the linker flavours supported
+ by it. Mind that if your C compiler supports '--ld-path', 'configure' will always prefer using an absolute path
+ to your linker as that is less error-prone.])
+ fi
+
+ else # $LD is not set -- we will do the ld-override non-sense
+ if test "x$enable_ld_override" = "xyes" && test "z$LD" != "zld" && case "$1" in
+ *-darwin) false ;; # don't do the ld override thing on macos
+ *) true ;;
+ esac;
+ then
+ AC_MSG_NOTICE(["enable ld override was set and no more specific linker was chosen by setting \$LD, trying to find best possible linker"])
+ try_set_linker_to "lld"
+ if test "z$linker_set_successfully" != "zyes";
+ then # ... bail out, just use ld in path
+ $2=""
+ AC_CHECK_TARGET_TOOL([LD], [ld])
+ fi
+ else # ld override is not set and $LD not set either
+ $2=""
+ AC_CHECK_TARGET_TOOL([LD], [ld])
+ fi
+ fi
+
+ AC_MSG_NOTICE([linker discovery set $2 set to $$2])
+
+ CHECK_LD_COPY_BUG([$1])
+])
=====================================
m4/find_merge_objects.m4
=====================================
@@ -22,7 +22,6 @@ AC_DEFUN([CHECK_MERGE_OBJECTS],[
])
AC_DEFUN([FIND_MERGE_OBJECTS],[
- AC_REQUIRE([FIND_LD])
if test -z ${MergeObjsCmd+x}; then
AC_MSG_NOTICE([Setting cmd])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/9fde49e8d1bc73697d9cf271bb19b1b…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/9fde49e8d1bc73697d9cf271bb19b1b…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc] Pushed new branch wip/mangoiv/hadrian-uncompressed-tar
by Magnus (@MangoIV) 15 Jul '26
by Magnus (@MangoIV) 15 Jul '26
15 Jul '26
Magnus pushed new branch wip/mangoiv/hadrian-uncompressed-tar at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/mangoiv/hadrian-uncompressed-…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/mangoiv/improve-linker-discovery] 2 commits: configure: implement a saner linker discovery algorithm in dist/configure
by Magnus (@MangoIV) 15 Jul '26
by Magnus (@MangoIV) 15 Jul '26
15 Jul '26
Magnus pushed to branch wip/mangoiv/improve-linker-discovery at Glasgow Haskell Compiler / GHC
Commits:
e55e16b2 by mangoiv at 2026-07-15T13:39:12+02:00
configure: implement a saner linker discovery algorithm in dist/configure
- - - - -
bd3bfcf2 by mangoiv at 2026-07-15T14:59:05+02:00
hadrian: allow building binary dist tar without compression
- - - - -
4 changed files:
- distrib/configure.ac.in
- hadrian/src/Rules/BinaryDist.hs
- + m4/bindist_determine_linker.m4
- m4/find_merge_objects.m4
Changes:
=====================================
distrib/configure.ac.in
=====================================
@@ -175,7 +175,11 @@ AC_SUBST([CmmCPPSupportsG0])
dnl ** Which ld to use?
dnl --------------------------------------------------------------
-FIND_LD([$target],[GccUseLdOpt])
+dnl currently if you pass $LD=foo, merge objs command will be set to $(which foo)
+dnl which is not required by GHC and also wrong.
+BINDIST_DETERMINE_LINKER([$target],[GccUseLdOpt])
+dnl at this point, we should have set LD in all cases, so FIND_MERGE_OBJECTS command can
+dnl go off and do it's thing
FIND_MERGE_OBJECTS()
CONF_GCC_LINKER_OPTS_STAGE1="$CONF_GCC_LINKER_OPTS_STAGE1 $GccUseLdOpt"
CONF_GCC_LINKER_OPTS_STAGE2="$CONF_GCC_LINKER_OPTS_STAGE2 $GccUseLdOpt"
=====================================
hadrian/src/Rules/BinaryDist.hs
=====================================
@@ -365,16 +365,17 @@ bindistRules = do
-- Finally, we create the archive <root>/bindist/ghc-X.Y.Z-platform.tar.xz
tarPath <- builderPath (Tar Create)
- cmd [Cwd $ root -/- bindist_folder] tarPath
- [ "-c", compressorTarFlag compressor, "-f"
- , ghcVersionPretty <.> "tar" <.> compressorExtension compressor
- , ghcVersionPretty ]
+ cmd [Cwd $ root -/- bindist_folder] tarPath $
+ [ "-c"
+ , "-f" , compressorExtension compressor $ ghcVersionPretty <.> "tar"
+ , ghcVersionPretty ] <> compressorTarFlag compressor
forM_ [("binary", buildBinDist), ("reloc-binary", buildBinDistReloc)] $ \(name, mk_bindist) -> do
phony (name <> "-dist") $ mk_bindist Xz
phony (name <> "-dist-gzip") $ mk_bindist Gzip
phony (name <> "-dist-bzip2") $ mk_bindist Bzip2
phony (name <> "-dist-xz") $ mk_bindist Xz
+ phony (name <> "-dist-uncompressed") $ mk_bindist NoCompressor
phony "binary-dist-cross" $ buildBinDistX "binary-dist-dir-cross" "bindist" Xz
phony "binary-dist-stage3" $ buildBinDistX "binary-dist-dir-stage3" "bindist" Xz
@@ -430,7 +431,7 @@ bindistRules = do
fixup f | f `elem` ["INSTALL", "README"] = "distrib" -/- f
| otherwise = f
-data Compressor = Gzip | Bzip2 | Xz
+data Compressor = Gzip | Bzip2 | Xz | NoCompressor
deriving (Eq, Ord, Show)
@@ -448,16 +449,18 @@ generateBuildMk BindistConfig{..} = do
a =. b = a ++ " = " ++ b
-- | Flag to pass to tar to use the given 'Compressor'.
-compressorTarFlag :: Compressor -> String
-compressorTarFlag Gzip = "--gzip"
-compressorTarFlag Xz = "--xz"
-compressorTarFlag Bzip2 = "--bzip"
+compressorTarFlag :: Compressor -> [String]
+compressorTarFlag Gzip = ["--gzip"]
+compressorTarFlag Xz = ["--xz" ]
+compressorTarFlag Bzip2 = ["--bzip"]
+compressorTarFlag NoCompressor = []
-- | File extension to use for archives compressed with the given 'Compressor'.
-compressorExtension :: Compressor -> String
-compressorExtension Gzip = "gz"
-compressorExtension Xz = "xz"
-compressorExtension Bzip2 = "bz2"
+compressorExtension :: Compressor -> String -> String
+compressorExtension Gzip p = p <.> "gz"
+compressorExtension Xz p = p <.> "xz"
+compressorExtension Bzip2 p = p <.> "bz2"
+compressorExtension NoCompressor p = p
-- | A list of files that allow us to support a simple
-- @./configure [...] && make install@ workflow.
=====================================
m4/bindist_determine_linker.m4
=====================================
@@ -0,0 +1,134 @@
+# BINDIST_DETERMINE_LINKER
+# ------------------------
+#
+# This is used to determine the linker within the bindists configure
+#
+# Notes:
+# - usually, linking works by invoking $CC
+# - objects are merged using $LD directly
+# - $LD is a configure variable and is meaningless to $CC
+# - gcc only knows linker *flavours*, it cannot use paths
+# which means that the linker path should not be an absolute path
+# - clang konws --ld-path which means that it can be passed that
+# flag and also merge objs can be an absolute path
+#
+# Algorithm:
+# if $LD is set
+# then if $CC accepts --ld-path=$(which $LD)
+# then set --ld-path=$(which $LD), MergeObjsCommand=$(which $LD)
+# else if $CC accepts --fuse-ld=$LD ($LD is a linker flavour, not an absolute path)
+# then set -fuse-ld=$LD, MergeObjsCommand=$LD (not $(which ld))
+# else Reject with
+# "$LD is not compatible with $CC you chose. This means that $LD is either
+# an unsupported linker flavour or your $CC does not support absolute linker
+# paths"
+# else if --disable-ld-override is set or $target is macos
+# then if $CC accepts --ld-path=$(which ld)
+# then set --ld-path=$(which ld), set MergeObjsCommand=$(which ld)
+# else set *no* flag (equivalent to --fuse-ld=ld, if you will), set MergeObjsCommand=ld
+# else if $CC accepts --ld-path=$(which ld.lld)
+# then set --ld-path=$(which ld.lld), MergeObjsCommand=$(which ld.lld)
+# else if $CC accepts -fuse-ld=lld
+# then set -fuse-ld=lld, MergeObjsCommand=ld.lld
+# else set *no* flag (equivalent to --fuse-ld=ld), set MergeObjsCommand=ld
+#
+# $1 = the platform
+# $2 = the variable to set with GHC options to configure gcc to use the chosen linker
+#
+AC_DEFUN([BINDIST_DETERMINE_LINKER],[
+ AC_ARG_ENABLE(ld-override,
+ [AS_HELP_STRING([--disable-ld-override],
+ [Prevent GHC from overriding the default linker used by gcc. If ld-override is enabled GHC will try to tell gcc to use whichever linker is selected by the LD environment variable. [default=override enabled]])],
+ [],
+ [enable_ld_override=yes])
+
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_TARGET])
+
+ check_ld_path() {
+ AC_MSG_CHECKING([whether C compiler supports --ld-path=[$]1])
+ ld_path="[$]1"
+ echo 'int main(void) { return 0; }' > conftest.c
+ if $CC -o conftest.o "--ld-path=$ld_path" $LDFLAGS conftest.c > /dev/null 2>&1
+ then
+ AC_MSG_RESULT([yes])
+ ld_path_ok=yes
+ else
+ AC_MSG_RESULT([no])
+ ld_path_ok=no
+ fi
+ rm -f conftest.c conftest.o
+ }
+
+ check_fuse_ld() {
+ AC_MSG_CHECKING([whether C compiler supports -fuse-ld=[$]1])
+ ld="[$]1"
+ echo 'int main(void) {return 0;}' > conftest.c
+ if $CC -o conftest.o -fuse-ld=[$]1 $LDFLAGS conftest.c > /dev/null 2>&1
+ then
+ AC_MSG_RESULT([yes])
+ fuse_ld_ok=yes
+ else
+ AC_MSG_RESULT([no])
+ fuse_ld_ok=no
+ fi
+ rm -f conftest.c conftest.o
+ }
+
+ try_set_linker_to() {
+ AC_MSG_CHECKING([whether linker can be set to [$]1])
+ tmp_ld=[$]1
+ abs_path=`command -v "$tmp_ld" 2>/dev/null` # get absolute path of $tmp_ld if it isn't already one
+ ld_path_ok="no"
+ if test "z$abs_path" != "z" && check_ld_path "$abs_path" && test "x$ld_path_ok" = "xyes";
+ then $2="--ld-path=$abs_path"
+ AC_CHECK_TARGET_TOOL([LD], [$abs_path])
+ linker_set_successfully=yes
+ else # --ld-path does not work or $LD cannot be resolved to an absolute path
+ fuse_ld_ok=no
+ if check_fuse_ld "$tmp_ld" && test "x$fuse_ld_ok" = "xyes";
+ then $2="-fuse-ld=$tmp_ld"
+ AC_CHECK_TARGET_TOOL([LD], [$tmp_ld])
+ linker_set_successfully=yes
+ else AC_MSG_WARN(["$tmp_ld could not be set via either '--ld-path' or '-fuse-ld"])
+ linker_set_successfully=no
+ fi
+ fi
+ }
+
+ # we are lenient when $LD=ld and just act as if $LD wasn't set and
+ # enable-ld-override is off
+ if test "z$LD" != "z" && test "z$LD" != "zld";
+ then linker_set_successfully=no
+ try_set_linker_to "$LD"
+ if test "z$linker_set_successfully" != "zyes";
+ then AC_MSG_FAILURE([ $tmp_ld is an invalid linker. If your C compiler accepts the '--ld-path' flag,
+ \$LD can be either of an executable name that is in \$PATH *or* a path to an executable.
+ If your C compiler only supports the '--fuse-ld' flag, \$LD can only be one of the linker flavours supported
+ by it. Mind that if your C compiler supports '--ld-path', 'configure' will always prefer using an absolute path
+ to your linker as that is less error-prone.])
+ fi
+
+ else # $LD is not set -- we will do the ld-override non-sense
+ if test "x$enable_ld_override" = "xyes" && test "z$LD" != "zld" && case "$1" in
+ *-darwin) false ;; # don't do the ld override thing on macos
+ *) true ;;
+ esac;
+ then
+ AC_MSG_NOTICE(["enable ld override was set and no more specific linker was chosen by setting \$LD, trying to find best possible linker"])
+ try_set_linker_to "lld"
+ if test "z$linker_set_successfully" != "zyes";
+ then # ... bail out, just use ld in path
+ $2=""
+ AC_CHECK_TARGET_TOOL([LD], [ld])
+ fi
+ else # ld override is not set and $LD not set either
+ $2=""
+ AC_CHECK_TARGET_TOOL([LD], [ld])
+ fi
+ fi
+
+ AC_MSG_NOTICE([linker discovery set $2 set to $$2])
+
+ CHECK_LD_COPY_BUG([$1])
+])
=====================================
m4/find_merge_objects.m4
=====================================
@@ -22,7 +22,6 @@ AC_DEFUN([CHECK_MERGE_OBJECTS],[
])
AC_DEFUN([FIND_MERGE_OBJECTS],[
- AC_REQUIRE([FIND_LD])
if test -z ${MergeObjsCmd+x}; then
AC_MSG_NOTICE([Setting cmd])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b8774df10ffcb4c60992c2f7d172dd…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b8774df10ffcb4c60992c2f7d172dd…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0
[Git][ghc/ghc][wip/spj-reinstallable-base2] 10 commits: hadrian: fix HLS support
by Rodrigo Mesquita (@alt-romes) 15 Jul '26
by Rodrigo Mesquita (@alt-romes) 15 Jul '26
15 Jul '26
Rodrigo Mesquita pushed to branch wip/spj-reinstallable-base2 at Glasgow Haskell Compiler / GHC
Commits:
ed261a7e by Cheng Shao at 2026-07-14T17:59:38-04:00
hadrian: fix HLS support
This patch fixes hadrian's HLS support so one can rely on HLS when
working on the hadrian codebase. Fixes #27480.
Not building/linking shared libraries for hadrian is a severely
premature optimization; this top-level setting in `cabal.project` only
affects home packages while the dependencies in the cabal store are
built with vanilla/dynamic anyway, and even adding dynamic builds to
home packages would not be costly due to cabal's usage of
`-dynamic-too`.
- - - - -
eee8ec5b by Cheng Shao at 2026-07-14T18:00:20-04:00
compiler: fix miscompiled %load_relaxed, add missing %store_relaxed
This patch fixes the %load_relaxed cmm primop compilation logic to
correctly use relaxed memory ordering, and adds the missing
%store_relaxed primop. Parsing logic of %load/%store with explicit
ordering is covered in the AtomicFetch test case. Fixes #27483.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
1718230f by Alan Zimmerman at 2026-07-14T18:01:06-04:00
EPA: Keep binds and sigs together in HsValBindsLR
We combine them into a single list for GhcPs, wrapped in the
ValBind data type, which is the bind equivalent of ValD, having
constructors for binds and sigs.
This simplifies exact print processing, especially when using it to
update the contents of local binds, as we no longer need AnnSortKey
BindTag
- - - - -
6bd1ad2a by Andreas Klebinger at 2026-07-14T18:01:49-04:00
Bump nofib submodule to account for MonoLocalBinds.
New versions of GHC enable MonoLocalBinds by default.
This breaks some of the benchmarks. I've fixed this and
this bump pulls in that fix.
- - - - -
7eb0f1c9 by Cheng Shao at 2026-07-14T18:02:31-04:00
testsuite: fix bytecodeIPE test under +ipe flavours
This patch fixes the bytecodeIPE test under +ipe flavours. It used to
fail under +ipe because the RTS is built with IPE info, then
stg_AP_info in RTS carries IPE info, so whereFrom wouldn't return
Nothing. Now the test checks IPE info of a datacon in the ghci-loaded
module which is not affected by whether the RTS is built with IPE info
or not. Fixes #27498.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
ef038aae by cydparser at 2026-07-15T04:35:41-04:00
Reduce bytes allocated for `capabilities` in RTS (fixes #27487)
In rts/Capability.c, `capabilities` is an array of pointers, but it was allocated as if it were an
array of Capability's.
- - - - -
d377e83e by Cheng Shao at 2026-07-15T04:36:27-04:00
rts: fix missing UNTAG in stg_readTVarIOzh
This patch fixes missing UNTAG on the current value closure read from
StgTVar. UNTAG is a no-op when it's stg_TREC_HEADER_info which is word
aligned; it may be a tagged closure, and reading info table from the
tagged address is an unaligned load which may cause issues on
platforms with strict alignment requirements.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
8ed03842 by Cheng Shao at 2026-07-15T04:36:27-04:00
rts: fix missing UNTAG in stg_control0zh_ll
This patch fixes missing UNTAG on the cont closure returned by
captureContinuationAndAbort. In case it's not NULL,
captureContinuationAndAbort returns a tagged StgContinuation closure,
in which case it must be untagged before accessing the
apply_mask_frame field.
In the past it worked out of luck: when apply_mask_frame was NULL then
mask_frame_offset is also 0 so the control flow didn't diverge to a
wrong path. Still, this is horribly wrong and will crash once
StgContinuation struct is refactored and fields are shuffled around.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
5aa7000a by Cheng Shao at 2026-07-15T04:37:08-04:00
compiler: fix redundant AP thunk codegen when not using -ticky-ap-thunk
This patch fixes a double negation confusion in !7525 that results in
some redundant AP thunk code generation when not using
-ticky-ap-thunk. Now, we use `stgToCmmUseStdApThunk` to indicate
whether precomputed AP thunks in the RTS should be used, which
defaults to `True`, unless `-ticky-ap-thunk` is passed.
`-finfo-table-map` now also implies `-ticky-ap-thunk`, since when
doing IPE profiling we want the generated AP thunks to be unique.
Fixes #27502.
-------------------------
Metric Decrease:
T3064
-------------------------
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
b6342259 by Simon Peyton Jones at 2026-07-15T13:48:21+01:00
Major patch to re-engineer known-key names
This big patch implements the New Plan for known-key names,
described in #27013.
Read the big Note [Overview of known-key names] in GHC.Types.Name
Some things had to be reworked slightly to accomodate the new known-keys
design. A significant one was the generation of auxiliary KindRep
bindings, which was greatly simplified. Note [Grand plan for Typeable]
was updated accordingly. Another example: GHC.Internal.CString was
merged into GHC.Internal.Types.
Co-authored-by: Rodrigo Mesquita <rodrigo.m.mesquita(a)gmail.com>
The couple hundreds of hours spent here by Rodrigo were sponsored by Well-Typed
Metrics: compile_time/bytes allocated
-------------------------------------
Baseline
Test Metric value New value Change
------------------------------------------------------------------------------------------
MultiComponentModules100(normal) ghc/alloc 24,312,779,672 24,990,470,432 +2.8% BAD
MultiComponentModulesRecomp(normal) ghc/alloc 601,924,960 621,884,888 +3.3% BAD
MultiComponentModulesRecomp100(normal) ghc/alloc 11,884,065,432 12,531,373,704 +5.4% BAD
MultiLayerModules(normal) ghc/alloc 3,861,537,072 3,706,919,512 -4.0% GOOD
T13701(normal) ghc/alloc 3,517,246,392 3,237,179,616 -8.0% GOOD
T13820(normal) ghc/alloc 28,961,056 29,663,208 +2.4% BAD
T14697(normal) ghc/alloc 472,044,184 443,550,048 -6.0% GOOD
T18140(normal) ghc/alloc 47,905,664 49,115,808 +2.5% BAD
T4801(normal) ghc/alloc 269,339,096 263,432,040 -2.2% GOOD
T783(normal) ghc/alloc 341,112,672 333,339,952 -2.3% GOOD
hard_hole_fits(normal) ghc/alloc 222,164,728 213,433,808 -3.9% GOOD
mhu-perf(normal) ghc/alloc 49,011,440 46,706,280 -4.7% GOOD
geo. mean +0.1%
minimum -8.0%
maximum +5.4%
All performance regressions were investigated in depth. The surviving
ones:
- MultiComponentModules100, MultiComponentModulesRecomp100,
MultiComponentModulesRecomp regresses because existing bugs that make
an additional implicit edge do too much redundant work: #27053 and #27461
- T13820, T18140, T10547, T13035 regress because we load an additional
interface and associated Names for GHC.Essentials.
-------------------------
Metric Decrease:
MultiLayerModules
T13701
T14697
T26989
T4801
T783
hard_hole_fits
mhu-perf
size_hello_obj
Metric Increase:
LinkableUsage01
MultiComponentModules100
MultiComponentModulesRecomp
MultiComponentModulesRecomp100
T10547
T13035
T13820
T18140
T20049
-------------------------
- - - - -
761 changed files:
- + changelog.d/fix-cmm-atomic-load-store
- + changelog.d/fix-use-std-ap-thunk
- + changelog.d/refactor-known-names
- compiler/GHC.hs
- + compiler/GHC/Builtin.hs
- + compiler/GHC/Builtin/KnownKeys.hs
- + compiler/GHC/Builtin/KnownOccs.hs
- + compiler/GHC/Builtin/Modules.hs
- − compiler/GHC/Builtin/Names.hs
- − compiler/GHC/Builtin/Names/TH.hs
- compiler/GHC/Builtin/PrimOps.hs
- compiler/GHC/Builtin/PrimOps/Casts.hs
- compiler/GHC/Builtin/PrimOps/Ids.hs
- + compiler/GHC/Builtin/TH.hs
- compiler/GHC/Builtin/Uniques.hs
- compiler/GHC/Builtin/Uniques.hs-boot
- − compiler/GHC/Builtin/Utils.hs
- + compiler/GHC/Builtin/WiredIn/Ids.hs
- compiler/GHC/Builtin/Types/Prim.hs → compiler/GHC/Builtin/WiredIn/Prim.hs
- compiler/GHC/Builtin/Types/Literals.hs → compiler/GHC/Builtin/WiredIn/TypeLits.hs
- compiler/GHC/Builtin/Types.hs → compiler/GHC/Builtin/WiredIn/Types.hs
- compiler/GHC/Builtin/Types.hs-boot → compiler/GHC/Builtin/WiredIn/Types.hs-boot
- compiler/GHC/ByteCode/Asm.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Core.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/DataCon.hs
- compiler/GHC/Core/FVs.hs
- compiler/GHC/Core/FamInstEnv.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Make.hs
- compiler/GHC/Core/Multiplicity.hs
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/ConstantFold.hs
- compiler/GHC/Core/Opt/CprAnal.hs
- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Core/Opt/LiberateCase.hs
- compiler/GHC/Core/Opt/OccurAnal.hs
- compiler/GHC/Core/Opt/SetLevels.hs
- compiler/GHC/Core/Opt/Simplify/Env.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Core/Ppr.hs
- compiler/GHC/Core/Predicate.hs
- compiler/GHC/Core/Rules.hs
- compiler/GHC/Core/SimpleOpt.hs
- compiler/GHC/Core/Subst.hs
- compiler/GHC/Core/TyCo/FVs.hs
- compiler/GHC/Core/TyCo/Rep.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/Core/Type.hs
- compiler/GHC/Core/Unfold.hs
- compiler/GHC/Core/Unify.hs
- compiler/GHC/Core/Utils.hs
- compiler/GHC/CoreToIface.hs
- compiler/GHC/CoreToStg.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Driver/Backpack.hs
- compiler/GHC/Driver/Config/StgToCmm.hs
- compiler/GHC/Driver/Config/Tidy.hs
- compiler/GHC/Driver/Downsweep.hs
- compiler/GHC/Driver/DynFlags.hs
- compiler/GHC/Driver/Env.hs
- compiler/GHC/Driver/Env/KnotVars.hs
- compiler/GHC/Driver/Env/Types.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Main/Hsc.hs
- compiler/GHC/Driver/Main/Passes.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Driver/Plugins.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Binds.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Lit.hs
- compiler/GHC/Hs/Pat.hs
- compiler/GHC/Hs/Syn/Type.hs
- compiler/GHC/Hs/Type.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Arrows.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/HsToCore/Foreign/Call.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/Foreign/Utils.hs
- compiler/GHC/HsToCore/Foreign/Wasm.hs
- compiler/GHC/HsToCore/ListComp.hs
- compiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/Match/Literal.hs
- compiler/GHC/HsToCore/Monad.hs
- compiler/GHC/HsToCore/Pmc/Check.hs
- compiler/GHC/HsToCore/Pmc/Desugar.hs
- compiler/GHC/HsToCore/Pmc/Ppr.hs
- compiler/GHC/HsToCore/Pmc/Solver.hs
- compiler/GHC/HsToCore/Pmc/Solver/Types.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Ticks.hs
- compiler/GHC/HsToCore/Types.hs
- compiler/GHC/HsToCore/Utils.hs
- compiler/GHC/Iface/Binary.hs
- compiler/GHC/Iface/Env.hs
- − compiler/GHC/Iface/Env.hs-boot
- compiler/GHC/Iface/Errors/Ppr.hs
- compiler/GHC/Iface/Errors/Types.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Load.hs
- compiler/GHC/Iface/Make.hs
- compiler/GHC/Iface/Syntax.hs
- compiler/GHC/Iface/Tidy.hs
- compiler/GHC/Iface/Type.hs
- compiler/GHC/IfaceToCore.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/Annotation.hs
- compiler/GHC/Parser/Errors/Ppr.hs
- compiler/GHC/Parser/Header.hs
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Plugins.hs
- compiler/GHC/Rename/Bind.hs
- compiler/GHC/Rename/Env.hs
- compiler/GHC/Rename/Expr.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Rename/Lit.hs
- compiler/GHC/Rename/Module.hs
- compiler/GHC/Rename/Names.hs
- compiler/GHC/Rename/Pat.hs
- compiler/GHC/Rename/Splice.hs
- compiler/GHC/Rename/Unbound.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/Runtime/Context.hs
- compiler/GHC/Runtime/Debugger.hs
- compiler/GHC/Runtime/Eval.hs
- compiler/GHC/Runtime/Heap/Inspect.hs
- compiler/GHC/Runtime/Interpreter.hs
- compiler/GHC/Runtime/Loader.hs
- compiler/GHC/Stg/BcPrep.hs
- compiler/GHC/Stg/Unarise.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/Bind.hs
- compiler/GHC/StgToCmm/Config.hs
- compiler/GHC/StgToCmm/DataCon.hs
- compiler/GHC/StgToCmm/Env.hs
- compiler/GHC/StgToCmm/Foreign.hs
- compiler/GHC/StgToCmm/Lit.hs
- compiler/GHC/StgToCmm/Ticky.hs
- compiler/GHC/StgToJS/Apply.hs
- compiler/GHC/StgToJS/Arg.hs
- compiler/GHC/StgToJS/Expr.hs
- compiler/GHC/StgToJS/FFI.hs
- compiler/GHC/StgToJS/Linker/Utils.hs
- compiler/GHC/StgToJS/Utils.hs
- compiler/GHC/Tc/Deriv.hs
- compiler/GHC/Tc/Deriv/Functor.hs
- compiler/GHC/Tc/Deriv/Generate.hs
- compiler/GHC/Tc/Deriv/Generics.hs
- compiler/GHC/Tc/Deriv/Infer.hs
- compiler/GHC/Tc/Deriv/Utils.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Errors/Hole.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Gen/App.hs
- compiler/GHC/Tc/Gen/Arrow.hs
- compiler/GHC/Tc/Gen/Bind.hs
- compiler/GHC/Tc/Gen/Default.hs
- compiler/GHC/Tc/Gen/Export.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Foreign.hs
- compiler/GHC/Tc/Gen/Head.hs
- compiler/GHC/Tc/Gen/HsType.hs
- compiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Gen/Pat.hs
- compiler/GHC/Tc/Gen/Sig.hs
- compiler/GHC/Tc/Gen/Splice.hs
- compiler/GHC/Tc/Instance/Class.hs
- compiler/GHC/Tc/Instance/FunDeps.hs
- compiler/GHC/Tc/Instance/Typeable.hs
- compiler/GHC/Tc/Module.hs
- compiler/GHC/Tc/Solver.hs
- compiler/GHC/Tc/Solver/Default.hs
- compiler/GHC/Tc/Solver/Dict.hs
- compiler/GHC/Tc/Solver/FunDeps.hs
- compiler/GHC/Tc/Solver/InertSet.hs
- compiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/Solver/Rewrite.hs
- compiler/GHC/Tc/TyCl.hs
- compiler/GHC/Tc/TyCl/Build.hs
- compiler/GHC/Tc/TyCl/Instance.hs
- compiler/GHC/Tc/TyCl/PatSyn.hs
- compiler/GHC/Tc/TyCl/Utils.hs
- compiler/GHC/Tc/Types.hs
- compiler/GHC/Tc/Types/Constraint.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Types/LclEnv.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Utils/Backpack.hs
- compiler/GHC/Tc/Utils/Concrete.hs
- compiler/GHC/Tc/Utils/Env.hs
- compiler/GHC/Tc/Utils/Instantiate.hs
- compiler/GHC/Tc/Utils/Monad.hs
- compiler/GHC/Tc/Utils/TcMType.hs
- compiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Utils/Unify.hs
- compiler/GHC/Tc/Validity.hs
- compiler/GHC/Tc/Zonk/Type.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Types/DefaultEnv.hs
- compiler/GHC/Types/Error/Codes.hs
- compiler/GHC/Types/Hint.hs
- compiler/GHC/Types/Hint/Ppr.hs
- compiler/GHC/Types/Id/Make.hs
- compiler/GHC/Types/Literal.hs
- compiler/GHC/Types/Name.hs
- compiler/GHC/Types/Name/Cache.hs
- compiler/GHC/Types/Name/Ppr.hs
- compiler/GHC/Types/Name/Reader.hs
- compiler/GHC/Types/RepType.hs
- compiler/GHC/Types/TyThing.hs
- compiler/GHC/Types/Unique.hs
- compiler/GHC/Types/Unique/FM.hs
- compiler/GHC/Types/Var.hs
- compiler/GHC/Unit.hs
- compiler/GHC/Unit/External.hs
- compiler/GHC/Unit/Module/Deps.hs
- compiler/GHC/Unit/Module/ModSummary.hs
- compiler/GHC/Unit/State.hs
- compiler/GHC/Unit/Types.hs
- compiler/GHC/Utils/Binary.hs
- − compiler/GHC/Utils/Binary/Typeable.hs
- compiler/Language/Haskell/Syntax/Binds.hs
- compiler/Language/Haskell/Syntax/Expr.hs
- compiler/Language/Haskell/Syntax/Extension.hs
- compiler/ghc.cabal.in
- docs/users_guide/separate_compilation.rst
- ghc/GHCi/UI.hs
- ghc/GHCi/UI/Monad.hs
- hadrian/cabal.project
- libraries/base/base.cabal.in
- libraries/base/src/Control/Applicative.hs
- libraries/base/src/Control/Concurrent.hs
- libraries/base/src/Control/Concurrent/Chan.hs
- libraries/base/src/Control/Concurrent/QSem.hs
- libraries/base/src/Control/Concurrent/QSemN.hs
- libraries/base/src/Data/Array/Byte.hs
- libraries/base/src/Data/Bifoldable.hs
- libraries/base/src/Data/Bifoldable1.hs
- libraries/base/src/Data/Bifunctor.hs
- libraries/base/src/Data/Bitraversable.hs
- libraries/base/src/Data/Bool.hs
- libraries/base/src/Data/Complex.hs
- libraries/base/src/Data/Data.hs
- libraries/base/src/Data/Enum.hs
- libraries/base/src/Data/Fixed.hs
- libraries/base/src/Data/Foldable1.hs
- libraries/base/src/Data/Functor/Classes.hs
- libraries/base/src/Data/Functor/Compose.hs
- libraries/base/src/Data/Functor/Contravariant.hs
- libraries/base/src/Data/Functor/Product.hs
- libraries/base/src/Data/Functor/Sum.hs
- libraries/base/src/Data/List.hs
- libraries/base/src/Data/List/NonEmpty.hs
- libraries/base/src/Data/List/NubOrdSet.hs
- libraries/base/src/Data/Semigroup.hs
- libraries/base/src/Data/Version.hs
- libraries/base/src/GHC/Base.hs
- libraries/base/src/GHC/ByteOrder.hs
- + libraries/base/src/GHC/Essentials.hs
- libraries/base/src/GHC/Exts.hs
- libraries/base/src/GHC/Fingerprint.hs
- libraries/base/src/GHC/RTS/Flags.hs
- libraries/base/src/GHC/ResponseFile.hs
- libraries/base/src/GHC/Stats.hs
- libraries/base/src/GHC/Weak/Finalize.hs
- libraries/base/src/Numeric.hs
- libraries/base/src/Prelude.hs
- libraries/base/src/System/CPUTime/Posix/ClockGetTime.hsc
- libraries/base/src/System/CPUTime/Posix/RUsage.hsc
- libraries/base/src/System/CPUTime/Unsupported.hs
- libraries/base/src/System/Console/GetOpt.hs
- libraries/base/src/System/Exit.hs
- libraries/base/src/System/IO.hs
- libraries/base/src/System/IO/OS.hs
- libraries/base/src/System/IO/Unsafe.hs
- libraries/base/src/System/Info.hs
- libraries/base/src/System/Timeout.hs
- libraries/base/src/Text/Printf.hs
- libraries/base/src/Text/Read.hs
- libraries/base/src/Text/Show/Functions.hs
- libraries/binary
- libraries/ghc-experimental/src/Data/Sum/Experimental.hs
- libraries/ghc-experimental/src/Data/Tuple/Experimental.hs
- libraries/ghc-experimental/src/GHC/Profiling/Eras.hs
- libraries/ghc-experimental/src/Prelude/Experimental.hs
- libraries/ghc-internal/codepages/MakeTable.hs
- libraries/ghc-internal/ghc-internal.cabal.in
- libraries/ghc-internal/include/RtsIfaceSymbols.h
- libraries/ghc-internal/src/GHC/Internal/AllocationLimitHandler.hs
- libraries/ghc-internal/src/GHC/Internal/Arr.hs
- libraries/ghc-internal/src/GHC/Internal/ArrayArray.hs
- libraries/ghc-internal/src/GHC/Internal/Base.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/Backend.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/Backend/GMP.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/Backend/Native.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/BigNat.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/BigNat.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Bignum/Integer.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/Integer.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Bignum/Natural.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/Natural.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Bignum/Primitives.hs
- libraries/ghc-internal/src/GHC/Internal/Bignum/WordArray.hs
- libraries/ghc-internal/src/GHC/Internal/Bits.hs
- libraries/ghc-internal/src/GHC/Internal/ByteOrder.hs
- libraries/ghc-internal/src/GHC/Internal/CString.hs
- libraries/ghc-internal/src/GHC/Internal/Char.hs
- libraries/ghc-internal/src/GHC/Internal/Classes.hs
- libraries/ghc-internal/src/GHC/Internal/Classes/IP.hs
- libraries/ghc-internal/src/GHC/Internal/Clock.hsc
- libraries/ghc-internal/src/GHC/Internal/ClosureTypes.hs
- libraries/ghc-internal/src/GHC/Internal/Conc/Bound.hs
- libraries/ghc-internal/src/GHC/Internal/Conc/IO.hs
- libraries/ghc-internal/src/GHC/Internal/Conc/POSIX.hs
- libraries/ghc-internal/src/GHC/Internal/Conc/POSIX/Const.hsc
- libraries/ghc-internal/src/GHC/Internal/Conc/Signal.hs
- libraries/ghc-internal/src/GHC/Internal/Conc/Sync.hs
- libraries/ghc-internal/src/GHC/Internal/ConsoleHandler.hsc
- libraries/ghc-internal/src/GHC/Internal/Control/Arrow.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Category.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Concurrent/MVar.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Exception.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Exception/Base.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/Fail.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/Fix.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/IO/Class.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/ST.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/ST/Imp.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/ST/Lazy.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/ST/Lazy/Imp.hs
- libraries/ghc-internal/src/GHC/Internal/Control/Monad/Zip.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Bits.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Coerce.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Data.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Dynamic.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Either.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Function.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Functor.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Functor/Const.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Functor/Identity.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Functor/Utils.hs
- libraries/ghc-internal/src/GHC/Internal/Data/IORef.hs
- libraries/ghc-internal/src/GHC/Internal/Data/List.hs
- libraries/ghc-internal/src/GHC/Internal/Data/List/NonEmpty.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Maybe.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Monoid.hs
- libraries/ghc-internal/src/GHC/Internal/Data/NonEmpty.hs
- libraries/ghc-internal/src/GHC/Internal/Data/OldList.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Ord.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Proxy.hs
- libraries/ghc-internal/src/GHC/Internal/Data/STRef.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Semigroup/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/Data/String.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Traversable.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Tuple.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Bool.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Coercion.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Equality.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Type/Ord.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Typeable.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Typeable/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Unique.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Version.hs
- libraries/ghc-internal/src/GHC/Internal/Data/Void.hs
- libraries/ghc-internal/src/GHC/Internal/Debug/Trace.hs
- libraries/ghc-internal/src/GHC/Internal/Desugar.hs
- libraries/ghc-internal/src/GHC/Internal/Encoding/UTF8.hs
- libraries/ghc-internal/src/GHC/Internal/Enum.hs
- libraries/ghc-internal/src/GHC/Internal/Enum.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Environment.hs
- libraries/ghc-internal/src/GHC/Internal/Err.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Arr.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Array.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Control.hs
- libraries/ghc-internal/src/GHC/Internal/Event/EPoll.hsc
- libraries/ghc-internal/src/GHC/Internal/Event/IntTable.hs
- libraries/ghc-internal/src/GHC/Internal/Event/IntVar.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Internal/Types.hs
- libraries/ghc-internal/src/GHC/Internal/Event/KQueue.hsc
- libraries/ghc-internal/src/GHC/Internal/Event/Manager.hs
- libraries/ghc-internal/src/GHC/Internal/Event/PSQ.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Poll.hsc
- libraries/ghc-internal/src/GHC/Internal/Event/Thread.hs
- libraries/ghc-internal/src/GHC/Internal/Event/TimeOut.hs
- libraries/ghc-internal/src/GHC/Internal/Event/TimerManager.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Unique.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Windows.hsc
- libraries/ghc-internal/src/GHC/Internal/Event/Windows/Clock.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Windows/ConsoleEvent.hsc
- libraries/ghc-internal/src/GHC/Internal/Event/Windows/FFI.hsc
- libraries/ghc-internal/src/GHC/Internal/Event/Windows/ManagedThreadPool.hs
- libraries/ghc-internal/src/GHC/Internal/Event/Windows/Thread.hs
- libraries/ghc-internal/src/GHC/Internal/Exception.hs
- libraries/ghc-internal/src/GHC/Internal/Exception/Backtrace.hs
- libraries/ghc-internal/src/GHC/Internal/Exception/Backtrace.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Exception/Context.hs
- libraries/ghc-internal/src/GHC/Internal/Exception/Context.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Exception/Type.hs
- libraries/ghc-internal/src/GHC/Internal/Exception/Type.hs-boot
- libraries/ghc-internal/src/GHC/Internal/ExecutionStack.hs
- libraries/ghc-internal/src/GHC/Internal/ExecutionStack/Internal.hsc
- libraries/ghc-internal/src/GHC/Internal/Exts.hs
- libraries/ghc-internal/src/GHC/Internal/Fingerprint.hs
- libraries/ghc-internal/src/GHC/Internal/Fingerprint/Type.hs
- libraries/ghc-internal/src/GHC/Internal/Float.hs
- libraries/ghc-internal/src/GHC/Internal/Float/ConversionUtils.hs
- libraries/ghc-internal/src/GHC/Internal/Float/RealFracMethods.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/C/ConstPtr.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/C/Error.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/C/String.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/C/String/Encoding.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/C/Types.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/ForeignPtr/Imp.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/Marshal/Alloc.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/Marshal/Array.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/Marshal/Error.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/Marshal/Pool.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/Marshal/Utils.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/Ptr.hs
- libraries/ghc-internal/src/GHC/Internal/Foreign/Storable.hs
- libraries/ghc-internal/src/GHC/Internal/ForeignPtr.hs
- libraries/ghc-internal/src/GHC/Internal/ForeignSrcLang.hs
- libraries/ghc-internal/src/GHC/Internal/Functor/ZipList.hs
- libraries/ghc-internal/src/GHC/Internal/GHCi.hs
- libraries/ghc-internal/src/GHC/Internal/GHCi/Helpers.hs
- libraries/ghc-internal/src/GHC/Internal/Generics.hs
- libraries/ghc-internal/src/GHC/Internal/Heap/Closures.hs
- libraries/ghc-internal/src/GHC/Internal/Heap/Constants.hsc
- libraries/ghc-internal/src/GHC/Internal/Heap/InfoTable.hsc
- libraries/ghc-internal/src/GHC/Internal/Heap/InfoTable/Types.hsc
- libraries/ghc-internal/src/GHC/Internal/Heap/InfoTableProf.hsc
- libraries/ghc-internal/src/GHC/Internal/Heap/ProfInfo/Types.hs
- libraries/ghc-internal/src/GHC/Internal/IO.hs
- libraries/ghc-internal/src/GHC/Internal/IO.hs-boot
- libraries/ghc-internal/src/GHC/Internal/IO/Buffer.hs
- libraries/ghc-internal/src/GHC/Internal/IO/BufferedIO.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Device.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/CodePage.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/CodePage/API.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/CodePage/Table.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/Failure.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/Iconv.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/Latin1.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/Types.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/UTF16.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/UTF32.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Encoding/UTF8.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Exception.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Exception.hs-boot
- libraries/ghc-internal/src/GHC/Internal/IO/FD.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/FD.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Internals.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Lock.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Lock/Common.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Lock/Flock.hsc
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Lock/LinuxOFD.hsc
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Lock/NoOp.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Lock/Windows.hsc
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Text.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Types.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Types.hs-boot
- libraries/ghc-internal/src/GHC/Internal/IO/Handle/Windows.hs
- libraries/ghc-internal/src/GHC/Internal/IO/IOMode.hs
- libraries/ghc-internal/src/GHC/Internal/IO/SubSystem.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Unsafe.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Windows/Encoding.hs
- libraries/ghc-internal/src/GHC/Internal/IO/Windows/Handle.hsc
- libraries/ghc-internal/src/GHC/Internal/IOArray.hs
- libraries/ghc-internal/src/GHC/Internal/IORef.hs
- libraries/ghc-internal/src/GHC/Internal/InfoProv.hs
- libraries/ghc-internal/src/GHC/Internal/InfoProv/Types.hsc
- libraries/ghc-internal/src/GHC/Internal/Int.hs
- libraries/ghc-internal/src/GHC/Internal/IsList.hs
- libraries/ghc-internal/src/GHC/Internal/Ix.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Foreign/Callback.hs
- libraries/ghc-internal/src/GHC/Internal/JS/Prim.hs
- libraries/ghc-internal/src/GHC/Internal/LanguageExtensions.hs
- libraries/ghc-internal/src/GHC/Internal/Lexeme.hs
- libraries/ghc-internal/src/GHC/Internal/List.hs
- libraries/ghc-internal/src/GHC/Internal/MVar.hs
- libraries/ghc-internal/src/GHC/Internal/Magic.hs
- libraries/ghc-internal/src/GHC/Internal/Magic/Dict.hs
- libraries/ghc-internal/src/GHC/Internal/Maybe.hs
- libraries/ghc-internal/src/GHC/Internal/Num.hs
- libraries/ghc-internal/src/GHC/Internal/Num.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Numeric.hs
- libraries/ghc-internal/src/GHC/Internal/OverloadedLabels.hs
- libraries/ghc-internal/src/GHC/Internal/Pack.hs
- libraries/ghc-internal/src/GHC/Internal/Prim/Exception.hs
- libraries/ghc-internal/src/GHC/Internal/Prim/Ext.hs
- libraries/ghc-internal/src/GHC/Internal/Prim/Panic.hs
- libraries/ghc-internal/src/GHC/Internal/Prim/PtrEq.hs
- libraries/ghc-internal/src/GHC/Internal/Profiling.hs
- libraries/ghc-internal/src/GHC/Internal/Ptr.hs
- libraries/ghc-internal/src/GHC/Internal/RTS/Flags.hsc
- libraries/ghc-internal/src/GHC/Internal/RTS/Flags/Test.hsc
- libraries/ghc-internal/src/GHC/Internal/Read.hs
- libraries/ghc-internal/src/GHC/Internal/Real.hs
- libraries/ghc-internal/src/GHC/Internal/Real.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Records.hs
- libraries/ghc-internal/src/GHC/Internal/ST.hs
- libraries/ghc-internal/src/GHC/Internal/STM.hs
- libraries/ghc-internal/src/GHC/Internal/STRef.hs
- libraries/ghc-internal/src/GHC/Internal/Show.hs
- libraries/ghc-internal/src/GHC/Internal/Stable.hs
- libraries/ghc-internal/src/GHC/Internal/StableName.hs
- libraries/ghc-internal/src/GHC/Internal/Stack.hs
- libraries/ghc-internal/src/GHC/Internal/Stack.hs-boot
- libraries/ghc-internal/src/GHC/Internal/Stack/Annotation.hs
- libraries/ghc-internal/src/GHC/Internal/Stack/CCS.hsc
- libraries/ghc-internal/src/GHC/Internal/Stack/CloneStack.hs
- libraries/ghc-internal/src/GHC/Internal/Stack/Constants.hsc
- libraries/ghc-internal/src/GHC/Internal/Stack/ConstantsProf.hsc
- libraries/ghc-internal/src/GHC/Internal/Stack/Decode.hs
- libraries/ghc-internal/src/GHC/Internal/Stack/Types.hs
- libraries/ghc-internal/src/GHC/Internal/StaticPtr.hs
- libraries/ghc-internal/src/GHC/Internal/StaticPtr/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/Stats.hsc
- libraries/ghc-internal/src/GHC/Internal/Storable.hs
- libraries/ghc-internal/src/GHC/Internal/System/Environment.hs
- libraries/ghc-internal/src/GHC/Internal/System/Environment/Blank.hsc
- libraries/ghc-internal/src/GHC/Internal/System/Environment/ExecutablePath.hsc
- libraries/ghc-internal/src/GHC/Internal/System/IO/Error.hs
- libraries/ghc-internal/src/GHC/Internal/System/Mem.hs
- libraries/ghc-internal/src/GHC/Internal/System/Posix/Internals.hs
- libraries/ghc-internal/src/GHC/Internal/System/Posix/Types.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lib.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Monad.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Syntax.hs
- libraries/ghc-internal/src/GHC/Internal/Text/ParserCombinators/ReadP.hs
- libraries/ghc-internal/src/GHC/Internal/Text/ParserCombinators/ReadPrec.hs
- libraries/ghc-internal/src/GHC/Internal/Text/Read/Lex.hs
- libraries/ghc-internal/src/GHC/Internal/TopHandler.hs
- libraries/ghc-internal/src/GHC/Internal/Tuple.hs
- libraries/ghc-internal/src/GHC/Internal/Type/Reflection.hs
- libraries/ghc-internal/src/GHC/Internal/Type/Reflection/Unsafe.hs
- libraries/ghc-internal/src/GHC/Internal/TypeError.hs
- libraries/ghc-internal/src/GHC/Internal/TypeLits.hs
- libraries/ghc-internal/src/GHC/Internal/TypeLits/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/TypeNats.hs
- libraries/ghc-internal/src/GHC/Internal/TypeNats/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/Types.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Bits.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Char/DerivedCoreProperties.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Char/UnicodeData/GeneralCategory.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Char/UnicodeData/SimpleLowerCaseMapping.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Char/UnicodeData/SimpleTitleCaseMapping.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Char/UnicodeData/SimpleUpperCaseMapping.hs
- libraries/ghc-internal/src/GHC/Internal/Unicode/Version.hs
- libraries/ghc-internal/src/GHC/Internal/Unsafe/Coerce.hs
- libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Conc.hs
- libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Conc/Internal.hs
- libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Imports.hs
- libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Types.hs
- libraries/ghc-internal/src/GHC/Internal/Weak.hs
- libraries/ghc-internal/src/GHC/Internal/Weak/Finalize.hs
- libraries/ghc-internal/src/GHC/Internal/Windows.hs
- libraries/ghc-internal/src/GHC/Internal/Word.hs
- libraries/ghc-internal/tools/ucd2haskell/exe/UCD2Haskell/ModuleGenerators.hs
- libraries/ghc-prim/Dummy.hs
- libraries/ghc-prim/ghc-prim.cabal
- libraries/template-haskell/Language/Haskell/TH/Lib.hs
- nofib
- rts/Capability.c
- rts/ContinuationOps.cmm
- rts/PrimOps.cmm
- rts/include/rts/RtsToHsIface.h
- testsuite/tests/ado/T13242a.stderr
- testsuite/tests/annotations/should_fail/annfail10.stderr
- testsuite/tests/backpack/cabal/bkpcabal07/Makefile
- testsuite/tests/backpack/should_compile/T20396.stderr
- testsuite/tests/backpack/should_fail/bkpfail17.stderr
- testsuite/tests/cabal/T12485/Makefile
- + testsuite/tests/cabal/T27013a/Makefile
- + testsuite/tests/cabal/T27013a/Setup.hs
- + testsuite/tests/cabal/T27013a/all.T
- + testsuite/tests/cabal/T27013a/composition.cabal
- + testsuite/tests/cabal/T27013a/src/Data/Composition.hs
- + testsuite/tests/cabal/T27013d/Composition.hs
- + testsuite/tests/cabal/T27013d/Makefile
- + testsuite/tests/cabal/T27013d/T27013d.stdout
- + testsuite/tests/cabal/T27013d/all.T
- testsuite/tests/callarity/unittest/CallArity1.hs
- testsuite/tests/cmm/should_run/AtomicFetch.hs
- testsuite/tests/cmm/should_run/AtomicFetch_cmm.cmm
- testsuite/tests/corelint/LintEtaExpand.hs
- testsuite/tests/corelint/T21115b.stderr
- testsuite/tests/count-deps/CountDepsParser.stdout
- testsuite/tests/deSugar/should_compile/T13208.stdout
- testsuite/tests/deSugar/should_compile/T16615.stderr
- testsuite/tests/deSugar/should_compile/T2431.stderr
- testsuite/tests/default/DefaultImportFail01.stderr
- testsuite/tests/default/DefaultImportFail02.stderr
- testsuite/tests/default/DefaultImportFail03.stderr
- testsuite/tests/default/DefaultImportFail04.stderr
- testsuite/tests/default/DefaultImportFail05.stderr
- testsuite/tests/default/DefaultImportFail07.stderr
- testsuite/tests/default/T25775.stderr
- testsuite/tests/deriving/should_compile/T14682.stderr
- testsuite/tests/deriving/should_compile/T20496.stderr
- testsuite/tests/diagnostic-codes/codes.stdout
- + testsuite/tests/driver/T27013b/Makefile
- + testsuite/tests/driver/T27013b/T27013b.stdout
- + testsuite/tests/driver/T27013b/X.hs
- + testsuite/tests/driver/T27013b/all.T
- + testsuite/tests/driver/T27013c/Makefile
- + testsuite/tests/driver/T27013c/T27013c.stdout
- + testsuite/tests/driver/T27013c/X.hs
- + testsuite/tests/driver/T27013c/all.T
- + testsuite/tests/driver/T27013e/T27013e.hs
- + testsuite/tests/driver/T27013e/T27013e.stderr
- + testsuite/tests/driver/T27013e/all.T
- + testsuite/tests/driver/T27013f/T27013f.hs
- + testsuite/tests/driver/T27013f/T27013f.stderr
- + testsuite/tests/driver/T27013f/all.T
- testsuite/tests/driver/T3007/A/Internal.hs
- testsuite/tests/driver/T3007/Makefile
- testsuite/tests/driver/make-prim/Makefile
- testsuite/tests/driver/recomp24656/Makefile
- testsuite/tests/driver/recomp24656/recomp24656.stdout
- testsuite/tests/ghc-api/T8628.hs
- testsuite/tests/ghc-api/downsweep/PartialDownsweep.hs
- testsuite/tests/ghci.debugger/scripts/break006.stderr
- testsuite/tests/ghci.debugger/scripts/print019.stderr
- testsuite/tests/ghci/scripts/all.T
- testsuite/tests/ghci/scripts/bytecodeIPE.hs
- testsuite/tests/hiefile/should_run/T23120.stdout
- testsuite/tests/iface/IfaceSharingIfaceType.hs
- testsuite/tests/iface/IfaceSharingName.hs
- testsuite/tests/indexed-types/should_fail/T12522a.stderr
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
- testsuite/tests/interface-stability/ghc-experimental-exports.stdout
- testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32
- testsuite/tests/interface-stability/ghc-prim-exports.stdout
- testsuite/tests/interface-stability/ghc-prim-exports.stdout-mingw32
- testsuite/tests/interface-stability/template-haskell-exports.stdout
- testsuite/tests/javascript/T24495.hs
- testsuite/tests/numeric/should_compile/T14170.stdout
- testsuite/tests/numeric/should_compile/T14465.stdout
- testsuite/tests/numeric/should_compile/T7116.stdout
- testsuite/tests/overloadedlists/should_fail/overloadedlistsfail01.stderr
- testsuite/tests/package/all.T
- testsuite/tests/parser/should_compile/DumpParsedAst.stderr
- testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
- testsuite/tests/parser/should_compile/DumpSemis.stderr
- testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr
- testsuite/tests/parser/should_compile/KindSigs.stderr
- testsuite/tests/parser/should_fail/RecordDotSyntaxFail10.stderr
- testsuite/tests/parser/should_fail/RecordDotSyntaxFail11.stderr
- testsuite/tests/parser/should_fail/RecordDotSyntaxFail13.stderr
- testsuite/tests/parser/should_fail/RecordDotSyntaxFail8.stderr
- testsuite/tests/parser/should_fail/T16270h.hs
- testsuite/tests/partial-sigs/should_fail/NamedWildcardsNotInMonotype.stderr
- testsuite/tests/patsyn/should_fail/T26465.stderr
- testsuite/tests/perf/should_run/ByteCodeAsm.hs
- testsuite/tests/plugins/defaulting-plugin/DefaultInterference.hs
- testsuite/tests/plugins/defaulting-plugin/DefaultInvalid.hs
- testsuite/tests/plugins/defaulting-plugin/DefaultMultiParam.hs
- testsuite/tests/plugins/plugins10.stdout
- testsuite/tests/plugins/simple-plugin/Simple/ReplacePlugin.hs
- testsuite/tests/plugins/static-plugins.stdout
- testsuite/tests/printer/Test20297.stdout
- testsuite/tests/profiling/should_run/callstack001.stdout
- testsuite/tests/profiling/should_run/callstack002.stderr
- testsuite/tests/profiling/should_run/callstack002.stdout
- testsuite/tests/rename/should_compile/T3103/Foreign/Ptr.hs
- testsuite/tests/rename/should_compile/T3103/GHC/Base.lhs
- testsuite/tests/rename/should_compile/T3103/GHC/Word.hs
- testsuite/tests/rename/should_compile/T3103/test.T
- testsuite/tests/roles/should_compile/Roles1.stderr
- testsuite/tests/roles/should_compile/Roles13.stderr
- testsuite/tests/roles/should_compile/Roles14.stderr
- testsuite/tests/roles/should_compile/Roles2.stderr
- testsuite/tests/roles/should_compile/Roles3.stderr
- testsuite/tests/roles/should_compile/Roles4.stderr
- testsuite/tests/roles/should_compile/T8958.stderr
- testsuite/tests/simplCore/should_compile/OpaqueNoCastWW.stderr
- testsuite/tests/simplCore/should_compile/T13543.stderr
- testsuite/tests/simplCore/should_compile/T16038/T16038.stdout
- testsuite/tests/simplCore/should_compile/T3717.stderr
- testsuite/tests/simplCore/should_compile/T3772.stdout
- testsuite/tests/simplCore/should_compile/T4908.stderr
- testsuite/tests/simplCore/should_compile/T4930.stderr
- testsuite/tests/simplCore/should_compile/T7360.stderr
- testsuite/tests/simplCore/should_compile/T8274.stdout
- testsuite/tests/simplCore/should_compile/T9400.stderr
- testsuite/tests/simplCore/should_compile/noinline01.stderr
- testsuite/tests/simplCore/should_compile/par01.stderr
- testsuite/tests/simplCore/should_compile/rule2.stderr
- testsuite/tests/simplCore/should_compile/str-rules.hs
- testsuite/tests/tcplugins/ArgsPlugin.hs
- testsuite/tests/tcplugins/EmitWantedPlugin.hs
- testsuite/tests/tcplugins/RewritePlugin.hs
- testsuite/tests/tcplugins/T26395_Plugin.hs
- testsuite/tests/tcplugins/TyFamPlugin.hs
- testsuite/tests/th/T14741.hs
- testsuite/tests/th/T21547.stderr
- testsuite/tests/th/T26568.stderr
- testsuite/tests/th/TH_Roles2.stderr
- + testsuite/tests/th/TH_pragmaSpecOld.hs
- + testsuite/tests/th/TH_pragmaSpecOld.stderr
- testsuite/tests/th/all.T
- testsuite/tests/typecheck/should_compile/T13032.stderr
- testsuite/tests/typecheck/should_compile/T14273.stderr
- testsuite/tests/typecheck/should_compile/T18406b.stderr
- testsuite/tests/typecheck/should_compile/T18529.stderr
- testsuite/tests/typecheck/should_compile/holes.stderr
- testsuite/tests/typecheck/should_compile/holes2.stderr
- testsuite/tests/typecheck/should_compile/holes3.stderr
- testsuite/tests/typecheck/should_compile/subsumption_sort_hole_fits.stderr
- testsuite/tests/typecheck/should_compile/valid_hole_fits.stderr
- testsuite/tests/typecheck/should_fail/T12921.stderr
- testsuite/tests/typecheck/should_fail/T14884.stderr
- testsuite/tests/typecheck/should_fail/T15883b.stderr
- testsuite/tests/typecheck/should_fail/T15883c.stderr
- testsuite/tests/typecheck/should_fail/T15883d.stderr
- testsuite/tests/typecheck/should_fail/T21130.stderr
- testsuite/tests/typecheck/should_fail/T3323.stderr
- testsuite/tests/typecheck/should_fail/T5095.stderr
- testsuite/tests/typecheck/should_fail/T7279.stderr
- testsuite/tests/typecheck/should_fail/TcStaticPointersFail02.stderr
- testsuite/tests/typecheck/should_fail/TyAppPat_PatternBindingExistential.stderr
- testsuite/tests/typecheck/should_fail/tcfail072.stderr
- testsuite/tests/typecheck/should_fail/tcfail097.stderr
- testsuite/tests/typecheck/should_fail/tcfail133.stderr
- testsuite/tests/typecheck/should_run/T22510.stdout
- testsuite/tests/unboxedsums/UbxSumLevPoly.hs
- testsuite/tests/unboxedsums/unboxedsums_unit_tests.hs
- testsuite/tests/warnings/should_compile/DerivingTypeable.stderr
- utils/check-exact/ExactPrint.hs
- utils/check-exact/Main.hs
- utils/check-exact/Transform.hs
- utils/check-exact/Utils.hs
- utils/genprimopcode/Main.hs
- utils/haddock/haddock-api/src/Haddock/Convert.hs
- utils/haddock/haddock-api/src/Haddock/GhcUtils.hs
- utils/haddock/haddock-api/src/Haddock/Interface.hs
- utils/haddock/haddock-api/src/Haddock/Interface/AttachInstances.hs
- utils/haddock/haddock-api/src/Haddock/Interface/Create.hs
- utils/haddock/haddock-api/src/Haddock/Interface/Rename.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/8e2e58972c7a857fbc4a91f028f7ba…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/8e2e58972c7a857fbc4a91f028f7ba…
You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
1
0