[developers] Lkb topmenu, graphics etc. to work with open source CL tools
Ann Copestake
aac10 at cam.ac.uk
Sun Feb 14 23:23:12 CET 2016
I think we'd be very happy if you could make it work and you certainly
aren't stepping on anyone's toes as far as I'm aware. I am sorry not to
have any help to offer re McCLIM.
Best wishes,
Ann
On 12/02/2016 01:40, John R. Towler wrote:
> I don't want to step on any toes, just trying to make this program
> work. Making :command-table (lkb-top-command-table)) works to compile.
> Experiments on generating an X frame/window follow after that with no
> change in the workings of the program. Open source papers or other
> documentation on command-tables in McCLIM would be a help. I will
> learn the material to make this work.
>
>
> jtowler at soncom.com (John R. Towler) writes:
>
>> Hello,
>>
>> I am working on getting an open source compile and build for the
>> Lkb. I have a compile on sbcl with experimental threads. I am
>> running into an error of (:command-table something) needing a
>> list as argument. I have McCLIM and it runs. It containes an
>> example LispListener which runs and has code like the above
>> (:command-table unquoted-something). This is the current
>> obstacle.
> I have threads running on sbcl but all of the tests don't
> succeed. The version is from 1.3.1 with my adjustments to the
> runtime code, so it sort of does something with threads. I
> got cmucl, Jan 2016 snapshot to get past loading lkb.system,
> to dying on src/glue files. I had to insert in place the
> defsystem 3.6i (or something) from CLOCC.
> extensions:*load-source-types* was added to. Right now, I
> have a compile with sbcl, and on testing I can get a
> window/frame on the X display with no menus or access to
> commands. Running set-up-lkb-interation outputs a lot of
> menus/commands changed then returns nil. Substituting
> (clim:run-frame-top-level (clim:make-application-frame
> 'clim-user::lkb-top)) inserted in place of the unless clause
> gives the X frame with no command options, just the lkb-top as
> a window title. I ran into the memory problem with
> NetBSD-6.1.4, and rebuilt to 7.0 then 6.1.5 to get prologs and
> lisps working.
>
> I understood the suggestion from A. Copestake to look toward
> LUI. I obtained the sources and built it tonight, I have the
> book from CSLI now, and don't offhand know where to find the
> top-level commands/code. I will look. About the CLIM code I
> have the following frustration:
>
>
>
> This works with :command-table correctly instantiated (a prolog-ism
> certainly) and the Listener code runs in sbcl, and clisp.
>
>
> from mcclim/Apps/Listener/listener.lisp
>
> ;;; Listener application frame
> (define-application-frame listener (standard-application-frame)
> ((system-command-reader :accessor system-command-reader
> :initarg :system-command-reader
> :initform t))
> (:panes (interactor-container
> (make-clim-stream-pane
> :type 'listener-interactor-pane
> :name 'interactor :scroll-bars t
> :default-view +listener-view+))
> (doc :pointer-documentation :default-view +listener-pointer-documentation-view+)
> (wholine (make-pane 'wholine-pane
> :display-function 'display-wholine :scroll-bars nil
> :display-time :command-loop :end-of-line-action :allow)))
> (:top-level (default-frame-top-level :prompt 'print-listener-prompt))
> (:command-table (listener
> :inherit-from (application-commands
> lisp-commands
> asdf-commands
> filesystem-commands
> show-commands)
> :menu (("Listener" :menu application-commands)
> ("Lisp" :menu lisp-commands)
> ("Filesystem" :menu filesystem-commands)
> ("Show" :menu show-commands))))
> (:disabled-commands com-pop-directory com-drop-directory com-swap-directory)
> (:menu-bar t)
> (:layouts (default
> (vertically ()
> interactor-container
> doc
> wholine))))
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> ;; This with the :command-table line will produce an X frame with no
> ;; menus or prompt.
>
> ;; changed to adding the :command-table line without any arguments or keywords
> ;; comes up with errors about lkb-top-command-table not found
>
> ;; McCLIM in commands.lisp says that all command-tables inherit from
> ;; the global-command-table but the errors include,
> ;;
>
> * (clim:run-frame-top-level (clim:make-application-frame 'clim-user::lkb-top))
>
> debugger invoked on a CLIM:COMMAND-TABLE-NOT-FOUND:
> #<COMMAND-TABLE-NOT-FOUND LKB-TOP-COMMAND-TABLE {61F301A9}>
>
> Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
>
> restarts (invokable by number or by possibly-abbreviated name):
> 0: [ABORT] Exit debugger, returning to top level.
>
> (CLIM:FIND-COMMAND-TABLE CLIM-USER::LKB-TOP-COMMAND-TABLE :ERRORP T)
> 0] 0
>
> * (clim-user::set-up-clim-interaction)
>
> debugger invoked on a CLIM:COMMAND-TABLE-NOT-FOUND:
> #<COMMAND-TABLE-NOT-FOUND LKB-TOP-COMMAND-TABLE {62000D19}>
>
> Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
>
> restarts (invokable by number or by possibly-abbreviated name):
> 0: [ABORT] Exit debugger, returning to top level.
>
> (CLIM:FIND-COMMAND-TABLE CLIM-USER::LKB-TOP-COMMAND-TABLE :ERRORP T)
> 0] 0
>
> ;;;;;;;;;;;
>
>
> (define-application-frame lkb-top ()
> (standard-application-frame)
> (:panes
> (display
> (outlining (:thickness 1 :record-p t)
> (spacing (:thickness 1 :record-p t)
> (scrolling (:scroll-bars :both :record-p t)
> (make-pane 'application-pane
> :name "lkb-pane"
> :text-cursor nil
> :end-of-line-action :allow
> :borders nil
> :background +white+
> :foreground +black+
> :draw t
> :record-p t
> :display-time t))))))
> (:layouts
> (default display))
> (:geometry :width 550 :height 200))
> ;; (:command-table (lkb-top-command-table)))
>
> ;;;;; how can the non-portable CL and CLIM code for this application
> ;; frame be progressively be transformed into the working-ness of
> ;; the mcclim/Apps/Listener/listener.lisp code?
>
>
> Sincerely,
> John (R. for false representations of me on the 'net that I
> have heard about) Towler
> jtowler at soncom.com
>
>
More information about the developers
mailing list