-
505b57cf
by Apoorv Ingle at 2026-03-09T16:27:08-05:00
Work for #25001
Notes added [Error Context Stack] [Typechecking by expansion: overview]
Notes updated Note [Expanding HsDo with XXExprGhcRn]
-------------------------
Metric Decrease:
T9020
-------------------------
* Streamlines implementations of `tcExpr` and `tcXExpr` to work on `XExpr`
* Kills `VACtxt` (and its associated `VAExpansion` and `VACall`) datatype, it is subsumed by simply a `SrcSpan`.
* Kills the function `addHeadCtxt` as it is now mearly setting a location
* The function `tcValArgs` does its own argument number management
* Makes `splitHsApps` not look through `XExpr`
* `tcExprSigma` is called if the head of the expression after calling `splitHsApps` turns out to be an `XExpr`
* Removes location information from `OrigPat` payload
* Removes special case of tcBody from `tcLambdaMatches`
* Removes special case of `dsExpr` for `ExpandedThingTc`
* Rename `HsThingRn` to `SrcCodeCtxt`
* Kills `tcl_in_gen_code` and `tcl_err_ctxt`. It is subsumed by `ErrCtxtStack`
* Kills `ExpectedFunTyOrig`. It is subsumed by `CtOrigin`
* Fixes `CtOrigin` for `HsProjection` case in `exprCtOrigin`. It was previously assigned to be `SectionOrigin`. It is now just the expression
* Adds a new `CtOrigin.ExpansionOrigin` for storing the original syntax
* Adds a new `CtOrigin.ExpectedTySyntax` as a replacement for `ExpectedTySyntaxOp`. Cannot kill the former yet because of `ApplicativeDo`
* Renames `tcMonoExpr` -> `tcMonoLExpr`, `tcMonoExprNC` -> `tcMonoLExpr`
* Renames `EValArg`, `EValArgQL` fields: `ea_ctxt` -> `ea_loc_span` and `eaql_ctx` -> `eaql_loc_span`
* kill `PopErrCtxt` from `XXExprGhcRn`
* simplify `addArgCtxt` and push `setSrcSpan` inside `addLExprCtxt`. Make sure addExprCtxt is not called by itself
* fun_orig in tcApp depends on the SrcSpan of the head of the application chain (similar to addArgCtxt)
* rename fun_ctxt to fun_lspan, fun_orig passed in tcInstFun to default to app chain head if its user located, fall back to srcCodeOrigin if it's a generated location
* fix quickLookArg function to blame the correct application chain head. The arguments application chain head should be blamed, not the original head when we quick look arg
* Make sure only expression wrapped around generated src span are ignored while adding them to the error context stack
* `getDeepSubsumptionFlag_DataConHead` performs a non-trivial traversal if the expression passed to it is complex.
This traversal is necessary if the head of the function is an `XExpr` and `splitHsApps` does not look through them
- The deepsubsumption flag is stored in EVAlArgQL to reduce the need to call `getDeepSubsumptionFlag_DataConHead`
- `getDeepSubsumptionFlag_DataConHead` is called in `tcExprSigma` and `tcInferAppHead` to reduce AST traversals
* Make a new variant `GeneratedSrcSpan` in `SrcSpan` for HIEAst Nodes
* wrap `fromListN` with a generated src span with GeneratedSrcSpanDetails field to store the original srcspan
* remove `UnhelpfulGenerated` from `UnhelpfulSpanReason` and into new datatype `GeneratedSrcSpanDetails`
-
faaeb7b9
by Apoorv Ingle at 2026-03-09T16:27:37-05:00
trying to remove SrcCodeOrigin
-
c675c814
by Simon Peyton Jones at 2026-03-09T16:27:38-05:00
Improvements in ErrCtxt
-
af429f43
by Apoorv Ingle at 2026-03-09T16:27:39-05:00
ErrCtxtMsg to CtOrigin
-
1ff61903
by Apoorv Ingle at 2026-03-09T16:27:39-05:00
remove CtOrigin.ExpansionOrigin in favour of errCtxtCtOrigin, remove CtOrign from ErrMsgCtxt.FunTysCtxt
-
ba2b691f
by Apoorv Ingle at 2026-03-09T16:27:39-05:00
trying out ErrCtxtMsg zonking
-
8f52b02f
by Apoorv Ingle at 2026-03-09T16:27:40-05:00
route the correct ExpectedFunTyCtxt SDoc. Add missing RecordUpdCtxt to errCtxtCtOrigin
-
f921f0d3
by Apoorv Ingle at 2026-03-09T16:27:40-05:00
print the correct exprs for warnings for do discards
-
c6f2ab89
by Apoorv Ingle at 2026-03-09T19:16:59-05:00
fixes for error message diffs for RepPolyBinds etc.
-
d0f2dc6f
by Apoorv Ingle at 2026-03-09T22:17:16-05:00
add zonking for PatSigErrCtxt, fix err string for pprExpectedFunTyCtxt
-
dd34f3ec
by Apoorv Ingle at 2026-03-11T17:23:53-05:00
make Data instance for ErrCtxtMsg, accept test cases
-
18772d5c
by Apoorv Ingle at 2026-03-11T17:59:39-05:00
rename ErrCtxtMsg -> HsCtxt
-
8780dc92
by Apoorv Ingle at 2026-03-11T19:26:22-05:00
remove add***ErrM variants as they are no longer monadic. remove DoStmtErrCtxt from HsCtxt.
-
a4df18d0
by Rajkumar Natarajan at 2026-03-12T16:25:17-05:00
chore: Merge GHC.Internal.TH.Quote into GHC.Internal.TH.Monad
Move the QuasiQuoter datatype from GHC.Internal.TH.Quote to
GHC.Internal.TH.Monad and delete the Quote module.
Update submodule template-haskell-quasiquoter to use the merged
upstream version that imports from the correct module.
Co-authored-by: Cursor <cursoragent@cursor.com>
-
1f234da7
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #16122
-
9572f6e9
by Cheng Shao at 2026-03-12T16:25:17-05:00
hadrian: remove the broken bench flavour
This patch removes the bench flavour from hadrian which has been
broken for years and not used for actual benchmarking (for which
`perf`/`release` is used instead). Closes #26825.
-
db174d15
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #18186
The original TypeInType language extension is replaced with
DataKinds+PolyKinds for compatibility.
Closes #18186.
-
d4d44c32
by Andreas Klebinger at 2026-03-12T16:25:17-05:00
Bump nofib submodule.
We accrued a number of nofib fixes we want to have here.
-
b72bd0e2
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #15907
Closes #15907.
-
f652da00
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Ensure T14272 is run in optasm way
Closes #16539.
-
f71b8aba
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #24632
Closes #24632.
-
c1c0c687
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Fix module name of T9675: T6975 -> T9675
-
66d0f48a
by Andreas Klebinger at 2026-03-12T16:25:17-05:00
User guide: Clarify phase control on INLINEABLE[foo] pragmas.
Fixes #26851
-
179ef220
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #12694
Closes #12694.
-
a8b7332c
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #16275
Closes #16275.
-
ca98d28d
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #14908
Closes #14908.
-
999b7fdf
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #14151
Closes #14151.
-
c1be3e34
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #12640
Closes #12640.
-
bf3183ae
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #15588
Closes #15588.
-
84ca0079
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add regression test for #9445
Closes #9445.
-
e4d81164
by Cheng Shao at 2026-03-12T16:25:17-05:00
compiler: implement string interning logic for BCONPtrFS
This patch adds a `FastStringEnv`-based cache of `MallocStrings`
requests to `Interp`, so that when we load bytecode with many
breakpoints that share the same module names & unit ids, we reuse the
allocated remote pointers instead of issuing duplicte `MallocStrings`
requests and bloating the C heap. Closes #26995.
-
8684a569
by Simon Jakobi at 2026-03-12T16:25:17-05:00
Add perf test for #1216
Closes #1216.
-
c77df83d
by Sylvain Henry at 2026-03-12T16:25:17-05:00
JS: check that tuple constructors are linked (#23709)
Test js-mk_tup was failing before because tuple constructors weren't
linked in. It's no longer an issue after the linker fixes.
-
68304361
by Matthew Pickering at 2026-03-12T16:25:17-05:00
testsuite: Add test for foreign import prim with unboxed tuple return
This commit just adds a test that foreign import prim works with unboxed
sums.
-
76e50eab
by Matthew Pickering at 2026-03-12T16:25:17-05:00
Return a valid pointer in advanceStackFrameLocationzh
When there is no next stack chunk, `advanceStackFrameLocationzh` used to
return NULL in the pointer-typed StackSnapshot# result slot.
Even though the caller treats that case as "no next frame", the result is
still materialized in a GC-visible pointer slot. If a GC observes the raw
NULL there, stack decoding can crash.
Fix this by ensuring the dead pointer slot contains a valid closure
pointer. Also make the optional result explicit by returning an unboxed
sum instead of a tuple with a separate tag.
Fixes #27009
-
3399557a
by Cheng Shao at 2026-03-12T16:25:17-05:00
hadrian: build profiled dynamic objects with -dynamic-too
This patch enables hadrian to build profiled dynamic objects with
`-dynamic-too`, addressing a build parallelism bottleneck in release
pipelines. Closes #27010.
-
5be3e1de
by Apoorv Ingle at 2026-03-12T16:25:17-05:00
hie refactoring
-
59c5e841
by Apoorv Ingle at 2026-03-12T17:33:52-05:00
remove dependencies on CodeSrcFlag
make VDQWarningCtxt landmark
make addExpansionErrCtxt also sets tcl_in_gen_code