Ошибка загрузки (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
У меня нет проблем с загрузкой любых модулей.