Subject: Re: Hello

From: Johann Petrak <[email-masked]>
Date: Tue, 18 Jul 1995 10:10:36 +0200

> The current project is only a prototype, but I am also interested in using
> Lisp for actual flight code.  I am a bit of a lone warrior in this, as Lisp
> is widely perceived by people in NASA to be too big and slow for "real" work.
> My approach is, rather than arguing with people, to instead build working
> systems that meet all the performance requirements.  Towards this end, I and
> a student of mine (with considerable help from Bruno) have ported CLisp (the
> January 1995 version) to vxWorks, which is a real-time operating system that
> is one of the lead candidates for use on flight hardware.
> 
I am not very familiar with RT programming, but I wonder how to use
a programming language that uses automatic garbage collection, like LISP.
Wouldn't be an important requirement for the language to support a
programming style that allows one to guarantee timely responses? 
Hmmm, just wondering ....

Johann

Johann Petrak                            Email: [email-masked]
Austrian Research Institute for          Phone:        +43-1-533-61-12
Artificial Intelligence                                +43-1-535-32-81/0
Schottengasse 3                          Fax:          +43-1-532-06-52
A-1010 Vienna, AUSTRIA                   Private Phone:+43-1-24-03-173
					 http://www.ai.univie.ac.at

---

From: [email-masked]
Date: Tue, 18 Jul 1995 15:51:57 +0200

> a programming language that uses automatic garbage collection, like LISP.

Automatic garbage collection and real-time constraints don't exclude each
other. It is the GC *implementation* used in CLISP and many other Lisp
implementations (suspend the program's execution during GC) that hurts.
Some Lisp implementations use incremental GC; research has been done about
doing background GC.

> programming style that allows one to guarantee timely responses? 

It's the actual performance requirements that matter. If the NASA
requirements can/could be met with CLISP's GC (which does its work in about
half a second), then all is fine.

Bruno Haible                        email: <[email-masked]>
Software Engineer                   phone: +33-1-49083585

---

From: Tomas Arvidsson <[email-masked]>
Date: Wed, 19 Jul 1995 00:27:40 +0200

Bruno Haible writes:

> Automatic garbage collection and real-time constraints don't exclude
> each other. It is the GC *implementation* used in CLISP and many
> other Lisp implementations (suspend the program's execution during
> GC) that hurts.

For those who may be interested in this (Erann?); Henry Baker has
written a paper on garbage collection called "List Processing in Real
Time on a Serial Computer" which describes a real-time compacting
garbage collector. The article is not new but still worth reading.
Other articles covering the same issues plus a lot of other things
about language implementation, compilation, etc can be found at the
SEL-HPC archive for compilers and interpreters. For those who are
interested in using Lisp in real-time environments, this might be
worth looking into.

Henry Bakers home page (it might take a *long* time to get in to
Netcom):  
"http://ftp.netcom.com/pub/hb/hbaker/home.html"

The SEL-HPC archive:
"http://www.lpac.ac.uk/SEL-HPC/Articles/CompilersArchive.html"

--
Tomas Arvidson         *** [email-masked] * [email-masked] ***