
#16297: Access violation and hang with template haskell -------------------------------------+------------------------------------- Reporter: jeiea | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Keywords: | Operating System: Windows Architecture: x86_64 | Type of failure: Compile-time (amd64) | crash or panic Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- I found this while building the haskell-ide-engine on windows. During that build I was stuck on two packages(fclabels, haskell-lsp-types). {{{ D:\test>stack install --resolver lts-13.6 fclabels fclabels-2.0.3.3: configure fclabels-2.0.3.3: build -- While building package fclabels-2.0.3.3 using: C:\sr\setup-exe-cache\x86_64-windows\Cabal- simple_Z6RU0evB_2.4.0.1_ghc-8.6.3.exe --builddir=.stack-work\dist\e626a42b build --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always" Process exited with code: ExitFailure 1 Logs have been written to: C:\sr\global-project\.stack- work\logs\fclabels-2.0.3.3.log Configuring fclabels-2.0.3.3... Preprocessing library for fclabels-2.0.3.3.. Building library for fclabels-2.0.3.3.. [ 1 of 10] Compiling Data.Label.Point ( src\Data\Label\Point.hs, .stack-work\dist\e626a42b\build\Data\Label\Point.o ) [ 2 of 10] Compiling Data.Label.Poly ( src\Data\Label\Poly.hs, .stack-work\dist\e626a42b\build\Data\Label\Poly.o ) [ 3 of 10] Compiling Data.Label.Partial ( src\Data\Label\Partial.hs, .stack-work\dist\e626a42b\build\Data\Label\Partial.o ) [ 4 of 10] Compiling Data.Label.Mono ( src\Data\Label\Mono.hs, .stack-work\dist\e626a42b\build\Data\Label\Mono.o ) [ 5 of 10] Compiling Data.Label.Failing ( src\Data\Label\Failing.hs, .stack-work\dist\e626a42b\build\Data\Label\Failing.o ) [ 6 of 10] Compiling Data.Label.Derive ( src\Data\Label\Derive.hs, .stack-work\dist\e626a42b\build\Data\Label\Derive.o ) [ 7 of 10] Compiling Data.Label ( src\Data\Label.hs, .stack- work\dist\e626a42b\build\Data\Label.o ) [ 8 of 10] Compiling Data.Label.Base ( src\Data\Label\Base.hs, .stack-work\dist\e626a42b\build\Data\Label\Base.o ) -- doesn't terminate }}} {{{ D:\test>stack install --resolver lts-13.6 haskell-lsp-types haskell-lsp-types-0.8.0.1: configure haskell-lsp-types-0.8.0.1: build -- While building package haskell-lsp-types-0.8.0.1 using: C:\sr\setup-exe-cache\x86_64-windows\Cabal- simple_Z6RU0evB_2.4.0.1_ghc-8.6.3.exe --builddir=.stack-work\dist\e626a42b build --ghc-options " -ddump-hi -ddump-to-file -fdiagnostics-color=always" Process exited with code: ExitFailure 11 Logs have been written to: D:\Hoj\Desktop\fclabels-2.0.3.3\.stack- work\logs\haskell-lsp-types-0.8.0.1.log Configuring haskell-lsp-types-0.8.0.1... Preprocessing library for haskell-lsp-types-0.8.0.1.. Building library for haskell-lsp-types-0.8.0.1.. [ 1 of 24] Compiling Language.Haskell.LSP.Types.Constants ( src\Language\Haskell\LSP\Types\Constants.hs, .stack- work\dist\e626a42b\build\Language\Haskell\LSP\Types\Constants.o ) [ 2 of 24] Compiling Language.Haskell.LSP.Types.List ( src\Language\Haskell\LSP\Types\List.hs, .stack- work\dist\e626a42b\build\Language\Haskell\LSP\Types\List.o ) [ 3 of 24] Compiling Language.Haskell.LSP.Types.DocumentFilter ( src\Language\Haskell\LSP\Types\DocumentFilter.hs, .stack- work\dist\e626a42b\build\Language\Haskell\LSP\Types\DocumentFilter.o ) Access violation in generated code when reading 0x1017895900 Attempting to reconstruct a stack trace... Frame Code address * 0x4ffd920 0x17c3f148 C:\sr\snapshots\3233b5e2\lib\x86_64 -windows- ghc-8.6.3\aeson-1.4.2.0-nGorlomFPWK9VTcoGhjmV\HSaeson-1.4.2.0-nGorlomFPWK9VTcoGhjmV.o+0x2f040 (aesonzm1zi4zi2zi0zmnGorlomFPWK9VTcoGhjmV_DataziAesonziTH_consToValue_info+0x688) }}} I don't know if those two issues are same. I tried simplifying the former. {{{ -- A.hs {-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE TemplateHaskell #-} module A ( head , tail ) where -- import Prelude hiding (fst, snd, head, tail) -- import Control.Arrow (arr, Kleisli(..), ArrowApply, ArrowZero, ArrowChoice) import B (getLabel) -- data Point cat g i f o = Point (cat f o) (cat (cat o i, f) g) -- data PLens cat f o where -- PLens :: !(Point cat g i f o) -> PLens cat (f -> g) (o -> i) -- Id :: ArrowApply cat => PLens cat f f -- type Lens cat f o = PLens cat (f -> f) (o -> o) -- head :: (ArrowZero arr, ArrowApply arr, ArrowChoice arr) => Lens arr [a] a -- tail :: (ArrowZero arr, ArrowApply arr, ArrowChoice arr) => Lens arr [a] [a] (head, tail) = $(getLabel ''[]) }}} {{{ -- B.hs {-# LANGUAGE TemplateHaskell #-} module B (getLabel) where import Language.Haskell.TH getLabel :: Name -> Q Exp getLabel = undefined }}} `stack exec ghc --resolver lts-13.6 -- A.hs B.hs` also hangs. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16297 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler