#3391: Generics compilation failure in combination with Data.Accessor deriving
-----------------------------+----------------------------------------------
Reporter: darchon | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 6.11 | Severity: normal
Keywords: Generics | Testcase:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
-----------------------------+----------------------------------------------
When trying to compile (using my latest build: 6.11.20090722) a file with
-XGenerics I get the following error:
{{{
"inplace/bin/ghc-stage2" -O -H64m -package-name clash-0.1 -hide-all-
packages -i
-ilibraries/clash-lib/cλash/. -ilibraries/clash-lib/cλash/dist-
install/build
-ilibraries/clash-lib/cλash/dist-install/build/autogen -Ilibraries/clash-
lib/cλash/dist-install/build
-Ilibraries/clash-lib/cλash/dist-install/build/autogen -Ilibraries/clash-
lib/cλash/.
-optP-include -optPlibraries/clash-lib/cλash/dist-
install/build/autogen/cabal_macros.h
-package base-4.1.0.0 -package containers-0.2.0.1 -package data-
accessor-0.2.1
-package data-accessor-template-0.2.1.1 -package filepath-1.1.0.1 -package
ghc-6.11.20090722
-package haskell98-1.0.1.0 -package pretty-1.0.1.0 -package
prettyclass-1.0.0.0 -package syb-0.1.0.0
-package template-haskell-2.4.0.0 -package transformers-0.1.4.0 -package
vhdl-0.1 -O2 -XGenerics
-fno-warn-deprecated-flags -Wwarn -odir libraries/clash-lib/cλash
/dist-install/build
-hidir libraries/clash-lib/cλash/dist-install/build -stubdir libraries
/clash-lib/cλash/dist-install/build
-hisuf hi -osuf o -hcsuf hc -c libraries/clash-
lib/cλash/./CLasH/VHDL/VHDLTypes.hs
-o libraries/clash-lib/cλash/dist-install/build/CLasH/VHDL/VHDLTypes.o
... Loading some packages etc etc. ...
/var/folders/wh/whtzeDfoGBCCu-
65jmvmZU+++TI/-Tmp-/ghc58528_0/ghc58528_0.s:4565:0:
FATAL:Symbol
_clashzm0zi1_CLasHziVHDLziVHDLTypes_zdgfromVHDLState_closure already
defined.
gmake[1]: *** [libraries/clash-lib/cλash/dist-
install/build/CLasH/VHDL/VHDLTypes.o] Error 1
gmake: *** [all] Error 2
}}}
Indeed, when I compile with -dcore-lint I get to see this:
{{{
*** Core Lint Errors: in result of Desugar ***
<no location info>:
Duplicate variables brought into scope
[[CLasH.VHDL.VHDLTypes.$gfromTypeState,
CLasH.VHDL.VHDLTypes.$gfromTypeState,
CLasH.VHDL.VHDLTypes.$gfromTypeState],
[CLasH.VHDL.VHDLTypes.$gtoTypeState,
CLasH.VHDL.VHDLTypes.$gtoTypeState,
CLasH.VHDL.VHDLTypes.$gtoTypeState],
[CLasH.VHDL.VHDLTypes.$gfromEntity,
CLasH.VHDL.VHDLTypes.$gfromEntity,
CLasH.VHDL.VHDLTypes.$gfromEntity],
[CLasH.VHDL.VHDLTypes.$gtoEntity, CLasH.VHDL.VHDLTypes.$gtoEntity,
CLasH.VHDL.VHDLTypes.$gtoEntity],
[CLasH.VHDL.VHDLTypes.$gfromOrdType,
CLasH.VHDL.VHDLTypes.$gfromOrdType,
CLasH.VHDL.VHDLTypes.$gfromOrdType],
[CLasH.VHDL.VHDLTypes.$gtoOrdType,
CLasH.VHDL.VHDLTypes.$gtoOrdType,
CLasH.VHDL.VHDLTypes.$gtoOrdType],
[CLasH.VHDL.VHDLTypes.$gfromHType,
CLasH.VHDL.VHDLTypes.$gfromHType,
CLasH.VHDL.VHDLTypes.$gfromHType],
[CLasH.VHDL.VHDLTypes.$gtoHType, CLasH.VHDL.VHDLTypes.$gtoHType,
CLasH.VHDL.VHDLTypes.$gtoHType],
[CLasH.VHDL.VHDLTypes.$gfromVHDLState,
CLasH.VHDL.VHDLTypes.$gfromVHDLState],
[CLasH.VHDL.VHDLTypes.$gtoVHDLState,
CLasH.VHDL.VHDLTypes.$gtoVHDLState]]
*** Offending Program ***
.. Many, Many lines of Core output ..
}}}
Note that when I compile without -XGenerics (but with -dcore-lint) I do
not get any error.
I assume it has something to do with the following two lines in my
sourcecode:
{{{
$( Data.Accessor.Template.deriveAccessors ''TypeState )
$( Data.Accessor.Template.deriveAccessors ''VHDLState )
}}}
As there are no errors when I remove those two TH splices (Sadly so, I
need those accessors)
The implementation of Data.Accessor.Template.deriveAccessors can be found
here (it's patched to work with version 2.4 of the template-haskell
library): [http://github.com/christiaanb/data-
accessor/blob/988137e3cb152ff0c66ec97919069d765b3669c6/template/src/Data/Accessor/Template.hs]
Maybe it's related to: #2456
For me it's not such a big problem as I will just compile that file with
the NoGenerics Language pragma. But I would still like to know what might
be causing this bug.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3391>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs