I have a working configuration for both XP and 7, simply using the
".emacs" from the "Windows Easy Guide", and applying the SLIME patch,
see file "doc/SLIME-Windows.htm".
The trick here is to use the eql.exe instead of the ecl.exe for SLIME,
see the following line from ".emacs":
(setq inferior-lisp-program "C:/eql/eql.exe")
After starting SLIME, you can switch to the EQL package:
(in-package :eql)
Now you have a EQL REPL processing Qt events.
The way it works is a hack (e.g. some SLEEP function is needed in SLIME).
You may want to look at example 9 for a clean solution where Qt events
are processed natively, without performance loss, keeping your program
interactive.
But example 9 is only a very very simple and experimental editor, see
the README.
Paul
Thanks for your detailed description, I already found a possible
reason, read on.
> d) Try example "2-clock.lisp"
> You mention "using slashes instead of backslashes in the pathname" -
> I am not sure what you mean by this.
This was meant when using LOAD.
> This makes me wonder though... When I downloaded EQL I used the "eql-
> master.tar.gz (gitorious)" link found at http://password-taxi.at/EQL
> which points to http://gitorious.org/eql/eql/archive-tarball/master
> since I did not have GIT installed on this machine. Is is OK to use
> that link to get your latest code
Yes, you don't need git, the tarball always contains the latest
version (it is even preferable, since EQL contains lots of generated
files which may change, and which git has to keep track of --
currently the git version is already ~50(!) MB large, uncompressed).
> 3) NOTE:
> When editing swank-backend.lisp I put the following code at the very
> END of the file:
> (let ((embedded-qt-lisp (find :eql *features*))) ; [EQL]
> (defun wait-for-streams (streams timeout)
> ...
Here we have it: the patch should *not* be appended to the file -- it
is meant to add the code marked red to the already existing function.
I'm sorry if this is not clear from my description of how to apply the
patch.
So, please could you try to out-comment the original WAIT-FOR-STREAMS
function in "swank-backend.lisp".
I tried appending the patched function to the file (as you did),
leaving the original function untouched, and got a frozen window like
you...
Additional note:
I will try to replace the current SLIME patch with a better, simpler
solution, similar in spirit to example 9:
- no SLIME patch needed
- no performance loss (native Qt event processing, no SLEEP needed)
- it will suffice to point the inferior Lisp of SLIME to EQL instead of ECL