[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RPC on Symbolics
Date: Thu, 8 Aug 1991 19:39 EDT
From: eyvind%hrp.no@Warbucks.AI.SRI.COM (Eyvind Ness)
I really HATE this part. Why does Symbolics have to invent something
special here?
It's not that special. It's the Lisp equivalent of rpcgen, which is how
most Unix RPC programs are written.
They needed a more general mechanism than just CALLRPC for their own
use, since they use RPC over other transport protocols than UDP (it's
used for most of the communication between an embedded Ivory processor
and its host).
The entire Genera network library is completely different from the Unix
network library. Why are you surprised that RPC programming would be
any different? The Unix libraries makes you deal with so many
repetitive details that should be handled automatically for you.
Instead of complaining about Symbolics, why don't you complain to Sun
that they don't provide anything like NET:INVOKE-SERVICE-ON-HOST? Do
you really *like* calling gethostbyname(), getprotobyname(),
getservbyname(), socket(), bind(), and connect() for every network
service you want to invoke?
I WANT to use callrpc and registerrpc! That is what I am
familiar with, and it would make life much easier if I could port the
Explorer code directly to Symbolics without having to learn yet
another way of doing RPCs (less direct and sillier way in this case, I
think).
Is it Symbolics's fault that the Explorer forces you to use the
low-level interface instead of providing nice, high-level, Lispy
interfaces? I remember when TI was first trying to interest us in the
MicroExplorer; they pointed out that it came with routines for accessing
the Macintosh toolbox routines. Then I saw the MacIvory, and it came
with Dynamic Windows routines that automatically translate
Symbolics-style AVV calls into Macintosh-style dialogs. Every time I
compare the Explorer with Symbolics stuff, I am struck by how much more
primitive the Explorer software is.
Furthermore, callrpc and registerrpc are hardly all they'd have to
provide. In addition, they'd have to provide the entire XDR library to
let you build the packet. With the Symbolics interface, all you do is
define your structures with DEFINE-REMOTE-TYPE, define the functions
with DEFINE-REMOTE-MODULE and DEFINE-REMOTE-ENTRY, and call them. As
with rpcgen, one page of declarations suffices to replace about three
times as much code that would be written out.
Also, *normal* Unix libraries (-lc) provide a uniform set of
functions to deal with RPC which you can find on the Explorer, but not
on Symbolics.
Genera provides a uniform set of functions to deal with RPC. It's just
a different (better, in my opinion) set. Most of us use Lisp Machines
because they're *easier* to program than Unix, so I don't want to see
Symbolics wasting their limited resources providing such primitive
routines.
I don't see the relevance of the Unix -lc library to this; that's for C,
not Lisp.
barmar