[GHC] #10192: Template Haskell crashes when building yesod-core package

#10192: Template Haskell crashes when building yesod-core package -------------------------------------+------------------------------------- Reporter: DanielDiaz | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.4 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Blocked By: Test Case: | Related Tickets: Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- This is the output when trying to install yesod-core in a sandbox: {{{ Configuring yesod-core-1.4.8.3... Building yesod-core-1.4.8.3... Preprocessing library yesod-core-1.4.8.3... [ 1 of 31] Compiling Yesod.Routes.TH.Types ( Yesod/Routes/TH/Types.hs, dist/dist-sandbox-d1f72a97/build/Yesod/Routes/TH/Types.o ) [ 2 of 31] Compiling Yesod.Routes.TH.Dispatch ( Yesod/Routes/TH/Dispatch.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Routes/TH/Dispatch.o ) [ 3 of 31] Compiling Yesod.Routes.Overlap ( Yesod/Routes/Overlap.hs, dist /dist-sandbox-d1f72a97/build/Yesod/Routes/Overlap.o ) [ 4 of 31] Compiling Yesod.Core.TypeCache ( Yesod/Core/TypeCache.hs, dist /dist-sandbox-d1f72a97/build/Yesod/Core/TypeCache.o ) [ 5 of 31] Compiling Yesod.Routes.Class ( Yesod/Routes/Class.hs, dist /dist-sandbox-d1f72a97/build/Yesod/Routes/Class.o ) [ 6 of 31] Compiling Yesod.Routes.TH.RenderRoute ( Yesod/Routes/TH/RenderRoute.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Routes/TH/RenderRoute.o ) [ 7 of 31] Compiling Yesod.Routes.TH.ParseRoute ( Yesod/Routes/TH/ParseRoute.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Routes/TH/ParseRoute.o ) [ 8 of 31] Compiling Yesod.Routes.TH.RouteAttrs ( Yesod/Routes/TH/RouteAttrs.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Routes/TH/RouteAttrs.o ) [ 9 of 31] Compiling Yesod.Routes.TH ( Yesod/Routes/TH.hs, dist/dist- sandbox-d1f72a97/build/Yesod/Routes/TH.o ) [10 of 31] Compiling Yesod.Routes.Parse ( Yesod/Routes/Parse.hs, dist /dist-sandbox-d1f72a97/build/Yesod/Routes/Parse.o ) [11 of 31] Compiling Paths_yesod_core ( dist/dist-sandbox- d1f72a97/build/autogen/Paths_yesod_core.hs, dist/dist-sandbox- d1f72a97/build/Paths_yesod_core.o ) [12 of 31] Compiling Yesod.Core.Internal.Util ( Yesod/Core/Internal/Util.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Core/Internal/Util.o ) [13 of 31] Compiling Yesod.Core.Types ( Yesod/Core/Types.hs, dist/dist- sandbox-d1f72a97/build/Yesod/Core/Types.o ) [14 of 31] Compiling Yesod.Core.Class.Handler ( Yesod/Core/Class/Handler.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Core/Class/Handler.o ) Yesod/Core/Class/Handler.hs:25:1: Warning: Module ‘Control.Monad.Trans.Error’ is deprecated: Use Control.Monad.Trans.Except instead Yesod/Core/Class/Handler.hs:56:11: Warning: In the use of type constructor or class ‘Error’ (imported from Control.Monad.Trans.Error): Deprecated: "Use Control.Monad.Trans.Except instead" Yesod/Core/Class/Handler.hs:56:54: Warning: In the use of type constructor or class ‘ErrorT’ (imported from Control.Monad.Trans.Error): Deprecated: "Use Control.Monad.Trans.Except instead" Yesod/Core/Class/Handler.hs:56:91: Warning: In the use of type constructor or class ‘ErrorT’ (imported from Control.Monad.Trans.Error): Deprecated: "Use Control.Monad.Trans.Except instead" Yesod/Core/Class/Handler.hs:79:11: Warning: In the use of type constructor or class ‘Error’ (imported from Control.Monad.Trans.Error): Deprecated: "Use Control.Monad.Trans.Except instead" Yesod/Core/Class/Handler.hs:79:52: Warning: In the use of type constructor or class ‘ErrorT’ (imported from Control.Monad.Trans.Error): Deprecated: "Use Control.Monad.Trans.Except instead" [15 of 31] Compiling Yesod.Core.Internal.Request ( Yesod/Core/Internal/Request.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Core/Internal/Request.o ) [16 of 31] Compiling Yesod.Core.Internal.Session ( Yesod/Core/Internal/Session.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Core/Internal/Session.o ) [17 of 31] Compiling Yesod.Core.Content ( Yesod/Core/Content.hs, dist /dist-sandbox-d1f72a97/build/Yesod/Core/Content.o ) Yesod/Core/Content.hs:227:27: Warning: In the use of ‘B.breakByte’ (imported from Data.ByteString): Deprecated: "It is an internal function and should never have been exported. Use 'break (== x)' instead. (There are rewrite rules that handle this special case of 'break'.)" Yesod/Core/Content.hs:232:36: Warning: In the use of ‘B.breakByte’ (imported from Data.ByteString): Deprecated: "It is an internal function and should never have been exported. Use 'break (== x)' instead. (There are rewrite rules that handle this special case of 'break'.)" Yesod/Core/Content.hs:235:19: Warning: In the use of ‘B.breakByte’ (imported from Data.ByteString): Deprecated: "It is an internal function and should never have been exported. Use 'break (== x)' instead. (There are rewrite rules that handle this special case of 'break'.)" [18 of 31] Compiling Yesod.Core.Handler ( Yesod/Core/Handler.hs, dist /dist-sandbox-d1f72a97/build/Yesod/Core/Handler.o ) Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading package array-0.5.1.0 ... linking ... done. Loading package auto-update-0.1.2.1 ... linking ... done. Loading package deepseq-1.3.0.2 ... linking ... done. Loading package bytestring-0.10.6.0 ... linking ... done. Loading package text-1.2.0.4 ... linking ... done. Loading package blaze-builder-0.4.0.1 ... linking ... done. Loading package hashable-1.2.3.2 ... linking ... done. Loading package case-insensitive-1.2.0.4 ... linking ... done. Loading package containers-0.5.6.3 ... linking ... done. Loading package scientific-0.3.3.8 ... linking ... done. Loading package attoparsec-0.12.1.3 ... linking ... done. Loading package http-date-0.0.6 ... linking ... done. Loading package http-types-0.8.6 ... linking ... done. Loading package appar-0.1.4 ... linking ... done. Loading package byteorder-1.0.4 ... linking ... done. Loading package time-1.5.0.1 ... linking ... done. Loading package unix-2.7.1.0 ... linking ... done. Loading package network-2.6.0.2 ... linking ... done. Loading package iproute-1.3.2 ... linking ... done. Loading package simple-sendfile-0.2.18 ... linking ... done. Loading package filepath-1.4.0.0 ... linking ... done. Loading package directory-1.2.2.0 ... linking ... done. Loading package process-1.2.3.0 ... linking ... done. Loading package random-1.1 ... linking ... done. Loading package stm-2.4.4 ... linking ... done. Loading package transformers-0.4.3.0 ... linking ... done. Loading package zlib-0.5.4.2 ... linking ... done. Loading package streaming-commons-0.1.10.0 ... linking ... done. Loading package unix-compat-0.4.1.4 ... linking ... done. Loading package unordered-containers-0.2.5.1 ... linking ... done. Loading package vault-0.3.0.4 ... linking ... done. Loading package nats-1 ... linking ... done. Loading package semigroups-0.16.2.2 ... linking ... done. Loading package void-0.7 ... linking ... done. Loading package wai-3.0.2.3 ... linking ... done. Loading package warp-3.0.10 ... linking ... done. Loading package ansi-terminal-0.6.2.1 ... linking ... done. Loading package base64-bytestring-1.0.0.1 ... linking ... done. Loading package data-default-class-0.0.1 ... linking ... done. Loading package bytestring-builder-0.10.4.1.2 ... linking ... done. Loading package fast-logger-2.3.0 ... linking ... done. Loading package transformers-compat-0.4.0.4 ... linking ... done. Loading package transformers-base-0.4.4 ... linking ... done. Loading package monad-control-1.0.0.4 ... linking ... done. Loading package lifted-base-0.2.3.6 ... linking ... done. Loading package old-locale-1.0.0.7 ... linking ... done. Loading package mtl-2.2.1 ... linking ... done. Loading package exceptions-0.8.0.2 ... linking ... done. Loading package mmorph-1.0.4 ... linking ... done. Loading package resourcet-1.1.4.1 ... linking ... done. Loading package stringsearch-0.3.6.5 ... linking ... done. Loading package easy-file-0.2.0 ... linking ... done. Loading package binary-0.7.4.0 ... linking ... done. Loading package old-time-1.1.0.3 ... linking ... done. Loading package unix-time-0.3.5 ... linking ... done. Loading package wai-logger-2.2.3 ... linking ... done. Loading package word8-0.1.2 ... linking ... done. Loading package wai-extra-3.0.4.6 ... linking ... done. Loading package dlist-0.7.1.1 ... linking ... done. Loading package syb-0.4.4 ... linking ... done. Loading package pretty-1.1.3.2 ... linking ... done. Loading package template-haskell ... linking ... done. Loading package primitive-0.5.4.0 ... linking ... done. Loading package vector-0.10.12.2 ... linking ... done. Loading package aeson-0.8.0.2 ... linking ... done. Loading package blaze-markup-0.7.0.2 ... linking ... done. Loading package blaze-html-0.8.0.2 ... linking ... done. Loading package parsec-3.1.9 ... linking ... done. Loading package system-filepath-0.4.13.2 ... linking ... done. Loading package system-fileio-0.3.16.1 ... linking ... done. Loading package shakespeare-2.0.4.1 ... linking ... done. Loading package safe-0.3.8 ... linking ... done. Loading package path-pieces-0.2.0 ... linking ... done. Loading package mwc-random-0.13.3.0 ... linking ... done. Loading package conduit-1.2.4 ... linking ... done. Loading package conduit-extra-1.1.7.1 ... linking ... done. Loading package monad-loops-0.4.2.1 ... linking ... done. Loading package stm-chans-3.0.0.2 ... linking ... done. Loading package monad-logger-0.3.13.1 ... linking ... done. Loading package data-default-instances-base-0.0.1 ... linking ... done. Loading package data-default-instances-containers-0.0.1 ... linking ... done. Loading package data-default-instances-dlist-0.0.1 ... linking ... done. Loading package data-default-instances-old-locale-0.0.1 ... linking ... done. Loading package data-default-0.5.3 ... linking ... done. Loading package cookie-0.4.1.4 ... linking ... done. Loading package cereal-0.4.1.1 ... linking ... done. Loading package byteable-0.1.1 ... linking ... done. Loading package securemem-0.1.7 ... linking ... done. Loading package crypto-cipher-types-0.0.9 ... linking ... done. Loading package cipher-aes-0.2.10 ... linking ... done. Loading package crypto-random-0.0.9 ... linking ... done. Loading package cprng-aes-0.6.1 ... linking ... done. Loading package entropy-0.3.6 ... linking ... done. Loading package tagged-0.7.3 ... linking ... done. Loading package crypto-api-0.13.2 ... linking ... done. Loading package setenv-0.1.1.3 ... linking ... done. Loading package skein-1.0.9.2 ... linking ... done. Loading package clientsession-0.9.1.1 ... linking ... done. [19 of 31] Compiling Yesod.Core.Widget ( Yesod/Core/Widget.hs, dist/dist- sandbox-d1f72a97/build/Yesod/Core/Widget.o ) [20 of 31] Compiling Yesod.Core.Class.Breadcrumbs ( Yesod/Core/Class/Breadcrumbs.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Core/Class/Breadcrumbs.o ) [21 of 31] Compiling Yesod.Core.Class.Yesod ( Yesod/Core/Class/Yesod.hs, dist/dist-sandbox-d1f72a97/build/Yesod/Core/Class/Yesod.o ) [22 of 31] Compiling Yesod.Core.Json ( Yesod/Core/Json.hs, dist/dist- sandbox-d1f72a97/build/Yesod/Core/Json.o ) [23 of 31] Compiling Yesod.Core.Internal.Response ( Yesod/Core/Internal/Response.hs, dist/dist-sandbox- d1f72a97/build/Yesod/Core/Internal/Response.o ) [24 of 31] Compiling Yesod.Core.Internal.Run ( Yesod/Core/Internal/Run.hs, dist/dist-sandbox-d1f72a97/build/Yesod/Core/Internal/Run.o ) ByteCodeLink.lookupCE During interactive linking, GHCi couldn't find the following symbol: templatezmhaskell_LanguageziHaskellziTHziSyntax_zdfMonadQzuzdczgzgze_closure This may be due to you not asking GHCi to load extra object files, archives or DLLs needed by your current session. Restart GHCi, specifying the missing library using the -L/path/to/object/dir and -lmissinglibname flags, or simply by naming the relevant files on the GHCi command line. Alternatively, this link failure might indicate a bug in GHCi. If you suspect the latter, please send a bug report to: glasgow-haskell-bugs@haskell.org }}} It's in a fresh installation of GHC-7.8.4, using cabal-install-1.22.2.0. It is worth noting that this works: {{{ cabal sandbox init cabal install yesod-core }}} But this does not: {{{ cabal sandbox init cabal install yesod-core --upgrade-dependencies --force-reinstalls }}} The context where I ran into this problem uses {{{--upgrade- dependencies}}}, and installs yesod-core as a dependency. Let me know if you need more information. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10192 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#10192: Template Haskell crashes when building yesod-core package -------------------------------------+------------------------------------- Reporter: DanielDiaz | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.4 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by snoyberg): Seems like the bug is that it's forcing a new installation of template- haskell, which isn't working. I'd recommend adding a constraint requiring `template-haskell installed` and see if that fixes your problem. I would definitely advise against such an upgrade. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10192#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#10192: Template Haskell crashes when building yesod-core package -------------------------------------+------------------------------------- Reporter: DanielDiaz | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.4 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by DanielDiaz): Replying to [comment:1 snoyberg]:
Seems like the bug is that it's forcing a new installation of template- haskell, which isn't working. I'd recommend adding a constraint requiring `template-haskell installed` and see if that fixes your problem. I would definitely advise against such an upgrade.
That indeed worked. I added "constraint: template-haskell installed" to my {{{~/.cabal/config}}} file and I built yesod-core successfully. I must admit I didn't knew about the constraint on installed versions. If it's the case that template-haskell should not be upgraded... Shouldn't this constraint be there by default? Or somehow enforced by any other means? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10192#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#10192: Template Haskell crashes when building yesod-core package -------------------------------------+------------------------------------- Reporter: DanielDiaz | Owner: Type: bug | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.8.4 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Changes (by DanielDiaz): * priority: normal => low * failure: None/Unknown => Compile-time crash -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10192#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#10192: Template Haskell crashes when building yesod-core package -------------------------------------+------------------------------------- Reporter: DanielDiaz | Owner: Type: bug | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.8.4 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by refold): I think that this is (sort of) fixed in GHC 7.10+ because `template- haskell` no longer depends on `containers`. It may still be worthwhile looking into why reinstalling the same version of `template-haskell` (2.9.0.0) breaks things. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10192#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#10192: Template Haskell crashes when building yesod-core package -------------------------------------+------------------------------------- Reporter: DanielDiaz | Owner: Type: bug | Status: closed Priority: low | Milestone: Component: Compiler | Version: 7.8.4 Resolution: worksforme | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by thomie): * status: new => closed * resolution: => worksforme Comment:
I added "constraint: template-haskell installed" to my {{{~/.cabal/config}}} file and I built yesod-core successfully.
-- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10192#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC