Lisp HUG Maillist Archive

lispworks under cygwin, consoles and so on

Hi, I'd like to be able to use the same scripts to build our system on
Windows as I do on Linux/Unix.  In particular I do almost everything
on windows via cygwin, so I'd like to be able to run lispworks from it
and so forth.

The problem is that lispworks (in common with lots of other windows
programs, I think), interacts kind of curiously with cygwin, with the
result that nothing works right, and I end up having to resort to
command.com (or cmd.exe or whatever it is now) and .BAT files.

I'm not sure what the problem is, especially because, sometimes, it
works.  However one thing that seems reliably not to work is delivery.
If I have a file deliver.lisp containing, say:

    ;;;;
    ;;;

    (load (current-pathname "weld-src/sysdcl.lisp"))
    (load-system :weld)
    (load "WELD:SRC;PATCHES;LOAD-PATCHES")
    (load (compile-file-pathname (current-pathname "play-toplevel")))

    (deliver #'weld-toplevel:weld-toplevel
	     "weld"
	     0
	     :interface :capi
	     :icon-file (current-pathname "weld.ico"))

    (quit)

and I run this with (from the cygwin shell)

    .../lispworks-42-current -init deliver.lisp

then a blank console window appears, and lispworks sits on the CPU for
`ever' (I gave it a few minutes) without doing anything.  If I run the
equivalent thing from a .BAT file from cmd.exe, then it works.

However if I have an init file like the above which just compiles the
system, then this works fine.

Is there anything I can do to make this work?  Has anyone else tried
this? As I said above, LW is not unique in this - it could easily be
some bug in cygwin I think, but it would be nice to make it work.

Thanks

--tim

(Versions: LW 4.2, Windows 2000 SP2, cygwin pretty recent)


Re: lispworks under cygwin, consoles and so on

* davef  wrote:

> and ran the script again under cygwin, i got a "fatal recursive stack
> overflow" dialog. Does that happen for you too Tim? 

No, it still goes away, however it now listens to ^C, so I'm wondering
if I'm doing something wrong with my trace form.  It certainly makes
sense that it *terminal-io* is something strange you could get really
odd behaviour since there's almost nothing that can be written to.

> I suspect LispWorks is confused about *terminal-io* not being a
> console, because it works when output is redirected to a file:

> $ lispworks-4200.exe -init deliver.lisp > d.out

Yes! this works.  Thank you!

> Could errors when writing to *terminal-io* explain the other problems
> you've seen when using LispWorks with cygwin?

Yes, I think they could.

Thanks!

--tim



Updated at: 2020-12-10 09:02 UTC