-
d1d01fa5
by Wolfgang Jeltsch at 2026-08-27T13:17:59+03:00
Add `rethrowSTM` and improve STM-related documentation
Adding `rethrowSTM` resolves #26758.
The implementation of `rethrowSTM` is completely analogous to the one of
`rethrowIO`.
The following is established for the documentation of `throwSTM` and
`catchSTM`:
* Both operations are directly described as analogs of their `IO`
counterparts.
* There is no reference to `throw` in the documentation of `throwSTM`,
because, although such a reference is great in the documentation of
`throwIO`, it is somewhat out of place in the documentation of
`throwSTM`.
* Instead of repeating part of `throwIO`’s documentation, the
documentation of `throwSTM` just recommends using `throwSTM` instead
of `throw` and references the corresponding arguments in the
documentation of `throwIO`.
-
06fde293
by fendor at 2026-08-28T06:06:44-04:00
GHCi: Fix order of `PackageDBFlag`s for interactive home unit
`PackageDBFlag`s are stored in reverse order of cli specification.
When sorting the `PackageDBFlag`s by longest common prefix, we need thus
to reverse the package db stacks before calculating the prefix.
We make sure to reverse the package db stack for the interactive home
unit to uphold that later specified package dbs overwrite earlier ones.
Resolved and adds regression test for #27640
-
024c4d04
by fendor at 2026-08-28T06:07:23-04:00
Reuse the UnitIndexCache after initialising multiple home units
-
55326fa0
by Alan Zimmerman at 2026-08-28T06:08:03-04:00
EPA: Some Haddock processing tweaks
These changes to the Haddock postprocessing should not change
behaviour, but just bring it more closely in line with the
original, changed at 44309cd377f
And add some haddock exactprint tests to show they work.
-
b3ddee95
by Andreas Klebinger at 2026-08-28T13:57:46-04:00
hadrian: Deprecate quickest flavour.
It was more of a trap for new users than actually beneficial so we
deprecate it and suggest quick+no_dynamic_libs to users instead.
-
a1d81390
by Andreas Klebinger at 2026-08-28T13:58:37-04:00
cmm: Always favour entry block during block deduplication.
We now always keep the first block in the CmmGraph. This way we avoid
the need to update the entry info table.
Failing to do so caused #27722.
Fixes #27722.
-
5bd65f00
by Andreas Klebinger at 2026-08-28T13:59:16-04:00
test: FamAppCachePerf - Only collect bytes allocated. Fixes 27747
-
e9c6b1d3
by Alan Zimmerman at 2026-08-29T13:02:56+01:00
EPA Fix HsCmdDo exact print with comments
Exact printing of HsCmdDo was ignoring the location for the do
statements, and this is an annotation that can have comments in it.
Update it so we print the statements as a unit, including any
comments.
Also add the result of auditing that we capture comments in all needed
places, noting that the remaining Anno SrcSpan instances are benign.
-
a58d91ee
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Remove ListBanana / ListParens from AnnListBrackets
-
a16b92ae
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Tidy up mkHsDoPv, take AnnList directly
And some extra stuff by accident.
The main goal is to slim down AnnListBrackets to just have braces or
none.
This makes it clear that it serves only for lists which may have layout,
and opens the route to use EpLayout instead of AnnListBrackets
-
8ea2fbae
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Add specific layout field to AnnList
-
925dc42e
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Use EpaLocation in EpVirtualBraces
reword:
EPA Use vocurly as basis for AnnListLayout
For the existing cases that populate AnnList.
This also shows up AnnList usages that can never capture layout.
-
433b7ad5
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Use vocurly as basis for AnnListLayout
For the existing cases that populate AnnList.
This also shows up AnnList usages that can never capture layout.
-
85c3e0c8
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: AnnList clean up patch for empty where clause
-
da6e6619
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Add TTG fields to FamilyInfo
This commit is a simple add, with unused extension fields.
It lays the groundwork for using them for exact print annotations
-
10c45223
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
WIP annclassdecl
-
d396098f
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Update AnnClsInstDecl to contain AnnList
It was already separately tracking the '{', '}' and leading ';' values.
This aligns it with layout-introducing parser productions ('vocurly'),
so the layout processing can be handled uniformly
-
2c1b4504
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Tidy up markAnnListA'
It takes an action which can modify the AnnList, but this
is never used. So remove it.
-
abc2be7f
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Use AnnList for GADT declarations
-
5088c886
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Use AnnList in AnnClassDecl
-
a90b8091
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
MOVE EPA: Plan for Fixing AnnList Layout Properly
-
0e715517
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Make local binds located
Use LHsLocalBinds instead of HsLocalBinds
This reverses an earlier change, and brings processing of local binds
into alignement with the exact printing principle that the LocatedA
contents provide the location and extent of the enclosed item,
together with any comments or context-specific trailing items like
commas or semi colons.
The internal TTG extension points only carry exact print annotations
related to printing the item within its bounds.
This change brings back the problem of EmptyLocalBinds, which by
definition cannot have a location. These get a noSrcSpan location,
which is ignored in the exact printing process.
-
7da0d5df
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Use AnnList in HsMultiIf
It introduces layout, capture it
-
46f4a16c
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Use AnnList in DecBrl
-
b7a9ff4a
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Replace AnnListLayout / AnnListBrackets with EpLayout
-
888d7137
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
WIP: setLayoutBoth inside markAnnListA
Current problem is it is a global one-shot, and MG has one too
Check: is it needed?
if so, honouring EpLayout may be needed
-
297dbd2d
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA some tests for layout. WIP
-
42f5d7ae
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
Exactprint layout scope plan. Do not commit
-
6d3b9ad3
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: tidy up a bit. Combine somewhere else
-
8fa54611
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Introduce LayoutFrame stacks in ExactPrint state
-
06c27397
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
Align with ghc-exactprint
-
1b0782d2
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
EPA: Fix AnnList leading semis when layout
When there is layout, anything printed triggers it, including leading
semis.
Add some test case examples too
-
1f1b180d
by Alan Zimmerman at 2026-08-29T13:05:21+01:00
Exactprint: tidy up layout capturing
-
882f9d68
by Alan Zimmerman at 2026-08-29T14:28:34+01:00
EPA: add makeDelta test for Test20297
The original #20297 related to comment placement for exact printing
after running ExactPrint.makeDelta on ParsedSource. Add an additional
test that explicitly tests this.
-
5b9bcf1a
by Alan Zimmerman at 2026-08-29T14:28:34+01:00
EPA: Make ValBinds LocatedA in HsLocalBindsLR
If we have items with an AnnList Annotation, as part of another, which
has different content, it must be LocatedA. This is a technical requirement
due to the way comment allocation happens during the makeDelta processing.
Comments are queued for printing, and as soon as any non-comment is to
be printed, the pending comments before that position are printed, and
in makeDelta processing these attached as preceding comments to the thing
just printed.
The means they end up captured inside the layout region of the AnnList item.
So for
foo = x
where -- comment
x = 3
the comment ends up as a preceding comment of `x = 3`, inside the
layout, and prints as
foo = x
where
-- comment
x = 3
-
babb1a27
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
EPA: Make IPBinds LocatedA
-
cd7aabf7
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
Extend Test20297 for additional occurrences
-
80743934
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
Plan update DO NOT COMMIT
-
4c9e7330
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
EPA: First pass implementation of HsList, for ClassDecls
Just as a straight list replacement to start with, no payload.
This shows the scope and invasiveness of the initial change
-
0c308d7c
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
EPA: HsList attempt WIP
-
bdddf33d
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
Enable ppr test for Haddock1. It currently fails
-
6aa9fbcd
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
WIP on removing NoEpAnn. Likely abandon
-
924c20d7
by Alan Zimmerman at 2026-08-29T15:02:19+01:00
EPA: Add an overview doc for exact printing
-
a8da5c0c
by Simon Peyton Jones at 2026-08-29T15:02:19+01:00
Added an intro section