Hi all:
Being completely new to McCLIM and Clozure CL I tried running the sample apps from McCLIM doc's chapter 3. All fine with the Gtk Cairo backend, but no chance with the CLX or OpenGL backends. CLX itself works fine.
Using Quicklisp I loaded the required packages:
? (ql:quickload "clx") To load "clx": Load 1 ASDF system: clx ; Loading "clx"
("clx") ? (ql:quickload "spatial-trees") To load "spatial-trees": Load 1 ASDF system: spatial-trees ; Loading "spatial-trees"
("spatial-trees") ? (ql:quickload "clim") To load "clim": Load 1 ASDF system: clim ; Loading "clim" .... ("clim")
;;; OK, so far. Now let's define CLX as the backend...
? (setq clim:*default-server-path* '(:clx))
(:CLX)
;;; Following the McCLIM's Chapter 3 "The First Application" I ;;; tried the sample app:
? (app::app-main)
Error: NIL is not of type (OR SYMBOL FUNCTION), and can't be FUNCALLed or APPLYed While executing: CLIM:FIND-PORT, in process Listener(6). Type cmd-. to abort, cmd-\ for a list of available restarts. Type :? for other options.
;;; Hmpf ?!? Ok, CLX seems to be the problem. Backtrace shows:
1 > :b *(161D78B8) : 0 (FIND-PORT :SERVER-PATH (:CLX)) 265 (161D7930) : 1 (FIND-FRAME-MANAGER) 509 (161D7968) : 2 (FUNCALL #'#<#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND (CLIM:APPLICATION-FRAME)>> #<APP::SUPERAPP #x302003283C0D>) 405 (161D7A40) : 3 (%%STANDARD-COMBINED-METHOD-DCODE (#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND #> #<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL #>) 46378838) 693 (161D7AC0) : 4 (CALL-CHECK-REGS APP:APP-MAIN) 221 (161D7AF8) : 5 (TOPLEVEL-EVAL (APP:APP-MAIN) NIL) 701 (161D7B98) : 6 (READ-LOOP :INPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B013BD> :OUTPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B0125D> :BREAK-LEVEL 0 :PROMPT-FUNCTION #<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global) #x30000058146F>) 2269 (161D7DF0) : 7 (TOPLEVEL-LOOP) 101 (161D7E18) : 8 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 741 (161D7EB8) : 9 (RUN-PROCESS-INITIAL-FORM #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 677 (161D7F48) : 10 (FUNCALL #'#<(:INTERNAL (CCL::%PROCESS-PRESET-INTERNAL (PROCESS)))> #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 389 (161D7F98) : 11 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 301 1 >
I'd have to dig deeper but maybe there's someone on here you already can point in the right direction ?!?
THX!
Best, Frank
On Mon, Dec 27, 2010 at 11:36:24AM +0100, Frank G?nninger wrote:
Hi all:
Being completely new to McCLIM and Clozure CL I tried running the sample apps from McCLIM doc's chapter 3. All fine with the Gtk Cairo backend, but no chance with the CLX or OpenGL backends. CLX itself works fine.
Using Quicklisp I loaded the required packages:
? (ql:quickload "clx") To load "clx": Load 1 ASDF system: clx ; Loading "clx"
("clx") ? (ql:quickload "spatial-trees") To load "spatial-trees": Load 1 ASDF system: spatial-trees ; Loading "spatial-trees"
("spatial-trees") ? (ql:quickload "clim") To load "clim": Load 1 ASDF system: clim ; Loading "clim" .... ("clim")
Why do you perform such a selective load? So far I had better luck just doing a:
(ql:quickload "mcclim")
;;; OK, so far. Now let's define CLX as the backend...
? (setq clim:*default-server-path* '(:clx))
(:CLX)
Without (ql:quickload "clim-clx") this won't work. CLX by itself only provides the API to communicate with a X server, the X backend is defined inclim-cxl.
HTH Ralf Mattes
;;; Following the McCLIM's Chapter 3 "The First Application" I ;;; tried the sample app:
? (app::app-main)
Error: NIL is not of type (OR SYMBOL FUNCTION), and can't be FUNCALLed or APPLYed While executing: CLIM:FIND-PORT, in process Listener(6). Type cmd-. to abort, cmd-\ for a list of available restarts. Type :? for other options.
;;; Hmpf ?!? Ok, CLX seems to be the problem. Backtrace shows:
1 > :b *(161D78B8) : 0 (FIND-PORT :SERVER-PATH (:CLX)) 265 (161D7930) : 1 (FIND-FRAME-MANAGER) 509 (161D7968) : 2 (FUNCALL #'#<#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND (CLIM:APPLICATION-FRAME)>> #<APP::SUPERAPP #x302003283C0D>) 405 (161D7A40) : 3 (%%STANDARD-COMBINED-METHOD-DCODE (#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND #> #<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL #>) 46378838) 693 (161D7AC0) : 4 (CALL-CHECK-REGS APP:APP-MAIN) 221
(161D7AF8) : 5 (TOPLEVEL-EVAL (APP:APP-MAIN) NIL) 701 (161D7B98) : 6 (READ-LOOP :INPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B013BD> :OUTPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B0125D> :BREAK-LEVEL 0 :PROMPT-FUNCTION #<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global) #x30000058146F>) 2269 (161D7DF0) : 7 (TOPLEVEL-LOOP) 101 (161D7E18) : 8 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 741 (161D7EB8) : 9 (RUN-PROCESS-INITIAL-FORM #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 677 (161D7F48) : 10 (FUNCALL #'#<(:INTERNAL (CCL::%PROCESS-PRESET-INTERNAL (PROCESS)))> #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 389 (161D7F98) : 11 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 301 1 >
I'd have to dig deeper but maybe there's someone on here you already can point in the right direction ?!?
THX!
Best, Frank
mcclim-devel mailing list mcclim-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/mcclim-devel
Am 27.12.2010 um 12:44 schrieb rm@tuxteam.de:
On Mon, Dec 27, 2010 at 11:36:24AM +0100, Frank G?nninger wrote:
Hi all:
Being completely new to McCLIM and Clozure CL I tried running the sample apps from McCLIM doc's chapter 3. All fine with the Gtk Cairo backend, but no chance with the CLX or OpenGL backends. CLX itself works fine.
Using Quicklisp I loaded the required packages:
? (ql:quickload "clx") To load "clx": Load 1 ASDF system: clx ; Loading "clx"
("clx") ? (ql:quickload "spatial-trees") To load "spatial-trees": Load 1 ASDF system: spatial-trees ; Loading "spatial-trees"
("spatial-trees") ? (ql:quickload "clim") To load "clim": Load 1 ASDF system: clim ; Loading "clim" .... ("clim")
Why do you perform such a selective load? So far I had better luck just doing a:
(ql:quickload "mcclim")
Well, yes, no, because the docs told me to do so ...
;;; OK, so far. Now let's define CLX as the backend...
? (setq clim:*default-server-path* '(:clx))
(:CLX)
Without (ql:quickload "clim-clx") this won't work. CLX by itself only provides the API to communicate with a X server, the X backend is defined inclim-cxl.
HTH Ralf Mattes
It did!
Thanks a bunch!
Frank
On Mon, Dec 27, 2010 at 5:44 AM, rm@tuxteam.de wrote:
On Mon, Dec 27, 2010 at 11:36:24AM +0100, Frank G?nninger wrote:
Hi all: Using Quicklisp I loaded the required packages:
Why do you perform such a selective load? So far I had better luck just doing a:
(ql:quickload "mcclim")
;;; OK, so far. Now let's define CLX as the backend...
? (setq clim:*default-server-path* '(:clx))
(:CLX)
Without (ql:quickload "clim-clx") this won't work. CLX by itself only provides the API to communicate with a X server, the X backend is defined inclim-cxl.
So is this a bug in the ASD (not specifying some required package), a limitation of ASDF (can't specify that package x depends on variable y), or just a matter of understanding the tools (load the package you want, don't mess around with the dependencies)?
Where's the best place to document this so it doesn't bite someone else in the future?
(cliki seems like the most obvious to me, but what do I know?)
Respectfully, James
HTH Ralf Mattes
;;; Following the McCLIM's Chapter 3 "The First Application" I ;;; tried the sample app:
? (app::app-main)
Error: NIL is not of type (OR SYMBOL FUNCTION), and can't be FUNCALLed or APPLYed While executing: CLIM:FIND-PORT, in process Listener(6). Type cmd-. to abort, cmd-\ for a list of available restarts. Type :? for other options.
;;; Hmpf ?!? Ok, CLX seems to be the problem. Backtrace shows:
1 > :b *(161D78B8) : 0 (FIND-PORT :SERVER-PATH (:CLX)) 265 (161D7930) : 1 (FIND-FRAME-MANAGER) 509 (161D7968) : 2 (FUNCALL #'#<#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND (CLIM:APPLICATION-FRAME)>> #<APP::SUPERAPP #x302003283C0D>) 405 (161D7A40) : 3 (%%STANDARD-COMBINED-METHOD-DCODE (#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND #> #<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL #>) 46378838) 693 (161D7AC0) : 4 (CALL-CHECK-REGS APP:APP-MAIN) 221
(161D7AF8) : 5 (TOPLEVEL-EVAL (APP:APP-MAIN) NIL) 701 (161D7B98) : 6 (READ-LOOP :INPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B013BD> :OUTPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B0125D> :BREAK-LEVEL 0 :PROMPT-FUNCTION #<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global) #x30000058146F>) 2269 (161D7DF0) : 7 (TOPLEVEL-LOOP) 101 (161D7E18) : 8 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 741 (161D7EB8) : 9 (RUN-PROCESS-INITIAL-FORM #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 677 (161D7F48) : 10 (FUNCALL #'#<(:INTERNAL (CCL::%PROCESS-PRESET-INTERNAL (PROCESS)))> #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 389 (161D7F98) : 11 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 301 1 >
I'd have to dig deeper but maybe there's someone on here you already can point in the right direction ?!?
THX!
Best, Frank
mcclim-devel mailing list mcclim-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/mcclim-devel
mcclim-devel mailing list mcclim-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/mcclim-devel
On 12/27/10 Dec 27 -8:59 AM, James Ashley wrote:
On Mon, Dec 27, 2010 at 5:44 AM, rm@tuxteam.de wrote:
On Mon, Dec 27, 2010 at 11:36:24AM +0100, Frank G?nninger wrote:
Hi all: Using Quicklisp I loaded the required packages:
Why do you perform such a selective load? So far I had better luck just doing a:
(ql:quickload "mcclim")
;;; OK, so far. Now let's define CLX as the backend...
? (setq clim:*default-server-path* '(:clx))
(:CLX)
Without (ql:quickload "clim-clx") this won't work. CLX by itself only provides the API to communicate with a X server, the X backend is defined inclim-cxl.
So is this a bug in the ASD (not specifying some required package), a limitation of ASDF (can't specify that package x depends on variable y), or just a matter of understanding the tools (load the package you want, don't mess around with the dependencies)?
Where's the best place to document this so it doesn't bite someone else in the future?
(cliki seems like the most obvious to me, but what do I know?)
It's rarely done, but it is possible to pass initargs to ASDF load system. So, with a recent asdf (which doesn't require use of OOS), you could do something like
(asdf:load-system :mcclim :backend :clx)
...if the mcclim maintainers would like to support that, probably using an :around method on asdf:operate. One could even support either defaulting or forcing the user to specify a backend. The latter might help this periodic confusion of novices.
Best, r
On Mon, Dec 27, 2010 at 08:59:40AM -0600, James Ashley wrote:
On Mon, Dec 27, 2010 at 5:44 AM, rm@tuxteam.de wrote:
On Mon, Dec 27, 2010 at 11:36:24AM +0100, Frank G?nninger wrote:
Hi all: Using Quicklisp I loaded the required packages:
Why do you perform such a selective load? So far I had better luck just doing a:
(ql:quickload "mcclim")
;;; OK, so far. Now let's define CLX as the backend...
? (setq clim:*default-server-path* '(:clx))
(:CLX)
Without (ql:quickload "clim-clx") this won't work. CLX by itself only provides the API to communicate with a X server, the X backend is defined inclim-cxl.
So is this a bug in the ASD (not specifying some required package), a limitation of ASDF (can't specify that package x depends on variable y), or just a matter of understanding the tools (load the package you want, don't mess around with the dependencies)?
I'd say it's a missunderstanding: CLIM is an abstract user interface API that can (and does) run on different backends (X/Gtk/Genera/Windows/MAc Toolbox ...). Clim for shure does need _one_ backend loaded to be operable, but how to express this in ASDF? Maybe (find-port ...) should throw an error for an unloaded backend?
Looking at mcclim's code for find-port, blindly funcalling the return value of (get (first server-path) :server-path-parser) looks like an error to me.
Where's the best place to document this so it doesn't bite someone else in the future?
(cliki seems like the most obvious to me, but what do I know?)
McClim's Wiki?
Cheers, RalfD
Respectfully, James
HTH Ralf Mattes
;;; Following the McCLIM's Chapter 3 "The First Application" I ;;; tried the sample app:
? (app::app-main)
Error: NIL is not of type (OR SYMBOL FUNCTION), and can't be FUNCALLed or APPLYed While executing: CLIM:FIND-PORT, in process Listener(6). Type cmd-. to abort, cmd-\ for a list of available restarts. Type :? for other options.
;;; Hmpf ?!? Ok, CLX seems to be the problem. Backtrace shows:
1 > :b *(161D78B8) : 0 (FIND-PORT :SERVER-PATH (:CLX)) 265 (161D7930) : 1 (FIND-FRAME-MANAGER) 509 (161D7968) : 2 (FUNCALL #'#<#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND (CLIM:APPLICATION-FRAME)>> #<APP::SUPERAPP #x302003283C0D>) 405 (161D7A40) : 3 (%%STANDARD-COMBINED-METHOD-DCODE (#<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND #> #<STANDARD-METHOD CLIM:RUN-FRAME-TOP-LEVEL #>) 46378838) 693 (161D7AC0) : 4 (CALL-CHECK-REGS APP:APP-MAIN) 221
(161D7AF8) : 5 (TOPLEVEL-EVAL (APP:APP-MAIN) NIL) 701 (161D7B98) : 6 (READ-LOOP :INPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B013BD> :OUTPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x302000B0125D> :BREAK-LEVEL 0 :PROMPT-FUNCTION #<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global) #x30000058146F>) 2269 (161D7DF0) : 7 (TOPLEVEL-LOOP) 101 (161D7E18) : 8 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 741 (161D7EB8) : 9 (RUN-PROCESS-INITIAL-FORM #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 677 (161D7F48) : 10 (FUNCALL #'#<(:INTERNAL (CCL::%PROCESS-PRESET-INTERNAL (PROCESS)))> #<COCOA-LISTENER-PROCESS Listener(6) [Active] #x302000B63D7D> (#<COMPILED-LEXICAL-CLOSURE # #x302000B6372F>)) 389 (161D7F98) : 11 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 301 1 >
I'd have to dig deeper but maybe there's someone on here you already can point in the right direction ?!?
THX!
Best, Frank
mcclim-devel mailing list mcclim-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/mcclim-devel
mcclim-devel mailing list mcclim-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/mcclim-devel
mcclim-devel mailing list mcclim-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/mcclim-devel
Am 27.12.2010 um 16:47 schrieb rm@tuxteam.de:
I'd say it's a missunderstanding: CLIM is an abstract user interface API that can (and does) run on different backends (X/Gtk/Genera/Windows/MAc Toolbox ...).
I think I got that clear after reading the intro material to CLIM. It wasn't obvious to me that after loading CLX and defining CLX as the backend I still missed a package: "CLIM-CLX".
Clim for shure does need _one_ backend loaded to be operable, but how to express this in ASDF?
No need to IMO.
Maybe (find-port ...) should throw an error for an unloaded backend?
Yes!
An exception stating "You specified CLX as the backend for CLIM. The necessary package, "CLIM-CLX", has not been loaded." would help really. Similar ones for the other backends, too, of course ;-)
Looking at mcclim's code for find-port, blindly funcalling the return value of (get (first server-path) :server-path-parser) looks like an error to me.
Yep.
Where's the best place to document this so it doesn't bite someone else in the future?
(cliki seems like the most obvious to me, but what do I know?)
McClim's Wiki?
Yep! Because that's where I started out my CLIM odyssey.
Thanks again!
Best wishes
Frank
On Mon, 27 Dec 2010 16:45:04 +0100, Frank Gönninger wrote:
Am 27.12.2010 um 16:47 schrieb rm@tuxteam.de:
I'd say it's a missunderstanding: CLIM is an abstract user interface API that can (and does) run on different backends (X/Gtk/Genera/Windows/MAc Toolbox ...).
I think I got that clear after reading the intro material to CLIM. It wasn't obvious to me that after loading CLX and defining CLX as the backend I still missed a package: "CLIM-CLX".
Well - to be fair, iff you had started your odysee by asdf-ing :mcclim instead of just :clim that would've pulled in :clim-looks which pulls in :clim-clx ...
Clim for shure does need _one_ backend loaded to be operable, but how to express this in ASDF?
No need to IMO.
Maybe (find-port ...) should throw an error for an unloaded backend?
Yes!
An exception stating "You specified CLX as the backend for CLIM. The necessary package, "CLIM-CLX", has not been loaded." would help really. Similar ones for the other backends, too, of course ;-)
I've just written up a small patch that does that (without information on what to load - in theory it's possible to load backends mcclim doesn't know off). But I really think the whole function is kind of unelegant.
(setq server-path (funcall (get (first server-path) :server-path-parser) server-path))
what is this? An entry in a perl obscurity contest? And a lot of semantic mud afterwards ... comparing keyword lists with #'equal for shure doesn't work.
Hmmm-where to put patches ?
Cheers, RalfD
Looking at mcclim's code for find-port, blindly funcalling the return value of (get (first server-path) :server-path-parser) looks like an error to me.
Yep.
Where's the best place to document this so it doesn't bite someone else in the future?
(cliki seems like the most obvious to me, but what do I know?)
McClim's Wiki?
Yep! Because that's where I started out my CLIM odyssey.
Thanks again!
Best wishes
Frank