Discussion:
[STUMP] StumpWM fails to initialize: asynchronous error & echo-string-list
Piotr Mieszkowski
2017-01-07 00:59:37 UTC
Permalink
Dear All,

I use FreeBSD 11.0 and SBCL 1.3.1 (with threads) and I've been using
StumpWM for some time. After switching my system from binary packages to
ports I have found StumpWM non-working.

Something strange happens during initialization:

0: (INVOKE-RESTART NIL) [more,optional]
1: (SB-DEBUG::DEBUG-LOOP-FUN)
2: (INTERNAL-DEBUG)
3: (SB-DEBUG::%INVOKE-DEBUGGER #<SIMPLE-ERROR "~@<There is no
applicable method for the generic function ~2I~_~S~ ..)
4: ((LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX))
5: (SB-IMPL::CALL-WITH-SANE-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN
SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {1004C8BDEB}>)
6: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN
SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {1004C8BDBB}>)
7: (INVOKE-DEBUGGER #<SIMPLE-ERROR "~@<There is no applicable method
for the generic function ~2I~_~S~ ..)
8: (ERROR "~@<There is no applicable method for the generic function
~2I~_~S~ ..)
9: ((:METHOD NO-APPLICABLE-METHOD (T)) #<STANDARD-GENERIC-FUNCTION
STUMPWM::SCREEN-MESSAGE-CC (1)> NIL) [fast-method]
10: (SB-PCL::CALL-NO-APPLICABLE-METHOD #<STANDARD-GENERIC-FUNCTION
STUMPWM::SCREEN-MESSAGE-CC (1)> (NIL))
11: (STUMPWM::ECHO-STRING-LIST NIL ("Caught Asynchronous X Error:
XLIB:NAME-ERROR (:ASYNCHRONOUS T :CURRENT-SEQUENCE" "
27 :MAJOR 45 :MINOR 0 :SEQUENCE" " ..
12: (XLIB::READ-ERROR-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation
R11704000)> 26 #S(XLIB::REPLY-BUFFER :SIZE 32 :IBUF8 #(0 15 26 0 1 0
...) :NEXT NIL :DATA-SIZE 32) #<SB-THREAD:THREAD "main thread" RUNN..
13: (XLIB::READ-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation
R11704000)> NIL NIL #<FUNCTION (LAMBDA (XLIB::PENDING-COMMAND) :IN
XLIB::READ-REPLY) {1002A4134B}> #S(XLIB::PENDING-COMMAND :SEQUENCE 27
:REPL..
14: (XLIB::READ-REPLY #<unavailable argument> #<unavailable argument>)
15: (XLIB::QUERY-FONT #<XLIB:FONT -misc-gentium
basic-bold-i-normal--0-0-0-0-p-0-iso8859-1 :0 4194305>)
16: (XLIB:OPEN-FONT #<XLIB:DISPLAY :0 (The X.Org Foundation
R11704000)> "-misc-gentium basic-bold-i-normal--0-0-0-0-p-0-iso8859-1")
17: (STUMPWM::INIT-SCREEN #<XLIB:SCREEN :0.0 1600x900x24 TRUE-COLOR> 0 "")
18: (STUMPWM::STUMPWM-INTERNAL ":0")
19: (STUMPWM:STUMPWM ":0")
20: ((LAMBDA NIL :IN "/usr/home/pfm/share/stumpwm/make-image.lisp"))
21: ((FLET #:WITHOUT-INTERRUPTS-BODY-82 :IN SAVE-LISP-AND-DIE))
22: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE))

This looks like two issues: that asynchronous X error and the trouble
with reporting it to the user. Unfortunately, I have no idea what I can
do to solve these issues and be able to use StumpWM again.

May I ask for your suggestions or help?

Best regards,
--
Piotr Mieszkowski
Joram Schrijver
2017-01-08 15:34:58 UTC
Permalink
Hi,

The error has something to do with fonts. The response from the X server
to querying for the font is in a format CLX doesn't understand, so it
signals an error. Then StumpWM tries to display the error, but it needs
an instance of `screen` for that, which failed to initialize due to the
error.

The font it's trying to load is called "Gentium", which is odd. The font
opened at that stage should always be "9x15", which is a hardcoded
constant (+DEFAULT-FONT-NAME+), or "*" if "9x15" doesn't exist. This
suggests you're using a modified version of the StumpWM code, which is
causing this problem.

The problem with the Gentium font is probably that it's a truetype font,
returned by the X server in a format that's not supported by CLX. I'd
suggest leaving +DEFAULT-FONT-NAME+ alone and using SET-FONT to switch
to the font you want from your ~/.stumpwmrc. For truetype fonts, use
the ttf-fonts contrib module. Do note that font rendering performance
with it is much worse than with legacy fonts.

Documentation for the ttf-fonts module is rather... lacking. The basic
steps are:

- Load the module
- Run (xft:cache-fonts)
- Use (xft:get-font-families) and (xft:get-font-subfamilies family-name)
to find the names for the font you want
- Call (set-font (make-instance 'xft:font :family family-name :subfamily
subfamily-name :size some-size))

You don't have to call xft:cache-fonts every time, because it caches the
results in ~/.fonts/font-cache.sexp.

--
Joram
Post by Piotr Mieszkowski
Dear All,
I use FreeBSD 11.0 and SBCL 1.3.1 (with threads) and I've been using
StumpWM for some time. After switching my system from binary packages to
ports I have found StumpWM non-working.
0: (INVOKE-RESTART NIL) [more,optional]
1: (SB-DEBUG::DEBUG-LOOP-FUN)
2: (INTERNAL-DEBUG)
applicable method for the generic function ~2I~_~S~ ..)
4: ((LAMBDA NIL :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX))
5: (SB-IMPL::CALL-WITH-SANE-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN
SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {1004C8BDEB}>)
6: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN
SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX) {1004C8BDBB}>)
for the generic function ~2I~_~S~ ..)
~2I~_~S~ ..)
9: ((:METHOD NO-APPLICABLE-METHOD (T)) #<STANDARD-GENERIC-FUNCTION
STUMPWM::SCREEN-MESSAGE-CC (1)> NIL) [fast-method]
10: (SB-PCL::CALL-NO-APPLICABLE-METHOD #<STANDARD-GENERIC-FUNCTION
STUMPWM::SCREEN-MESSAGE-CC (1)> (NIL))
XLIB:NAME-ERROR (:ASYNCHRONOUS T :CURRENT-SEQUENCE" "
27 :MAJOR 45 :MINOR 0 :SEQUENCE" " ..
12: (XLIB::READ-ERROR-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation
R11704000)> 26 #S(XLIB::REPLY-BUFFER :SIZE 32 :IBUF8 #(0 15 26 0 1 0
...) :NEXT NIL :DATA-SIZE 32) #<SB-THREAD:THREAD "main thread" RUNN..
13: (XLIB::READ-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation
R11704000)> NIL NIL #<FUNCTION (LAMBDA (XLIB::PENDING-COMMAND) :IN
XLIB::READ-REPLY) {1002A4134B}> #S(XLIB::PENDING-COMMAND :SEQUENCE 27
:REPL..
14: (XLIB::READ-REPLY #<unavailable argument> #<unavailable argument>)
15: (XLIB::QUERY-FONT #<XLIB:FONT -misc-gentium
basic-bold-i-normal--0-0-0-0-p-0-iso8859-1 :0 4194305>)
16: (XLIB:OPEN-FONT #<XLIB:DISPLAY :0 (The X.Org Foundation
R11704000)> "-misc-gentium basic-bold-i-normal--0-0-0-0-p-0-iso8859-1")
17: (STUMPWM::INIT-SCREEN #<XLIB:SCREEN :0.0 1600x900x24 TRUE-COLOR> 0 "")
18: (STUMPWM::STUMPWM-INTERNAL ":0")
19: (STUMPWM:STUMPWM ":0")
20: ((LAMBDA NIL :IN "/usr/home/pfm/share/stumpwm/make-image.lisp"))
21: ((FLET #:WITHOUT-INTERRUPTS-BODY-82 :IN SAVE-LISP-AND-DIE))
22: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE))
This looks like two issues: that asynchronous X error and the trouble
with reporting it to the user. Unfortunately, I have no idea what I can
do to solve these issues and be able to use StumpWM again.
May I ask for your suggestions or help?
Best regards,
--
Piotr Mieszkowski
_______________________________________________
Stumpwm-devel mailing list
https://lists.nongnu.org/mailman/listinfo/stumpwm-devel
Loading...