[pro] multiple Lisp images
From the other side, you have your own fat Lisp application which you want to communicate with the plugin. Example: NPAPI plugin provides data for later processing by big Lisp. Here is a problem arises. How to pass sexps as transparently between
Hello, all I again have a scenario as follows. Say, you have an enterprise-y or CAD-y application. From one side, you extend it in Lisp. Be it a plugin (i.e. LISPWORKS:DELIVER with :DLL-EXPORTS) or standalone Lisp process which communicates with the application via some provided SDK APIs; these two cases do not actually differ for us. the two Lisps as possible? Yeah, I programmed in Erlang for some time. Basically, I want that kind of "transparency", though I don't thing that it definitely must be message passing between quasi-processes.. There are might be some variations but I guess you got the idea
Hi, did you consider using swank protocol? Vsevolod On Wed, Apr 27, 2011 at 5:23 PM, Yakov Zaytsev <zaytsev.yakov@gmail.com>wrote:
Hello, all
I again have a scenario as follows. Say, you have an enterprise-y or CAD-y application. From one side, you extend it in Lisp. Be it a plugin (i.e. LISPWORKS:DELIVER with :DLL-EXPORTS) or standalone Lisp process which communicates with the application via some provided SDK APIs; these two cases do not actually differ for us. From the other side, you have your own fat Lisp application which you want to communicate with the plugin. Example: NPAPI plugin provides data for later processing by big Lisp. Here is a problem arises. How to pass sexps as transparently between the two Lisps as possible? Yeah, I programmed in Erlang for some time. Basically, I want that kind of "transparency", though I don't thing that it definitely must be message passing between quasi-processes.. There are might be some variations but I guess you got the idea
_______________________________________________ pro mailing list pro@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/pro
How to pass sexps as transparently between the two Lisps as possible?
Can you please elaborate on "transparently"? The first thing out of my toolbox when I need to simply get some data between lisps is just: (send (print1 payload) other-server) using whatever mechanism. and then (let ((*print-eval* nil)) (read-from-string payload))
One caveat, if you're going to do this kind of thing: be sure to bind all the variables that control the printer (on the sending end) and reader (on the receiving end) -- *package*, *print-base*, *read-base*, etc. Years ago I was working on a project on the Lisp Machines that involved creating a package that did not use the lisp: package (basically, I was implementing another language that had its own names for things). I discovered that when I was editing a file in this package, and tried to access the file server, I would get mysterious errors deep in the code that implemented the NFILE protocol. As it turned out, ZMacs was binding *package* to the package of the file I was editing, and the NFILE client implementation was reading an sexp sent by the server without binding *package*, so that occurrences of "NIL" in that sexp were not being read as lisp:nil ("the chosen nil", as Bernie Greenberg used to call it). Discovering that bug left me with a permanent dislike and distrust of special variables. I still use them occasionally, but I try to keep them to a bare minimum. -- Scott On Wed, Apr 27, 2011 at 8:07 AM, William Halliburton <whalliburton@gmail.com> wrote:
How to pass sexps as transparently between the two Lisps as possible?
Can you please elaborate on "transparently"? The first thing out of my toolbox when I need to simply get some data between lisps is just: (send (print1 payload) other-server) using whatever mechanism. and then (let ((*print-eval* nil)) (read-from-string payload))
_______________________________________________ pro mailing list pro@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/pro
On 27 April 2011 21:35, Scott L. Burson <Scott@sympoiesis.com> wrote:
One caveat, if you're going to do this kind of thing: be sure to bind all the variables that control the printer (on the sending end) and reader (on the receiving end) -- *package*, *print-base*, *read-base*, etc.
WITH-STANDARD-IO-SYNTAX is your friend there. Cheers, -- Nikodemus
participants (5)
-
Nikodemus Siivola
-
Scott L. Burson
-
Vsevolod Dyomkin
-
William Halliburton
-
Yakov Zaytsev