GHCiでライブラリを読み込むときに失敗する

167 views
Skip to first unread message

kagamilove0707

unread,
Oct 12, 2013, 2:56:31 PM10/12/13
to haske...@googlegroups.com
初投稿になります、kagamilove0707(月影)という者です。

数日前に依存地獄に陥って、泣く泣くHaskell Platformを再インストールし直したのですが、それまで上手くいっていたGHCiでのライブラリの読み込みに失敗するようになってしまいました。

具体的には、こんな感じです。

環境
  * Windows 8
  * Haskell Platform 2013.2.0.0
  * ghc 7.6.3
  * cabal 1.18.0.2
  * gcc 4.7.3

エラー

```
> ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> import Graphics.UI.FreeGame
Prelude Graphics.UI.FreeGame> runGame def $ foreverTick $ colored red $ polygon [V2 100 100, V2 200 100, V2 200 200, V2 100 200]
Loading package array-0.4.0.1 ... linking ... done.
Loading package deepseq-1.3.0.1 ... linking ... done.
Loading package bytestring-0.10.0.2 ... linking ... done.
Loading package zlib-0.5.4.1 ... linking ... done.
Loading package Win32-2.3.0.0 ... linking ... done.
Loading package primitive-0.5.0.1 ... linking ... done.
Loading package vector-0.10.0.1 ... linking ... done.
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package old-locale-1.0.0.5 ... linking ... done.
Loading package time-1.4.0.1 ... linking ... done.
Loading package text-0.11.3.1 ... linking ... done.
Loading package random-1.0.1.1 ... linking ... done.
Loading package containers-0.5.0.0 ... linking ... done.
Loading package pretty-1.1.1.0 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package QuickCheck-2.6 ... linking ... done.
Loading package OpenGLRaw-1.3.0.0 ... linking ... done.
Loading package GLURaw-1.3.0.0 ... linking ... done.
Loading package OpenGL-2.8.0.0 ... linking ... done.
Loading package mtl-2.1.2 ... linking ... done.
Loading package filepath-1.3.0.1 ... linking ... done.
Loading package directory-1.2.0.1 ... linking ... done.
Loading package GLFW-b-0.1.0.5 ... <interactive>: Unknown PEi386 section name `.drectve' (while processing: C:\Users\0707\AppData\Roaming\cabal\i386-windows-ghc
-7.6.3\GLFW-b-0.1.0.5\libHSGLFW-b-0.1.0.5.a)
ghc.exe: panic! (the 'impossible' happened)
  (GHC version 7.6.3 for i386-unknown-mingw32):
        loadArchive "C:\\Users\\0707\\AppData\\Roaming\\cabal\\i386-windows-ghc-
7.6.3\\GLFW-b-0.1.0.5\\libHSGLFW-b-0.1.0.5.a": failed

Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug

Prelude Graphics.UI.FreeGame>
```

エラーメッセージで検索したら http://ghc.haskell.org/trac/ghc/ticket/7056 といghcのうチケットに行き着いて、何度かghcのバージョンを変えるなどしてみているのですが、上手くいきません。
また、再インストールする前まで上手く動いていたものが、どうして上手く行かなくなったのかもよく分かりません。

どなたか解決策を教えていただけないでしょうか?

Fujiyan

unread,
Nov 21, 2013, 10:15:16 AM11/21/13
to haske...@googlegroups.com
初投稿です。Fujiyanと申します。



エラーメッセージで検索したら http://ghc.haskell.org/trac/ghc/ticket/7056 といghcのうチケットに行き着いて、何度かghcのバージョンを変えるなどしてみているのですが、上手くいきません。
また、再インストールする前まで上手く動いていたものが、どうして上手く行かなくなったのかもよく分かりません。

どなたか解決策を教えていただけないでしょうか?

私も同じ症状に陥りましたが、どうも#7056の問題は、Cabal 1.18で発生して、Cabal 1.16だと発生しないようです。

ですので、取り急ぎ解決する場合は、Haskell Platform 2013.2.0.0を再インストール後、
Cabalのバージョンアップを行わなければ、GLFW-bのインストールは成功します。

ただそうなると、次のHaskell Platform 2013.4.0.0で、GHC 7.6.x/Cabal 1.18.xという組み合わせになった場合、
Windowsでインストールできないパッケージが少なからず出てくるんじゃないかという心配があります…。
※persistent-sqlite-1.2.1も、同じ現象でインストールできませんでした


Fujiyan
https://sites.google.com/site/toriaezuzakki/

kagamilove0707

unread,
Nov 26, 2013, 9:06:48 AM11/26/13
to haske...@googlegroups.com
月影です。
Fujiyanさん、丁寧なご返信ありがとうございます。

まさかCabalが原因だなんて…。

とりあえず、特に急ぎのわけでは無いので、このまま使い続けていこうかと思います。
(そもそも、ghcでコンパイルする分には上手くいくわけですし)

このチケットがHaskell
Platformの次のバージョンのリリースまでに直っていることを願います。

On Fri, 22 Nov 2013 00:15:16 +0900, Fujiyan <fuji...@gmail.com> wrote:

> 初投稿です。Fujiyanと申します。
>
>
>> エラーメッセージで検索したら
>> http://ghc.haskell.org/trac/ghc/ticket/7056といghcのうチケットに行き着いて、何度かghcのバージョンを変えるなどしてみているのですが、上手くいきません。

Fujiyan

unread,
Nov 27, 2013, 10:50:21 AM11/27/13
to haske...@googlegroups.com

とりあえず、特に急ぎのわけでは無いので、このまま使い続けていこうかと思います。
(そもそも、ghcでコンパイルする分には上手くいくわけですし)

私の場合、cabal-installでGLFW-bをインストールすると失敗する、という現象なので、
ひょっとすると、別の原因かもしれませんが…

とりあえず、私の現象についてCabalにissueを投げたところ、
https://github.com/haskell/cabal/issues/1589
応急処置として、
%APPDATA%\cabal\configファイル内の
-- library-for-ghci: True
の行のコメントを外して有効化するようにアドバイスを貰い試したところ、
GLFW-bのインストールが成功しました。
※次のHaskell Platformには、対応版のCabalを乗せてもらえそうです。
※本来はGHCの問題なので、Cabal側には骨を折ってもらった形ですね…

一度、上記の対応を試してみてはいかがでしょうか?
※既にGLFW-bのインストールを試みて失敗されている場合は、上記対応の後に
※cabal install bindings-GLFW --reinstall
※で、bindings-GLFWを再インストール後に、改めてGLFW-bをインストールしてみてください。

ポイントとして、
%APPDATA%\cabal\i386-windows-ghc-7.6.3\bindings-GLFW-3.0.3.1
フォルダ内に、
HSbindings-GLFW-3.0.3.1.o
ファイルが作成されれば成功、なければ失敗します。
※library-for-ghci: Trueがコメントアウトされたままだと、上記のファイルが作成されません
※GHCの問題は、.oファイルが無い場合に.aファイルを読みに行ってpanicを起こしている様です。


2013年11月26日火曜日 23時06分48秒 UTC+9 kagamilove0707:
Reply all
Reply to author
Forward
0 new messages