GHC issues
https://gitlab.haskell.org/ghc/ghc/-/issues
2022-02-11T16:59:22Z
https://gitlab.haskell.org/ghc/ghc/-/issues/17860
Release tracking ticket for 8.8.3
2022-02-11T16:59:22Z
Ben Gamari
Release tracking ticket for 8.8.3
> This is the template to be used to create release tracking tickets. Copy this into a new issue and fill in the TODOs. Those items marked with *major-only* can be ignored for minor releases.
This is the release checklist for the TODO m...
> This is the template to be used to create release tracking tickets. Copy this into a new issue and fill in the TODOs. Those items marked with *major-only* can be ignored for minor releases.
This is the release checklist for the TODO milestone. See #16816 for the template that this was derived from.
# Pre-release checklist
* [x] (*major-only*) Remove the release notes for the previous release (e.g. `docs/users_guide/8.6.*-notes.rst`)
* [x] (*major-only*) Make release branch (e.g. `ghc-8.8`)
* [x] (*major-only*) Make post-release branch (e.g. `ghc-8.9-start`)
* [x] Submodules on released tags (produced using [this script](https://gitlab.haskell.org/bgamari/ghc-utils/blob/master/rel-eng/submod-release-summary.py)):
* [x] `libraries/Cabal`: *todo* (on `Cabal-v3.0.1.0-rc2`)
* [x] `libraries/Win32`: version 2.6.1.0
* [x] `libraries/array`: version 0.5.4.0
* [x] `libraries/binary`: version 0.8.7.0
* [x] `libraries/bytestring`: version 0.10.10.0-ghc1
* [x] `libraries/containers`: version 0.6.2.1
* [x] `libraries/deepseq`: version 1.4.4.0-r1
* [x] `libraries/directory`: version 1.3.6.0
* [x] `libraries/filepath`: version 1.4.2.1-ghc1
* [x] `libraries/haskeline`: version 0.7.5.0-ghc1
* [x] `libraries/mtl`: version 2.2.2
* [x] `libraries/parsec`: version 3.1.14.0
* [x] `libraries/pretty`: version 1.1.3.6
* [x] `libraries/process`: version 1.6.8.0
* [x] Non-released submodules up-to-date:
* [x] `nofib`
* [x] `libffi-tarballs`
* [x] `libraries/integer-gmp/gmp/gmp-tarballs`
* [x] Release notes (`docs/users_guide/x.y.z-notes.rst`) written
* [x] Release notes linked in `docs/users_guide/index.rst`
* [x] `autoconf` scripts [updated](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#updating-the-tree)
* [x] Check that Unicode database in `base` (`libraries/base/cbits/README.Unicode`) reflects current standard release (http://www.unicode.org/versions/latest/)
* [x] `LlvmVersion` in `configure.ac` is targetting intended LLVM version
* [x] Release notes mentions LLVM version requirement
* [x] `llvm-targets` file [updated](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#updating-the-tree)
* [x] Changelogs updated (these can be checked using `.gitlab/linters/check-changelogs.sh`):
* [x] `libraries/ghc-prim`
* [x] `libraries/integer-gmp`
* [x] `libraries/integer-simple`
* [x] `libraries/hpc`
* [x] `libraries/base`
* [x] Verify that the ~"backport needed" label has no more issues/merge requests needing backport
* [x] Verify that all CI builds are green before moving to *release checklist*
# Release checklist
* [x] [Make tag](https://gitlab.haskell.org/ghc/ghc/wikis/making-releases#tagging-the-release)
* [x] Wait until builds finish
* [x] Fetch release artifacts TODO: documentation
* [x] Sign and push release artifacts to `downloads.haskell.org` [TODO: documentation]
* [ ] Release/revise GHC-maintained libraries on Hackage [TODO: documentation]
* [ ] `libraries/base`
* [ ] `libraries/ghc-prim`
* [ ] `libraries/array`
* [ ] `libraries/stm`
* [ ] `libraries/ghc-heap`
* [ ] `libraries/ghc-compact`
* [ ] `libraries/ghc-boot`
* [ ] `libraries/ghc-boot-th`
* [ ] `libraries/hpc`
* [ ] `libraries/libiserv`
* [ ] `libraries/template-haskell`
* [ ] `libraries/integer-gmp`
* [ ] `libraries/integer-simple`
* [ ] Update ghc/homepage>:
* [ ] Write download page (see ghc/homepage>)
* [ ] Add news item to [`index.html`](https://gitlab.haskell.org/ghc/homepage/blob/master/index.shtml)
* [ ] Add link to [`download.shtml`](https://gitlab.haskell.org/ghc/homepage/blob/master/download.shtml)
* [ ] Look over changes locally
* [ ] Add release announcement to [GHC blog](https://gitlab.haskell.org/ghc/homepage/tree/master/blog)
* [ ] Push changes to `master`
* [ ] Announce on: `GHC developers <ghc-devs@haskell.org>, GHC Users <glasgow-haskell-users@haskell.org>, Haskell Cafe <haskell-cafe@haskell.org>`
* [ ] Announce on: [Haskell Discourse](https://discourse.haskell.org/), [/r/haskell](https://reddit.com/r/haskell), [Twitter](https://twitter.com/)
* [ ] Update `latest` symlink on `downloads.haskell.org`
* [ ] Ensure that the [Migration](https://gitlab.haskell.org/ghc/ghc/wikis/migration/) page is up-to-date
# Post-release checklist
* [ ] Update the Wiki [status page](https://gitlab.haskell.org/ghc/ghc/wikis/status)
* [ ] Update the [language pragma history](https://gitlab.haskell.org/ghc/ghc/wikis/language-pragma-history)
* [ ] Mark milestone as *closed*
* [x] Update the [VersionHistory](https://gitlab.haskell.org/ghc/ghc/wikis/commentary/libraries/version-history) wiki page
* [ ] Set `RELEASE=NO`
8.8.3
https://gitlab.haskell.org/ghc/ghc/-/issues/17722
Panic "StgCmmEnv: variable not found" when building dhall with -O2
2020-02-29T05:35:12Z
Simon Jakobi
Panic "StgCmmEnv: variable not found" when building dhall with -O2
When building `dhall`'s [`Dhall` module](https://github.com/dhall-lang/dhall-haskell/blob/c45749b2c5528d202751efd90bb895060d3acad9/dhall/src/Dhall.hs) with `-O2`, `ghc` panics:
<details> <summary>Panic message</summary>
```
[34 of...
When building `dhall`'s [`Dhall` module](https://github.com/dhall-lang/dhall-haskell/blob/c45749b2c5528d202751efd90bb895060d3acad9/dhall/src/Dhall.hs) with `-O2`, `ghc` panics:
<details> <summary>Panic message</summary>
```
[34 of 40] Compiling Dhall ( src/Dhall.hs, /home/simon/src/dhall-haskell/dist-newstyle/build/x86_64-linux/ghc-8.8.2/dhall-1.29.0/opt/build/Dhall.o )
src/Dhall.hs:134:1: warning: [-Wunused-imports]
The import of ‘Data.Monoid’ is redundant
except perhaps to import instances from ‘Data.Monoid’
To import instances alone, use: import Data.Monoid()
|
134 | import Data.Monoid ((<>))
| ^^^^^^^^^^^^^^^^^^^^^^^^^
ghc: panic! (the 'impossible' happened)
(GHC version 8.8.2 for x86_64-unknown-linux):
StgCmmEnv: variable not found
lvl_s1ihUy
local binds for:
$l$wrealloc_g1ispG
$lrealloc_g1ispH
$lrealloc1_g1ispI
$l$wrealloc_g1ispJ
$lrealloc_g1ispK
$lrealloc1_g1ispL
$l$wrealloc_g1ispM
$lrealloc_g1ispN
$lrealloc1_g1ispO
$l$wrealloc_g1ispP
$lrealloc_g1ispQ
$lrealloc1_g1ispR
$l$wrealloc_g1ispS
$lrealloc_g1ispT
$lrealloc1_g1ispU
$l$wrealloc_g1ispV
$lrealloc_g1ispW
$lrealloc1_g1ispX
$l$wrealloc_g1ispY
$lrealloc_g1ispZ
$lrealloc1_g1isq0
$l$wrealloc_g1isq1
$lrealloc_g1isq2
$lrealloc1_g1isq3
$l$wrealloc_g1isq4
$lrealloc_g1isq5
$lrealloc1_g1isq6
$l$wrealloc_g1isq7
$lrealloc_g1isq8
$lrealloc1_g1isq9
$l$wrealloc_g1isqa
$lrealloc_g1isqb
$lrealloc1_g1isqc
$l$wrealloc_g1isqd
$lrealloc_g1isqe
$lrealloc1_g1isqf
$l$wrealloc_g1isqg
$lrealloc_g1isqh
$lrealloc1_g1isqi
$lgo_g1isqj
genericToDhallWith
injectWith
genericAutoWith
autoWith
evaluateSettings
$fFromDhall(,)_$s$fSelectorMetaMetaSel
map1
map_foldrTree
$w$sgo13
void_$sgo13
void3
$fGenericFromDhallkU5
$fGenericFromDhallkU6
$fGenericFromDhallkU7
$fGenericFromDhallkU8
$fGenericFromDhallkU1_go
$fGenericFromDhallkU9
$s$fExceptionDetailedTypeError_$s$fShowDetailedTypeError
$s$fShowDetailedTypeError_$cshowsPrec
$w$sgo3
$wgo3
setIgnoringDuplicates1
$wouter1_r1ioPd
$wouter2_r1ioPe
$wouter3_r1ioPf
$wouter4_r1ioPg
lvl3_r1ioPh
lvl4_r1ioPi
lvl5_r1ioPj
lvl6_r1ioPk
lvl9_r1ioPn
lvl10_r1ioPo
$wouter5_r1ioPp
$wouter6_r1ioPq
$wouter7_r1ioPr
$wouter8_r1ioPs
$wouter9_r1ioPt
$wouter10_r1ioPu
$wouter11_r1ioPv
$wouter12_r1ioPw
lvl11_r1ioPy
$wouter13_r1ioPz
$spoly_$wfoldlM_loop_r1ioPA
$spoly_$wfoldlM_loop1_r1ioPB
$spoly_$wfoldlM_loop2_r1ioPC
$spoly_$wfoldlM_loop3_r1ioPD
lvl12_r1ioPE
$s$wtraverseTree_r1ioPF
$wtraverseTree_r1ioPG
sc_s1ipiB
sc1_s1ipiC
sc2_s1ipiD
sc3_s1ipiE
wild1_s1ipiF
dt1_s1ipiI
pr_s1ipiJ
m_s1ipiK
sf_s1ipiL
sat_s1iplc
sat_s1ipm2
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1159:37 in ghc:Outputable
pprPanic, called at compiler/codeGen/StgCmmEnv.hs:149:9 in ghc:StgCmmEnv
```
</details>
With `-dcore-lint`, `ghc` reports
<details><summary>Core lint message</summary>
```
*** Core Lint errors : in result of Simplifier ***
<no location info>: warning:
In the expression: lvl_sZFi
@ (Digit (Node (Elem b_XLt1)))
@ (FingerTree (Node (Elem b_XLt1)))
(let {
b1_aLq2 [OS=OneShot]
:: Validation
(ExtractErrors Src Void) (FingerTree (Node (Node (Elem b_XLt1))))
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 540 0}]
b1_aLq2
= $wtraverseTree_sWdp
@ (Validation (ExtractErrors Src Void))
@ (Node (Elem a_XLsZ))
@ (Node (Elem b_XLt1))
sc_s121b
sc_s121c
lvl_sZFi
lvl_sZFj
(\ (t_iLut :: Node (Node (Elem a_XLsZ))) ->
case t_iLut of {
Node2 dt2_iLuH a2_iLuI b2_iLuJ ->
case sc_s121d a2_iLuI of {
Failure e1_aLob ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Node (Elem b_XLt1)))
(case sc_s121d b2_iLuJ of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0]
<Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
});
Success a1_aLoe ->
case sc_s121d b2_iLuJ of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Node (Node (Elem b_XLt1)))
(Node2
@ (Node (Elem b_XLt1))
dt2_iLuH
a1_aLoe
x_aLqm)
}
};
Node3 dt2_iLuM a2_iLuN b2_iLuO c_iLuP ->
lvl_sZFi
@ (Node (Elem b_XLt1))
@ (Node (Node (Elem b_XLt1)))
(case sc_s121d a2_iLuN of {
Failure e1_aLob ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Node (Elem b_XLt1)))
(case sc_s121d b2_iLuO of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0]
<Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError
Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0]
<Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError
Src Void))))
`cast` (Sym (N:ExtractErrors[0]
<Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
});
Success a1_aLoe ->
case sc_s121d b2_iLuO of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Node (Elem b_XLt1)))
(\ (dt_iLuE :: Node (Elem b_XLt1)) ->
Node3
@ (Node (Elem b_XLt1))
dt2_iLuM
a1_aLoe
x_aLqm
dt_iLuE)
}
})
(sc_s121d c_iLuP)
})
m_iLu7 } in
join {
$j_s13uy
:: ExtractErrors Src Void
-> Validation
(ExtractErrors Src Void)
(Digit (Node (Elem b_XLt1))
-> FingerTree (Node (Elem b_XLt1)))
[LclId[JoinId(1)], Arity=1]
$j_s13uy (e1_aLob [OS=OneShot] :: ExtractErrors Src Void)
= Failure
@ (ExtractErrors Src Void)
@ (Digit (Node (Elem b_XLt1)) -> FingerTree (Node (Elem b_XLt1)))
(case b1_aLq2 of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0] <Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
}) } in
join {
$j_s13uz
:: Digit (Node (Elem b_XLt1))
-> Validation
(ExtractErrors Src Void)
(Digit (Node (Elem b_XLt1))
-> FingerTree (Node (Elem b_XLt1)))
[LclId[JoinId(1)], Arity=1]
$j_s13uz (a1_aLoe [OS=OneShot] :: Digit (Node (Elem b_XLt1)))
= case b1_aLq2 of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Digit (Node (Elem b_XLt1))
-> FingerTree (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Digit (Node (Elem b_XLt1))
-> FingerTree (Node (Elem b_XLt1)))
(\ (dt_iL62 :: Digit (Node (Elem b_XLt1))) ->
case a1_aLoe of dt_XL68 { __DEFAULT ->
case dt_iL62 of dt_XL6b { __DEFAULT ->
Deep @ (Node (Elem b_XLt1)) dt1_iLu5 dt_XL68 x_aLqm dt_XL6b
}
})
} } in
case pr_iLu6 of {
One a2_iLuc ->
case fmap
@ (Validation (ExtractErrors Src Void))
sc_s121b
@ (Node (Elem b_XLt1))
@ (Digit (Node (Elem b_XLt1)))
(One @ (Node (Elem b_XLt1)))
(sc_s121d a2_iLuc)
of {
Failure e1_aLob -> jump $j_s13uy e1_aLob;
Success a1_aLoe -> jump $j_s13uz a1_aLoe
};
Two a2_iLuf b2_iLug ->
case sc_s121d a2_iLuf of {
Failure e1_aLob ->
let {
e1_XLFQ :: ExtractErrors Src Void
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False,
ConLike=False, WorkFree=False, Expandable=False,
Guidance=IF_ARGS [] 70 0}]
e1_XLFQ
= case sc_s121d b2_iLug of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0] <Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
} } in
jump $j_s13uy e1_XLFQ;
Success a1_aLoe ->
case sc_s121d b2_iLug of {
Failure e1_aLqj -> jump $j_s13uy e1_aLqj;
Success x_aLqm ->
let {
a1_XLFX :: Digit (Node (Elem b_XLt1))
[LclId,
Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True,
ConLike=True, WorkFree=True, Expandable=True,
Guidance=IF_ARGS [] 10 30}]
a1_XLFX = Two @ (Node (Elem b_XLt1)) a1_aLoe x_aLqm } in
jump $j_s13uz a1_XLFX
}
};
Three a2_iLuj b2_iLuk c_iLul ->
case lvl_sZFi
@ (Node (Elem b_XLt1))
@ (Digit (Node (Elem b_XLt1)))
(case sc_s121d a2_iLuj of {
Failure e1_aLob ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
(case sc_s121d b2_iLuk of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0] <Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
});
Success a1_aLoe ->
case sc_s121d b2_iLuk of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
(Three @ (Node (Elem b_XLt1)) a1_aLoe x_aLqm)
}
})
(sc_s121d c_iLul)
of {
Failure e1_aLob -> jump $j_s13uy e1_aLob;
Success a1_aLoe -> jump $j_s13uz a1_aLoe
};
Four a2_iLuo b2_iLup c_iLuq d_iLur ->
case lvl_sZFi
@ (Node (Elem b_XLt1))
@ (Digit (Node (Elem b_XLt1)))
(lvl_sZFi
@ (Node (Elem b_XLt1))
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
(case sc_s121d a2_iLuo of {
Failure e1_aLob ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Elem b_XLt1)
-> Digit (Node (Elem b_XLt1)))
(case sc_s121d b2_iLup of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0]
<Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
});
Success a1_aLoe ->
case sc_s121d b2_iLup of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Elem b_XLt1)
-> Digit (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Elem b_XLt1)
-> Digit (Node (Elem b_XLt1)))
(Four @ (Node (Elem b_XLt1)) a1_aLoe x_aLqm)
}
})
(sc_s121d c_iLuq))
(sc_s121d d_iLur)
of {
Failure e1_aLob -> jump $j_s13uy e1_aLob;
Success a1_aLoe -> jump $j_s13uz a1_aLoe
}
})
(case sf_iLu8 of {
One a2_iLuT ->
fmap
@ (Validation (ExtractErrors Src Void))
sc_s121b
@ (Node (Elem b_XLt1))
@ (Digit (Node (Elem b_XLt1)))
(One @ (Node (Elem b_XLt1)))
(sc_s121d a2_iLuT);
Two a2_iLuW b2_iLuX ->
case sc_s121d a2_iLuW of {
Failure e1_aLob ->
Failure
@ (ExtractErrors Src Void)
@ (Digit (Node (Elem b_XLt1)))
(case sc_s121d b2_iLuX of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0] <Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
});
Success a1_aLoe ->
case sc_s121d b2_iLuX of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Digit (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Digit (Node (Elem b_XLt1)))
(Two @ (Node (Elem b_XLt1)) a1_aLoe x_aLqm)
}
};
Three a2_iLv0 b2_iLv1 c_iLv2 ->
lvl_sZFi
@ (Node (Elem b_XLt1))
@ (Digit (Node (Elem b_XLt1)))
(case sc_s121d a2_iLv0 of {
Failure e1_aLob ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
(case sc_s121d b2_iLv1 of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0] <Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
});
Success a1_aLoe ->
case sc_s121d b2_iLv1 of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
(Three @ (Node (Elem b_XLt1)) a1_aLoe x_aLqm)
}
})
(sc_s121d c_iLv2);
Four a2_iLv5 b2_iLv6 c_iLv7 d_iLv8 ->
lvl_sZFi
@ (Node (Elem b_XLt1))
@ (Digit (Node (Elem b_XLt1)))
(lvl_sZFi
@ (Node (Elem b_XLt1))
@ (Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
(case sc_s121d a2_iLv5 of {
Failure e1_aLob ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Elem b_XLt1) -> Digit (Node (Elem b_XLt1)))
(case sc_s121d b2_iLv6 of {
Failure e2_aLq9 ->
($fSemigroupNonEmpty_$c<>
@ (ExtractError Src Void)
(e1_aLob
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty (ExtractError Src Void)))
(e2_aLq9
`cast` (N:ExtractErrors[0] <Src>_R <Void>_R
:: ExtractErrors Src Void
~R# NonEmpty
(ExtractError Src Void))))
`cast` (Sym (N:ExtractErrors[0] <Src>_R <Void>_R)
:: NonEmpty (ExtractError Src Void)
~R# ExtractErrors Src Void);
Success ds1_aLqc -> e1_aLob
});
Success a1_aLoe ->
case sc_s121d b2_iLv6 of {
Failure e1_aLqj ->
Failure
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Elem b_XLt1)
-> Digit (Node (Elem b_XLt1)))
e1_aLqj;
Success x_aLqm ->
Success
@ (ExtractErrors Src Void)
@ (Node (Elem b_XLt1)
-> Node (Elem b_XLt1)
-> Digit (Node (Elem b_XLt1)))
(Four @ (Node (Elem b_XLt1)) a1_aLoe x_aLqm)
}
})
(sc_s121d c_iLv7))
(sc_s121d d_iLv8)
})
Out of scope: lvl_sZFi
:: forall a b.
Validation (ExtractErrors Src Void) (a -> b)
-> Validation (ExtractErrors Src Void) a
-> Validation (ExtractErrors Src Void) b
[LclId, Arity=2]
```
</details>
[Full `-dcore-lint` message (7 MB)](/uploads/6ac94b60b98ac8eebe54f61be663abbf/core-lint)
I have reproduced the panic with both 8.8.2 and 8.6.5. GHC 8.4 and earlier don't show the panic. I haven't been able to build `dhall` with 8.10 due to build failures in its large dependency tree.
The Core seems to point at some `Data.Sequence` traversal, of which I see two in `Dhall`: [1](https://github.com/dhall-lang/dhall-haskell/blob/c45749b2c5528d202751efd90bb895060d3acad9/dhall/src/Dhall.hs#L803), [2](https://github.com/dhall-lang/dhall-haskell/blob/c45749b2c5528d202751efd90bb895060d3acad9/dhall/src/Dhall.hs#L946). In both cases, `es` is a `Seq`.
# Reproduction steps
```
$ cabal get dhall-1.29.0
$ cd dhall-1.29.0
$ cabal build -O2 --ghc-options -dcore-lint
```
8.8.3
https://gitlab.haskell.org/ghc/ghc/-/issues/17684
Panic when compiling `cryptol` with profiling enabled on GHC 8.8.1
2020-02-20T17:21:15Z
robdockins
Panic when compiling `cryptol` with profiling enabled on GHC 8.8.1
## Summary
Panic when compiling with profiling enabled.
## Steps to reproduce
```
$ uname -a
Darwin dyn-40-200.galois.com 19.0.0 Darwin Kernel Version 19.0.0: Wed Sep 25 20:18:50 PDT 2019; root:xnu-6153.11.26~2/RELEASE_X86_64 x86_64
...
## Summary
Panic when compiling with profiling enabled.
## Steps to reproduce
```
$ uname -a
Darwin dyn-40-200.galois.com 19.0.0 Darwin Kernel Version 19.0.0: Wed Sep 25 20:18:50 PDT 2019; root:xnu-6153.11.26~2/RELEASE_X86_64 x86_64
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.8.1
$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
$ git clone https://github.com/GaloisInc/cryptol
<snip>
$ git log | head -n 1
commit 1e883e9f1dd0190f2b5a24a371f1deb239cc676c
$ cabal v2-configure
'cabal.project.local' file already exists. Now overwriting it.
Build profile: -w ghc-8.8.1 -O1
In order, the following would be built (use -v for more details):
- Glob-0.10.0 (lib) (requires build)
- HUnit-1.6.0.0 (lib) (requires build)
- Only-0.1 (lib) (requires build)
- binary-orphans-1.0.1 (lib) (requires download & build)
- base-compat-batteries-0.11.0 (lib) (requires download & build)
- abstract-deque-0.3 (lib) (requires build)
- abstract-par-0.3.3 (lib) (requires build)
- code-page-0.2 (lib) (requires download & build)
- crackNum-2.3 (exe:crackNum) (requires build)
- cryptol-2.8.1 (lib) (configuration changed)
- uuid-types-1.0.3 (lib) (requires build)
- data-default-class-0.1.2.0 (requires build)
- hostname-1.0 (requires build)
- js-flot-0.8.3 (lib) (requires build)
- js-jquery-3.3.1 (lib) (requires build)
- old-locale-1.0.0.7 (lib) (requires build)
- optparse-applicative-0.15.1.0 (lib) (requires build)
- regex-base-0.94.0.0 (lib) (requires build)
- time-compat-1.9.2.2 (lib) (requires build)
- vector-binary-instances-0.2.5.1 (lib) (requires download & build)
- vector-algorithms-0.8.0.3 (lib) (requires build)
- vector-th-unbox-0.2.1.7 (lib) (requires build)
- xml-1.3.14 (requires build)
- extensible-exceptions-0.1.1.4 (requires download & build)
- cassava-0.5.2.0 (lib) (requires download & build)
- monad-par-extras-0.3.3 (lib) (requires build)
- cryptol-2.8.1 (exe:cryptol-html) (first run)
- cryptol-2.8.1 (exe:cryptol) (first run)
- regex-posix-0.96.0.0 (lib) (requires download & build)
- aeson-1.4.6.0 (lib) (requires build)
- math-functions-0.3.3.0 (lib) (requires build)
- test-framework-0.8.2.0 (lib) (requires download & build)
- microstache-1.0.1.1 (lib) (requires build)
- criterion-measurement-0.1.2.0 (lib) (requires download & build)
- mwc-random-0.14.0.0 (lib) (requires build)
- dense-linear-algebra-0.1.0.0 (lib) (requires download & build)
- test-framework-hunit-0.3.0.2 (requires download & build)
- monad-par-0.3.5 (lib) (requires download & build)
- test-lib-0.2 (lib) (requires download & build)
- statistics-0.15.2.0 (lib) (requires download & build)
- test-lib-0.2 (exe:test-runner) (requires download & build)
- cryptol-test-runner-2.0 (exe:cryptol-test-runner) (first run)
- criterion-1.5.6.1 (lib) (requires download & build)
- cryptol-2.8.1 (bench:cryptol-bench) (first run)
- criterion-1.5.6.1 (exe:criterion-report) (requires download & build)
$ cabal v2-build --enable-profiling
Build profile: -w ghc-8.8.1 -O1
In order, the following will be built (use -v for more details):
- cryptol-2.8.1 (lib) --enable-profiling (configuration changed)
- cryptol-2.8.1 (exe:cryptol-html) --enable-profiling (first run)
- cryptol-2.8.1 (exe:cryptol) --enable-profiling (first run)
Configuring library for cryptol-2.8.1..
Preprocessing library for cryptol-2.8.1..
Building library for cryptol-2.8.1..
[20 of 90] Compiling Cryptol.Parser.Names ( src/Cryptol/Parser/Names.hs, /Users/rdockins/code/cryptol/dist-newstyle/build/x86_64-osx/ghc-8.8.1/cryptol-2.8.1/build/Cryptol/Parser/Names.p_o )
ghc: panic! (the 'impossible' happened)
(GHC version 8.8.1 for x86_64-apple-darwin):
LocalReg's live-in to graph
cd8E {_scvf::P64}
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1159:37 in ghc:Outputable
pprPanic, called at compiler/cmm/CmmLive.hs:70:8 in ghc:CmmLive
```
## Expected behavior
Expect compile to succeed.
## Environment
* GHC version used: 8.8.1
Optional:
* Operating System: OSX Catalina 10.15
* System Architecture:
8.8.3
https://gitlab.haskell.org/ghc/ghc/-/issues/17599
GHCi : Windows : 8.8.1 : load package failures
2020-02-20T17:20:51Z
Shayne Fletcher
shayne@shaynefletcher.org
GHCi : Windows : 8.8.1 : load package failures
## Summary
GHCi fails to load (at least certain) packages on Windows complaining "unhandled PEi386 relocation type 0". Code probably emanates from ghc/rts/linker/PEi386.c (https://gitlab.haskell.org/ghc/ghc/issues/9907?cversion=0&cnum_h...
## Summary
GHCi fails to load (at least certain) packages on Windows complaining "unhandled PEi386 relocation type 0". Code probably emanates from ghc/rts/linker/PEi386.c (https://gitlab.haskell.org/ghc/ghc/issues/9907?cversion=0&cnum_hist=5#note_104251)
First observed in `ghc-lib` with the introduction of 8.8.1 (https://github.com/digital-asset/ghc-lib/issues/142). Later found more evidence of the problem with haskell-src-exts in Hoogle builds (https://ci.appveyor.com/project/ndmitchell/hoogle#L5349).
## Steps to reproduce
(1) `ghc -ignore-dot-ghci -package=ghc-lib-parser -e "print 1"`
(2) `ghc -ignore-dot-ghci -package=haskell-src-exts -e "print 1"`
## Expected behavior
Print `1`.
## Environment
* GHC version used: 8.8.1
Optional:
* Operating System: Windows
8.8.3
https://gitlab.haskell.org/ghc/ghc/-/issues/17598
directory-1.3.3.2/1.3.4.0 are broken
2020-02-25T00:57:02Z
Oleg Grenrus
directory-1.3.3.2/1.3.4.0 are broken
See issue https://github.com/haskell/directory/issues/100
I would not release GHC-8.10.1 with that `directory` version, as it's subtly breaks stuff and even not into "let's make it as in spec" direction.
Neither should GHC-8.8.2 be usi...
See issue https://github.com/haskell/directory/issues/100
I would not release GHC-8.10.1 with that `directory` version, as it's subtly breaks stuff and even not into "let's make it as in spec" direction.
Neither should GHC-8.8.2 be using `directory-1.3.4.0`; that's again subtle and breaking change.
EDIT: it seems that breakage is made arlready in 1.3.3.2 (patch release :( ), which is what GHC-8.8.1 bundles. *crap*. Let's fix that for 8.8.2 / 8.10.1
V
8.8.3
https://gitlab.haskell.org/ghc/ghc/-/issues/17575
Failure to runhaskell with -package=Cabal on Windows
2020-02-25T01:03:11Z
Neil Mitchell
Failure to runhaskell with -package=Cabal on Windows
## Summary
On Windows, using the x86_64 build from haskell.org, I get:
```
C:\Neil\temp>C:\ghc\ghc-8.8.1\bin\runhaskell.exe -package=Cabal HelloWorld.hs
ghc.exe: | C:\ghc\ghc-8.8.1\lib\Cabal-3.0.0.0\HSCabal-3.0.0.0.o: unknown symbol `...
## Summary
On Windows, using the x86_64 build from haskell.org, I get:
```
C:\Neil\temp>C:\ghc\ghc-8.8.1\bin\runhaskell.exe -package=Cabal HelloWorld.hs
ghc.exe: | C:\ghc\ghc-8.8.1\lib\Cabal-3.0.0.0\HSCabal-3.0.0.0.o: unknown symbol `.file'
ghc.exe: unable to load package `Cabal-3.0.0.0'
```
I get that regardless as to whether `HelloWorld.hs` exists (and is a hello world program) or is missing.
## Expected behavior
Something useful, e.g. running the file I pass.
## Environment
* GHC version used: 8.8.1
Optional:
* Operating System: Windows
* System Architecture: x86_64
I can reproduce this bug both on my home machine, and on my Appveyor CI (which goes via Stack).
8.8.3
Tamar Christina
Tamar Christina
https://gitlab.haskell.org/ghc/ghc/-/issues/17429
the impossible pprPanic, called at compiler/cmm/CmmLive.hs:70:8 in ghc:CmmLive
2020-02-06T22:20:47Z
David Hewson
the impossible pprPanic, called at compiler/cmm/CmmLive.hs:70:8 in ghc:CmmLive
## Summary
Whilst upgrading our project to use 8.8.1 to avoid a bug in 8.6.5 I encountered the following. I had everything building with `-O0` and then tried to do an `-O2` build but received this.
```
ghc: panic! (the 'impossible' hap...
## Summary
Whilst upgrading our project to use 8.8.1 to avoid a bug in 8.6.5 I encountered the following. I had everything building with `-O0` and then tried to do an `-O2` build but received this.
```
ghc: panic! (the 'impossible' happened)
(GHC version 8.8.1 for x86_64-unknown-linux):
LocalReg's live-in to graph
cxl1 {_svLx::P64, _svLy::P64, _svLz::P64, _svLA::P64, _svLB::P64}
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1159:37 in ghc:Outputable
pprPanic, called at compiler/cmm/CmmLive.hs:70:8 in ghc:CmmLive
```
Whilst trying to remove code (there's a lot) to produce something shareable i removed `{-# INLINE f #-}` from some functions and the error went away.
I do not yet have a small reproduction but am able to try any suggestions
## Steps to reproduce
compile my code with `-O1` or `-O2`
## Expected behavior
it to build
## Environment
* GHC version used: 8.8.1
Optional:
* Operating System: ubuntu 18.04
* System Architecture: x86_64
8.8.3
Andreas Klebinger
Andreas Klebinger