From: Jonathan Unger
Subject: cl and remote ipc
Date: 
Message-ID: <JONATHAN.91Jul3101311@eulachon.cs.washington.edu>
I need to implement a facility from common lisp that starts a non-lisp
(pascal) executable running on a remote machine, and then does two-way
i/o from lisp to the remote executable, preferably looking like a
bidirectional stream from the lisp side, and looking like standard
input/output to the pascal executable.  The two programs interact in
an iterative fashion, involving a lot of data transfer -- FAST i/o is
of major importance.  Ideally, portability would be nice, but after
some initial hunting and hacking, it looks like this is going to
depend heavily either on vendor specific extensions to lisp or on
os/network specific features or both.  There are at least two lisp
environments that we need to make this work in (various machines
running Unix/SunOs/AIX on a local ethernet with allegro, and a bunch
of VMS machines connected by decnet, using dec's vaxlisp).

I noticed allegro's excl:run-shell-command, and it will work in our
unix environment (setting the command arg to "rsh remotehost
executable" and :input and :output args to :stream), but it seems to
be really SLOW.  Admittedly, they warn you about this right at the
beginning of the documentation.  If there's a faster way (involving
the foreign functions interface and perhaps a conservative amount of C
code), I'd like to hear all about it.

I'm worried that this will start to get really messy, involving a
lashup of multiple C processes to mediate between the lisp and pascal,
doing some kind of socket-level ipc in the unix/internet domain, and
some kind of mailbox based communication in the vms/decnet domain.
Furthermore, my understanding of vms is far from intimate and hope to
avoid as much system-level grunge as possible!

Realistically, it looks like any solution to this will go beyond the
confines of common lisp, but I figured that somebody out there might
have had to do something similar in the past, and this would be a good
place to start inquiring.  Thanks in advance - any ideas or solutions,
partial or total, unix or vms, most appreciated.

Jon

------------------
Jonathan Unger
Department of Computer Science and Engineering, FR-35
University of Washington
Seattle, WA  98195

········@cs.washington.edu