Ошибка загрузки (xmonad) модулей в GHCi в рамках развертывания стека xmonad для разработки

Я пытаюсь разработать ManageHook для XMonad и развернул среду разработки следующим образом (как описано здесь).

В моем ~/.xmonad/ У меня есть работа xmonad.hs, Я также добавил там ~/.xmonad/src/ subdir с проверками git пакетов xmonad, xmonad-contrib и X11. А также там в ~/.xmonad/ у меня естьxmonad-testing.cabal, stack.yaml, а также build файлы с содержанием:

xmonad-testing.cabal:

name:          xmonad-testing
version:       0.13
-- [ ... more metadata ... ]
build-type:    Simple
cabal-version: >=1.8

executable xmonad-testing
  main-is: xmonad.hs
  ghc-options: -Wall -fno-warn-missing-signatures
  build-depends: base, containers, X11, xmonad, xmonad-contrib

stack.yaml:

resolver: lts-9.6

packages:
- .
- src/xmonad
- src/xmonad-contrib
- src/X11

extra-deps:
- X11-xft-0.3.1
- directory-1.2.7.1
- xmobar-0.24.3

построить:

SRC_DIR=~/.xmonad

EXE_NAME=xmonad-testing

output_file=$1; shift

cd $SRC_DIR
stack build
stack install
DIR=`stack path --local-bin`/$EXE_NAME
mv -u $DIR $output_file

С этими файлами на месте, я могу cd ~/.xmonad/, а затем запустить stack setup && stack build && stack install && xmonad-testing --recompileи тогда я могу вызвать исполняемый файл xmonad из ~/.xinitrc лайкexec ~/.xmonad/xmonad-x86_64-linuxи все идет хорошо, никаких проблем с этим, я могу редактировать источники в ~/.xmonad/src/ и загрузите изменения с помощью mod4Mask-Q.

Однако, когда я выполняю, в ~/.xmonad/, stack ghciЯ получаю пару ошибок, прежде чем получить приглашение ghci:

ошибки из "стека ghci":

