LINUX.ORG.RU

cabal-dev ghci маскирует пакеты, а не должен

 ,


0

1

вот проект https://github.com/s9gf4ult/conduplay если в нем запустить cabal-dev ghci то загрузить conduplay.hs не получается

Prelude Main> :load conduplay.hs

conduplay.hs:13:8:
    Could not find module `Control.Monad.Trans'
    It is a member of the hidden package `mtl-2.1.2'.
    Perhaps you need to add `mtl' to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.
Failed, modules loaded: none.

хотя в кабал файле mtl указан в зависимостях conduplay.hs и установлен в cabal-dev. Загрузить gentext.hs можно

Prelude> :load gentext.hs
Ok, modules loaded: Main.
Prelude Main>

Cabal почему-то максирует все пакеты кроме указанных в зависимостях gentext (почему ?). Я ожидал что он вообще не будет маскировать все что в песочнице установлено, это было бы логично.

Все зависимости установлены, проект компилируется, версия cabal-dev последняя из git 415351d2312d46fcb3d6e4a258d773b85b343d71

Как сделать его не маскировать пакеты по cabal файлу ?

★★

Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от qnikst

да мне cabal init это впихнул, ща пофикшу ....

Готово

s9gf4ult ★★
() автор топика

Cabal почему-то максирует все пакеты кроме указанных в зависимостях gentext (почему ?)

Что это значит и откуда это следует?

Я ожидал что он вообще не будет маскировать все что в песочнице установлено, это было бы логично.

Что это значит и откуда это следует?

Как сделать его не маскировать пакеты по cabal файлу ?

Что это значит?

Вопрос, видимо, в том, куда нажать, чтобы сделать это:

$> ghci -package-db cabal-dev/packages-7.6.1.conf conduplay.hs
GHCi, version 7.6.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
(0.00 secs, 1193976 bytes)
(0.00 secs, 0 bytes)
[1 of 1] Compiling Main             ( conduplay.hs, interpreted )

conduplay.hs:15:1: Warning:
    The import of `Debug.Trace' is redundant
      except perhaps to import instances from `Debug.Trace'
    To import instances alone, use: import Debug.Trace()

conduplay.hs:27:7: Warning:
    This binding for `elems' shadows the existing bindings
      imported from `Data.HashMap.Strict' at conduplay.hs:8:1-31
      (and originally defined in `unordered-containers-0.2.2.1:Data.HashMap.Base')
      imported from `Data.Set' at conduplay.hs:9:1-20
      (and originally defined in `containers-0.5.0.0:Data.Set.Base')

<no location info>: 
Failing due to -Werror.
Failed, modules loaded: none.
(0.32 secs, 74900032 bytes)

А откуда, кстати, вылазить скрытость эмтээля?

А как вообще автор предполагает поведение cabal-dev ghci? В кабалфайле два набора зависимостей, что из них выбирать?

В чём баг?

dmitry_malikov ★★
()
Ответ на: комментарий от dmitry_malikov

Cabal почему-то максирует все пакеты кроме указанных в зависимостях gentext (почему ?)

Что это значит и откуда это следует?

Следует из сообщения ghci

....
It is a member of the hidden package `mtl-2.1.2'
.....

Это при попытке загрузить файло :load condupla.hs

Я ожидал что он вообще не будет маскировать все что в песочнице установлено, это было бы логично.

Что это значит и откуда это следует?

Это значит, что cabal-dev не должен маскировать пакеты на основе .cabal файла, так как может иметь место наличия в одном .cabal файле нескольких зависимостей для разных бинарей или билбиотек, а значит и для разных сорцов. Из-за чего и не получается загрузить файл

Вопрос, видимо, в том, куда нажать, чтобы сделать это:

Вот это И ТОЛЬКО ЭТО должен делать cabal-dev ghci сам.

А откуда, кстати, вылазить скрытость эмтээля?

очевидно, из описания gentext, там его нету, зато есть ненужный в conduplay BlazeBuilder.

А как вообще автор предполагает поведение cabal-dev ghci? В кабалфайле два набора зависимостей, что из них выбирать?

спасибо кэп.

s9gf4ult ★★
() автор топика
Ответ на: комментарий от dmitry_malikov

ghci -package-db cabal-dev/packages-7.6.1.conf

Это опция из 7.6 ? у меня в 7.4 нету такого

22:44 razor@localhost /home/razor/tmp/conduplay % ghci -package-db cabal-dev/packages-7.4.2.conf conduplay.hs
GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
<command line>: cannot satisfy -package -db
    (use -v for more information)
22:45 razor@localhost /home/razor/tmp/conduplay % ghci --package-db cabal-dev/packages-7.4.2.conf conduplay.hs
GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
ghc: unrecognised flags: --package-db
Usage: For basic information, try the `--help' option.
22:45 razor@localhost /home/razor/tmp/conduplay % ghci -packagedb cabal-dev/packages-7.4.2.conf conduplay.hs 
GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
<command line>: cannot satisfy -package db
    (use -v for more information)
22:45 razor@localhost /home/razor/tmp/conduplay % ghci -package-db cabal-dev/packages-7.4.2.conf conduplay.hs
GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
<command line>: cannot satisfy -package -db
    (use -v for more information)

s9gf4ult ★★
() автор топика
Ответ на: комментарий от s9gf4ult

Да. Пользователи древнего компилятора прожимают -package-conf вместо -package-db.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.