Starting with CVS mcclim:
clisp -K full -x "(asdf:operate 'asdf:load-source-op :mcclim)" .....[snip]..... *** - MAKE-PATHNAME: illegal :NAME argument "Experimental/menu-choose"
This seems to be related to ASDF. If I modify mcclim.asd by removing the slash in the filenames: - (:file "Experimental/menu-choose" ..... + (:file "Experimental.menu-choose" ....... - (:file "Goatee/presentation-history" ...... + (:file "Goatee.presentation-history" ...... - (:file "Looks/pixie" ...... + (:file "Looks.pixie" ......
I have no idea what the kosher way to fix this is. Any ideas?
I can get all the way to: *** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"/home/scottw/.asdf/site/mcclim/Backends/CLX/port.lisp" @1048>: there is no package with name "EXTERNAL-FORMAT"
where mcclim wants external-format::ascii-code-to-font-index which is defined medium.lisp. However, mcclim.asd says medium.lisp depends on port.lisp. I'm not quite sure what the right way to resolve this is? In the mean time, in the debugger, I can create the package and the function: Break 1 CLIM-CLX[8]> (make-package "EXTERNAL-FORMAT") Break 1 CLIM-CLX[8]> (defun ascii-code-to-font-index (code) (values code (<= #x00 code #x7f))) Break 1 CLIM-CLX[8]> (export 'ascii-code-to-font-index 'external-format)
and redoing the read operation with the redo restart. This allows the loading to continue to *** - READ from #<INPUT BUFFERED FILE-STREAM CHARACTER #P"/home/scottw/.asdf/site/mcclim/Backends/CLX/port.lisp" @1394>: #<PACKAGE XLIB> has no external symbol with name "SET-SELECTION-OWNER"
which is a clisp packaging error i fixed by exporting (export 'xlib::set-selection-owner 'xlib) and redoing the read (I'll pass this on to the clisp maintainers). Then the loading of mcclim is complete! Moving on to the examples. (asdf:operate 'asdf:load-source-op :clim-examples) completes successfully. But the first example: [4]> (clim-demo::calculator) *** - XLIB:DRAW-GLYPHS: NIL is not of type XLIB:FONT The following restarts are available: ABORT :R1 ABORT Break 1 [5]> :w EVAL frame for form (XLIB:DRAW-GLYPHS CLIM-CLX::MIRROR CLIM-CLX::GC CLIM-CLX::X CLIM-CLX::Y STRING :START CLIM-CLX::START :END CLIM-CLX::END :SIZE 16 :TRANSLATE #'CLIM-CLX::TRANSLATE)
The stack trace is long, but the last recognizable function I can see is (CLIM:MEDIUM-DRAW-TEXT* CLIM:MEDIUM STRING CLIM:POINT-X CLIM:POINT-Y CLIM-INTERNALS::START CLIM-INTERNALS::END CLIM-INTERNALS::ALIGN-X CLIM-INTERNALS::ALIGN-Y CLIM-INTERNALS::TOWARD-X CLIM-INTERNALS::TOWARD-Y CLIM-INTERNALS::TRANSFORM-GLYPHS)
Ok, this is where I'm stuck. I don't know much about mcclim, where should I start hunting down this "nil" being passed to xlib:draw-glyphs? I'd be happy to provide more detail where needed.
This error appears to be related to :unicode in *features*. When :unicode is set, (setf xlib:gcontext-font) is never called on the gcontext returned from medium-gcontext. I can stuff font into the gcontext and continue the drawing operation, but error is quickly triggered again. I traced xlib:create-gcontext and found that a new context is created.
I don't really have any idea what I'm doing, but I thought I might get things to continue if i modified medium-gcontext to always call gcontext-font: (setf (xlib:gcontext-font gc) (xlib:open-font (first xlib::*displays*) "fixed"))
This allows the demo to continue without further errors, but nothing really very interesting appears in the demo window except a narrow black box at the top, with a wide white box beneath it. At this point I really don't have any idea what's wrong. Can anyone help me or show me where to start looking?
Scott Williams ortmage@gmx.net writes:
At this point I really don't have any idea what's wrong. Can anyone help me or show me where to start looking?
I believe that the stuff in mcclim protected by #+unicode was written for a never-released experimental branch of CMUCL, and never generalized to work for other lisps displaying that feature. Try either removing all code protected by it, or removing :unicode from your clisp's *features* before compiling mcclim.
Cheers,
Christophe
Today, Christophe Rhodes csr21@cam.ac.uk wrote:
Scott Williams ortmage@gmx.net writes:
At this point I really don't have any idea what's wrong. Can anyone help me or show me where to start looking?
I believe that the stuff in mcclim protected by #+unicode was written for a never-released experimental branch of CMUCL, and never generalized to work for other lisps displaying that feature. Try either removing all code protected by it, or removing :unicode from your clisp's *features* before compiling mcclim.
FWIW, I just committed a change that removes these blocks and compiles the #-unicode blocks unconditionally, as I had announced (wow) 6 months ago.
The resulting mcclim builds and runs beirc, so it shouldn't be too broken, either (:
Hope this improves Scott's situation.
Thanks for finally making me do this,
Thanks Andreas, those changes allow me to load mcclim with less pain :o)
With the patch below, I can load mcclim and run the calculator demo with this command:
clisp -K full -q -x "(export 'xlib::set-selection-owner 'xlib) (asdf:operate 'asdf:load-op :mcclim) (asdf:operate 'asdf:load-op :clim-examples) (clim-demo::calculator)"
I don't get any obvious errors (lots of compiler warnings and style warnings, which I can supply if it would help), but the resulting demo window still doesn't look like much is happening (I attached an image of the window in case that helps). FWIW, there's no CPU activity, so I don't suspect it's doing anything at all.
Any idea what's going on?