Peter Herth <herth@netcologne.de> wrote:
+---------------
| thewrights@ozemail.com.au wrote:
| > debugger invoked on a TYPE-ERROR in thread 1968:
| > The value NAME is not of type LIST.
|
| A bug in Ltk. I just uploaded a fixed version.
| Thanks for reporting it.
+---------------
Aha! I was having the same problem under CMUCL/FreeBSD, now also fixed.
Thanks!
A few small suggestions:
- The interaction between DO-EXECUTE, START-W, *W*, the callers of
START-W, and the users of *W* seems a bit awkward. Since you already
have DO-EXECUTE heavily conditionalized for various operating systems,
it might be better to simply eliminate START-W altogether, pull the
pathname for "wish" out into a global constant to make it easier to
conditionalize for local variations [see next item], and just have
the two former callers of START-W call DO-EXECUTE directly. And perhaps
the same for the args to the "wish" process (in case somebody wants to
start "wish" with a different colormap or something). The result might
look something like this:
(defconstant +wish-pathname+
#+freebsd "wish8.3" ; or 8.4, whatever
#+(and sbcl (not freebsd)) "/usr/bin/wish"
#-(or sbcl freebsd) "wish")
(defconstant +wish-args+ '("-name" "LTK"))
...
(defmacro with-ltk (&rest body)
`(progn
(setf *w* (do-execute +wish-pathname+ +wish-args+))
,@body
(mainloop)))
- Your doc file suggests:
Note: on FreeBSD wish resides in /usr/local/bin/wish8.4 for
Tcl/Tk version 8.4. You either have to modify the path to wish
in ltk.lisp or create a link called wish to the executable
(like: cd /usr/local/bin;ln -s /usr/local/bin/wish8.4 wish).
Actually, on FreeBSD there is *already* a program named "wish", which
when run, says this:
% wish
In FreeBSD, wish is named with a version number. This is
because different versions of wish are not compatible with
each other and they can not all be called "wish"! You may
need multiple versions installed because a given port may
depend on a specific version.
On your system, wish is installed under at least the following
names:
wish8.3
%
So you probably don't want to overwrite that program. ;-}
- On Common Lisps which provide threads (CMUCL, SBCL, others), it would
be nice if LTK:MAINLOOP ran in a separate thread, so that one still
had access to the main REPL, at least while debugging. [Time permitting,
I'll try to hack something up to work under CMUCL as a base case...]
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607