Re: [ANN] Ltk - The Lisp Toolkit

From: Peter Herth (herth_at_netcologne.de)
Date: 06/13/04


Date: Sun, 13 Jun 2004 10:58:06 +0200

Rob Warnock wrote:

> 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"))

Yes that was a little bit cluttered. I have cleaned it up following
your suggestions. Yet I think it may be useful to declare wish-pathname
and wish-args as special variables, so that it can be overridden
for special purposes without changing the Ltk source.

> ...
>
> (defmacro with-ltk (&rest body)
> `(progn
> (setf *w* (do-execute +wish-pathname+ +wish-args+))
> ,@body
> (mainloop)))

I have retained (though cleaned up) start-w, so that especially
for playing with Ltk from the REPL you can initialize it without
exposing details to the user.
 
> - 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. ;-}

Indeed :). It was only a shot in the dark after I received a mail
from a FreeBSD user, as I have no FreeBSD experience of myself.

> - 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...]

Yes that might be useful. You can find some thread stuff in ltk-remote,
which creates a seperate thread for each new connection. With CMUCL I
made the experience that the threads do not mix well with SLIME,
but that probably is a mistake a I made.

I just uploaded the newest version of Ltk to my website, incoorperating
your changes. Due to the experience with the last version I released,
I have labled it seperately as ltk-latest.tgz and will only move it
to the stable version after a few days of use...

Thanks for your contributions.

Peter

-- 
Peter Herth
pet project: http://dawn.netcologne.de
homepage:    http://www.peter-herth.de
lisp stuff:  http://www.peter-herth.de/lisp.html


Relevant Pages

  • Re: My disk I/O testing methods for FreeBSD 5.3 ...
    ... Are there any outstanding code changes that will help improve ... > the performance and questions mailing lists under the title " FreeBSD ... > Operating Systems tested: ... > the default installation options as possible with no special tuning. ...
    (freebsd-performance)
  • Re: My disk I/O testing methods for FreeBSD 5.3 ...
    ... > the performance and questions mailing lists under the title " FreeBSD ... > Operating Systems tested: ... > the default installation options as possible with no special tuning. ... > as possible test the disk I/O performance on a range of hardware, ...
    (freebsd-performance)
  • Re: Memory mannagment
    ... The memory is divided into segments is that what it means? ... Tell me anything else interesting to know about memory mannagment, ... I am studying freebsd but sometimes I am ... Many of your questions can be possibly answered better by taking a computer architecture and/or operating systems course, as many of the questions and ideas you have most likely apply to real-time operating systems, including Linux, OSX, Solaris and even Windows, not just FreeBSD. ...
    (freebsd-questions)
  • Simplifying FreeBSD Installation
    ... I have read a few posting regarding the FreeBSD installation procedure. ... Then getting the three computers to actually network together is another ... Greater effort should be put into getting the operating systems ...
    (freebsd-questions)