#7557: Default implementation for a type class function missing when profiling
is
enabled
-----------------------------+----------------------------------------------
Reporter: JohnWiegley | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 7.6.1 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Blockedby:
Blocking: | Related:
-----------------------------+----------------------------------------------
I tried to reduce this to a simpler case, but was unable to produce the
bug.
At the following line you'll see the function `loadObject'` defined for
the type class `Updatable`:
https://github.com/fpco/gitlib/blob/master/gitlib/Data/Git/Internal.hs#L115
And on this line I create an instance of the `Updatable` type class, with
no override for this function:
https://github.com/fpco/gitlib/blob/master/gitlib/Data/Git/Blob.hs#L47
All is well until I build with profiling, as follows:
{{{
cabal configure \
--enable-tests \
--enable-benchmarks \
--enable-library-profiling \
--enable-executable-profiling \
--ghc-option=-rtsopts \
--ghc-option=-prof \
--ghc-option=-fprof-auto \
--ghc-option=-fprof-auto-calls
cabal build
}}}
When built with profiling, the linker thinks that Blob.hs is trying to
call another version of `loadObject'`,
`_gitlibzm0zi5zi3_DataziGitziInternal_loadObjectzq_C1h_cc`, which is not
defined anywhere. The default implementation in the type class definition
is named `_gitlibzm0zi5zi3_DataziGitziInternal_loadObjectzq_C1g_cc`.
The happens with both 7.4.2 and 7.6.1.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7557>
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