GHCi, version 8.0.2: http://www.haskell.org/ghc/  :? for help

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Layout/LayoutCombinators.hs:178:0: error:
     error: unterminated comment
     (*/**)     = combineTwo (Mirror $ Tall 1 0.1 (1/3))

`gcc' failed in phase `C pre-processor'. (Exit code: 1)

<no location info>: error:
    Could not find module ‘Graphics.X11’
    It is a member of the hidden package ‘X11-1.8@X11-1.8-9LIA1IrKR3LITr8rHkiWyN’.

И затем я пытаюсь загрузить какой-то модуль (например, XMonad.Actions.TreeSelect) с помощью: :l XMonad.Actions.TreeSelectи я получаю кучу ошибок, и модуль никогда не загружается - модуль, который фактически работает в запущенном сеансе X. В чем может быть проблема? Я заканчиваю пост ошибками, пытаясь загрузить модуль в ghci:

ошибки загрузки модуля xmonad-contrib в ghci:

Prelude> :l XMonad.Actions.TreeSelect

  [    ......     ]
  [ MANY WARNINGS ]
  [    ......     ]


/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:117:37: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
                  with actual type ‘Display’
      NB: ‘Display’ is defined at
            Graphics/X11/Xlib/Types.hsc:(47,1)-(49,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the first argument of ‘xftFontOpen’, namely ‘dpy’
      In the second argument of ‘($)’, namely
        ‘xftFontOpen
           dpy (defaultScreenOfDisplay dpy) (drop (length xftPrefix) s)’
      In a stmt of a 'do' block:
        xftdraw <- io
                   $ xftFontOpen
                       dpy (defaultScreenOfDisplay dpy) (drop (length xftPrefix) s)

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:117:42: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Screen’
                  with actual type ‘Screen’
      NB: ‘Screen’ is defined at
            Graphics/X11/Xlib/Types.hsc:(55,1)-(57,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Screen’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the second argument of ‘xftFontOpen’, namely
        ‘(defaultScreenOfDisplay dpy)’
      In the second argument of ‘($)’, namely
        ‘xftFontOpen
           dpy (defaultScreenOfDisplay dpy) (drop (length xftPrefix) s)’
      In a stmt of a 'do' block:
        xftdraw <- io
                   $ xftFontOpen
                       dpy (defaultScreenOfDisplay dpy) (drop (length xftPrefix) s)

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:130:21: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
                  with actual type ‘Display’
      NB: ‘Display’ is defined at
            Graphics/X11/Xlib/Types.hsc:(47,1)-(49,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the first argument of ‘xftFontClose’, namely ‘dpy’
      In the second argument of ‘($)’, namely ‘xftFontClose dpy xftfont’
      In a stmt of a 'do' block: io $ xftFontClose dpy xftfont

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:141:26: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
                  with actual type ‘Display’
      NB: ‘Display’ is defined at
            Graphics/X11/Xlib/Types.hsc:(47,1)-(49,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the first argument of ‘xftTextExtents’, namely ‘dpy’
      In a stmt of a 'do' block: gi <- xftTextExtents dpy xftdraw s
      In the second argument of ‘($)’, namely
        ‘do { gi <- xftTextExtents dpy xftdraw s;
              return $ xglyphinfo_xOff gi }’

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:199:29: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
                  with actual type ‘Display’
      NB: ‘Display’ is defined at
            Graphics/X11/Xlib/Types.hsc:(47,1)-(49,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the first argument of ‘xftTextExtents’, namely ‘dpy’
      In the second argument of ‘($)’, namely ‘xftTextExtents dpy font s’
      In a stmt of a 'do' block: gi <- io $ xftTextExtents dpy font s

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:205:20: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
                  with actual type ‘Display’
      NB: ‘Display’ is defined at
            Graphics/X11/Xlib/Types.hsc:(47,1)-(49,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the first argument of ‘withXftDraw’, namely ‘dpy’
      In the expression: withXftDraw dpy drw visual colormap
      In the second argument of ‘($)’, namely
        ‘withXftDraw dpy drw visual colormap
         $ \ draw
             -> withXftColorName dpy visual colormap fc
                $ \ color -> xftDrawString draw color font x y s’

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:205:28: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Visual’
                  with actual type ‘Visual’
      NB: ‘Visual’ is defined at
            Graphics/X11/Xlib/Types.hsc:(63,1)-(65,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Visual’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the third argument of ‘withXftDraw’, namely ‘visual’
      In the expression: withXftDraw dpy drw visual colormap
      In the second argument of ‘($)’, namely
        ‘withXftDraw dpy drw visual colormap
         $ \ draw
             -> withXftColorName dpy visual colormap fc
                $ \ color -> xftDrawString draw color font x y s’

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:206:36: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
                  with actual type ‘Display’
      NB: ‘Display’ is defined at
            Graphics/X11/Xlib/Types.hsc:(47,1)-(49,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Display’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the first argument of ‘withXftColorName’, namely ‘dpy’
      In the expression: withXftColorName dpy visual colormap fc
      In the expression:
        withXftColorName dpy visual colormap fc
        $ \ color -> xftDrawString draw color font x y s

/home/eperez/src/git/xmonad/xmonad-contrib/XMonad/Util/Font.hs:206:40: error:
    • Couldn't match expected type ‘X11-1.8:Graphics.X11.Xlib.Types.Visual’
                  with actual type ‘Visual’
      NB: ‘Visual’ is defined at
            Graphics/X11/Xlib/Types.hsc:(63,1)-(65,48)
          ‘X11-1.8:Graphics.X11.Xlib.Types.Visual’
            is defined in ‘Graphics.X11.Xlib.Types’ in package ‘X11-1.8’
    • In the second argument of ‘withXftColorName’, namely ‘visual’
      In the expression: withXftColorName dpy visual colormap fc
      In the expression:
        withXftColorName dpy visual colormap fc
        $ \ color -> xftDrawString draw color font x y s
Failed, modules loaded: Graphics.X11, Graphics.X11.Types, Graphics.X11.Xinerama, Graphics.X11.Xlib, Graphics.X11.Xlib.Atom, Graphics.X11.Xlib.Color, Graphics.X11.Xlib.Context, Graphics.X11.Xlib.Cursor, Graphics.X11.Xlib.Display, Graphics.X11.Xlib.Event, Graphics.X11.Xlib.Extras, Graphics.X11.Xlib.Font, Graphics.X11.Xlib.Image, Graphics.X11.Xlib.Internal, Graphics.X11.Xlib.Misc, Graphics.X11.Xlib.Region, Graphics.X11.Xlib.Screen, Graphics.X11.Xlib.Types, Graphics.X11.Xlib.Window, Graphics.X11.Xrandr, Paths_xmonad, XMonad, XMonad.Config, XMonad.Core, XMonad.Hooks.WorkspaceHistory, XMonad.Layout, XMonad.Main, XMonad.ManageHook, XMonad.Operations, XMonad.StackSet, XMonad.Util.ExtensibleState, XMonad.Util.TreeZipper.
*XMonad.Hooks.WorkspaceHistory>

Отредактировано, чтобы добавить:

Это не решение, а скорее обходной путь: если я бегу stack exec -- ghci скорее, чем stack ghciУ меня нет проблем с загрузкой любых модулей.

0 ответов

Другие вопросы по тегам