Wir arbeiten an einem Fork von Parsec (mit kompletter QuickCheck Testsuite, besseren Fehlermeldungen und anderen Verbesserungen) und es wurden einige Fortschritte gemacht. Die meiste Zeit habe ich mit REPL von Emacs gearbeitet und das Build-Ziel tests
angegeben (das ist offensichtlich der Name der Testsuite). Das hat gut funktioniert.GHC Panic: Geladenes Shared Objekt fehlgeschlagen
Jetzt ist unsere Sache geht, die Tests, alles scheint in Ordnung zu sein, aber wenn ich REPL mit Bibliothek Ziel starten (oder Weglassen, dh cabal repl
oder cabal repl lib:megaparsec
) und etwas tun, bekomme ich GHC Panik:
λ> parseTest (string "rere" <* eof) "reri"
ghc: panic! (the 'impossible' happened)
(GHC version 7.10.1 for x86_64-unknown-linux):
Loading temp shared object failed: /tmp/ghc9380_0/libghc9380_93.so: undefined symbol: _hpc_tickboxes_megapzuEw3SHAmfXgNLpm5a31oXO6_TextziMegaparsecziError_hpc
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Da der Code kompiliert und funktioniert gut über cabal repl tests
, schließe ich das ist nicht mein Programmierfehler auf jeden Fall, aber möglicherweise ist es ein Fehler. Ich habe dieses Ticket gefunden: https://ghc.haskell.org/trac/ghc/ticket/10761, aber unsere Bibliothek verwendet nicht Template Haskell.
Aktuelle Frage ist: Was soll ich tun und wie kann das behoben werden? Ich kann nicht einmal sagen, ob es Cabal oder GHC ist, ich habe keine Ahnung, wie man ein minimales Beispiel baut, das das Problem reproduzieren könnte.
Ich habe es berichtet:
https://ghc.haskell.org/trac/ghc/ticket/10765#ticket
Dies sieht aus wie einige Seltsamkeit in Bezug auf 'HPC' (Hakkell Programmabdeckung). Haben Sie versucht, HPC zu deaktivieren ("cabal clean" ausführen und dann erneut konfigurieren, sicherstellen, dass "HPC" nicht aktiviert ist?) – bennofs
@bennofs, in der Tat, ohne '--enable-coverage' Option passiert das nicht! Woher wussten Sie, dass dies HPC-bezogen ist? Fügen Sie dies auch als Antwort hinzu, dies könnte für zukünftige Leser nützlich sein :-D Sollte ich einen Fehler an HPC-Betreuer oder etwas melden? – Mark