is there some code that will allow a lisp image in one machine function
as a server and let another lisp image in another machine send it
a lisp form, evaluate the form, and send back the result?
or in another form,
is there a portable way to send a form from another program (lisp
or nonlisp) to a running lisp, have it evaluted, and return the result to
the sending program.
if there is no portable way, then i would be interested in doing this
in allegro.
thanks for any information and/or enlightment.
--john
CMUCL has all the machinery to do remote evaluation. It is obviously
non portable.
Have a nice day
--
Marco Antoniotti
-------------------------------------------------------------------------------
Robotics Lab | room: 1219 - tel. #: (212) 998 3370
Courant Institute NYU | e-mail: ·······@cs.nyu.edu
...e` la semplicita` che e` difficile a farsi.
...it is simplicity that is difficult to make.
B. Brecht
From: Barry Margolin
Subject: Re: how can i run a lisp image as a server for other programs?
Date:
Message-ID: <2ddst1INNgvc@early-bird.think.com>
In article <···········@violin.cis.ohio-state.edu> ·····@cis.ohio-state.edu (zhiyong shen) writes:
>is there some code that will allow a lisp image in one machine function
>as a server and let another lisp image in another machine send it
>a lisp form, evaluate the form, and send back the result?
>
>or in another form,
>
>is there a portable way to send a form from another program (lisp
>or nonlisp) to a running lisp, have it evaluted, and return the result to
>the sending program.
>
>if there is no portable way, then i would be interested in doing this
>in allegro.
There's no portable way. You generally have to use the implementation's
foreign function interface to call the networking routines, and its
low-level stream routines to turn the socket into a Lisp stream.
Once you have a network stream set up, you should be able to use READ and
PRIN1 to implement a READ-EVAL-PRINT loop that uses the network connection.
Get a copy of Franz's Emacs-to-Lisp interface, which I believe implements
stuff like what you want.
--
Barry Margolin
System Manager, Thinking Machines Corp.
······@think.com {uunet,harvard}!think!barmar
From: Charles A. Cox
Subject: Re: how can i run a lisp image as a server for other programs?
Date:
Message-ID: <COX.93Nov29195635@crisp.Franz.COM>
In article <············@early-bird.think.com> ······@think.com (Barry Margolin) writes:
>
> In article <···········@violin.cis.ohio-state.edu> ·····@cis.ohio-state.edu (zhiyong shen) writes:
> >is there some code that will allow a lisp image in one machine function
> >as a server and let another lisp image in another machine send it
> >a lisp form, evaluate the form, and send back the result?
[...]
> >if there is no portable way, then i would be interested in doing this
> >in allegro.
>
[...]
> Get a copy of Franz's Emacs-to-Lisp interface, which I believe implements
> stuff like what you want.
The file that implements this is called ipc.cl and is available in
the Allegro CL distribution library. This is basically a lisp
interface to unix sockets. Included in this file are definitions for
lisp-listener-daemon functionality that listens to socket(s) through
which one can send lisp requests and receive results. The emacs-lisp
interface uses this functionality.
Charley
--
---
Charles A. Cox, Franz Inc. 1995 University Avenue, Suite 275
Internet: ···@franz.com Berkeley, CA 94704
uucp: uunet!franz!cox Phone: (510) 548-3600; FAX: (510) 548-8253
From: Lawrence G. Mayka
Subject: Re: how can i run a lisp image as a server for other programs?
Date:
Message-ID: <LGM.93Dec3090723@polaris.flw.att.com>
In article <············@early-bird.think.com> ······@think.com (Barry Margolin) writes:
In article <···········@violin.cis.ohio-state.edu> ·····@cis.ohio-state.edu (zhiyong shen) writes:
>is there a portable way to send a form from another program (lisp
>or nonlisp) to a running lisp, have it evaluted, and return the result to
>the sending program.
There's no portable way. You generally have to use the implementation's
foreign function interface to call the networking routines, and its
low-level stream routines to turn the socket into a Lisp stream.
Some implementations (e.g., LispWorks) include support for TCP
streams. I would encourage all vendors to do so, and indeed to
proceed with informal standardization of TCP-stream support.
--
Lawrence G. Mayka
AT&T Bell Laboratories
···@iexist.att.com
Standard disclaimer.