[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hello / CLISP flying into outer space ? :-)



>>>>> "Erann" == Erann Gat <gat@aig.jpl.nasa.gov> writes:

Bruno> Maybe reliability is more an issue than speed.

Yeah, I've got some features I've been subconciously avoiding.  On
IRIX 5.3 I've had problems with hash-tables of compiled-closures
(after hours of runtime). On NEXTSTEP m68k, I've had crashes with
various "big things" like multimegabyte bit vectors and
hash-tables. This last one (m68k) seems to be specific to generational
GC.  I can't remember a crash on Linux that didn't turn out to be
either Linux mmap bugs or C compiler bugs.  I can't remember any
non-generational-GC CLISP/Linux crashes at all.

With CMU-CL on IRIX 5.3, without optimization.. for that matter
without compiling. I've found crashes are more frequent than with any
configuration of CLISP I've used.

Bruno> Just imagine the embarassement if the software dumps core while
Bruno> running for real in outer space...

Erann> Actually, that's not necessarily a fatal problem.  By using a
Erann> watchdog timer the system can be made to automatically reboot
Erann> if it hangs.

Check out some space shuttle television coverage!  NASA has got great
catch-phrases like "power cycle the persistent copy telecommunications
system" (translation: flip the power switch on the fax machine).

But seriously, you could install a core-dump handler to also write
.mem files.  And/or always run the system under a GDB debugging stub
(something I should get in the habit of doing).

Erann> The main obstacle to actually flying CLisp is that the source
Erann> code is just so *huge*, and has so many nested ifdefs that it's
Erann> nearly impossible to figure out what is going on.  The V&V
Erann> (verification and validation) people are going to go seriously
Erann> nonlinear when they see it.

One could write a batch program to unifdef the sources (per
specified platform), and build a "CLISP-lite".
Such a tool might be helpful for people doing new ports.