In article <931513004.138...@lxms.cit.org.by>,
First off, let me point out that the Remote Agent Experiment was a
Eugene Zaikonnikov <vik...
>Interesting, what NASA will do now? I mean, they successfully tested in
>space their remote agent software based on LispWorks, should they test it
>now with another system? It must be terribly expensive...
prototype, and was specifically tailored for the New Millenium Deep
Space One flight. Remote Agent depends heavily on behavioral models of
the particular spacecraft on which it is flying. Future deployments of
Remote Agent technologies will require substantial customization for the
particular flight environment, swamping the work involved in retargeting
to another Lisp implementation.
The Remote Agent was a combination of several research projects that
were integrated in a relatively short time. We learned a number of
things along the way, and future flight software based on Remote Agent
will be implemented differently.
As it is, the Remote Agent modules are written in fairly portable ANSI
CL, and were initially prototyped on Allegro CL; porting to Harlequin
was straightforward. I was responsible for porting the planner/
scheduler module to Harlequin, so I speak from experience here.
Excellent compliance to the ANSI standard by both implementations made
porting simple. The minor difficulties were largely in the not-quite-
standardized extensions, such as multitasking, and OS-specific issues,
such as file system interfaces.
The bad news: the Remote Agent modules are all being ported to C++
anyway, as C++ is seen as more "saleable" to risk-averse flight software
management. This despite the fact C++ was bumped from Deep Space One
because the compiler technology wasn't mature, which the Remote Agent
planner/scheduler team learned to its dismay.
Now for the good news. You may have seen Erann Gat's post about JPL's
successful port of Macintosh Common Lisp to VxWorks and LinuxPPC. One
of the MCL implementors was hired by JPL over a year ago, assuring JPL
the ability to maintain and customize MCL for space applications. And
MCL has certain advantages over Harlequin CL, not the least of which is
memory usage, primarily in the size of executable images. The MCL
compiler also produces screaming fast PowerPC code. MCL is definitely
*not* a toy!
For the intelligent execution module of the Remote Agent, Common Lisp
offers substantial advantages. Were we to port the Exec to C++, we'd
have to reimplement all the control structures CL provides
(e.g. UNWIND-PROTECT, condition handling, etc.). And then there's
Erik Naggum is right: those who do not understand Lisp are doomed to
So while Harlequin's uncertain future may seem to present a risk to
NASA's use of Common Lisp, I believe in the grand scheme of things it is
a very small risk.
Disclaimer: The above opinions are mine, and do not represent the
official opinions of NASA, Ames Research Center, the Jet Propulsion Lab,
Caelum Research, or anyone else involved in the Remote Agent Experiment.
-- Chuck, a member of, but not speaking for, the Remote Agent team
Chuck Fry -- Jack of all trades, master of none
chu...@chucko.com (text only please) chuck...@home.com (MIME enabled)
Lisp bigot, mountain biker, car nut, sometime guitarist and photographer
The addresses above are real. All spammers will be reported to their ISPs.