
#8618: can't load .so/.DLL -------------------------------------+------------------------------------- Reporter: Feuerbach | Owner: Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 7.7 (Linking) | Resolution: invalid | 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: | -------------------------------------+------------------------------------- Comment (by thomie): From compiler/specialise/SpecConstr.hs: {{{ Note [Forcing specialisation] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With stream fusion and in other similar cases, we want to fully specialise some (but not necessarily all!) loops regardless of their size and the number of specialisations. We allow a library to do this, in one of two ways (one which is deprecated): 1) Add a parameter of type GHC.Types.SPEC (from ghc-prim) to the loop body. 2) (Deprecated) Annotate a type with ForceSpecConstr from GHC.Exts, and then add *that* type as a parameter to the loop body The reason #2 is deprecated is because it requires GHCi, which isn't available for things like a cross compiler using stage1. }}} So it goes something like this: * uniplate used `ForceSpecConstr` somewhere * `ForceSpecConstr` requires GHCi to run * since ghc-7.8, GHCi requires shared libraries to be built * `shared:false` disables building shared libraries * error I changed `uniplate` to use `GHC.Types.SPEC` instead of `ForceSpecConstr`, as suggested by that `Note`. I don't think I am covering up a bug in GHC here. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8618#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler