[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Risc vs Symbolics (was: Poor Sun timings, as competition...)
Date: Mon, 13 Aug 90 19:08 CDT
Date: Mon, 13 Aug 90 10:03:56 +0200
Suppose to write a RISC (for example SPARC) code generator for the
Symbolics Compiler (and to write all the needed hardware specific
run-time), and then to compile the *WHOLE* Genera on a RISC
How the result would compare to the original Genera on a Symbolics?
Porting of Genera to a conventional processor is one part of what I'd
like to see: a Genera suitable for a real-time embedded system.
Ideally, this would mean:
1) An inexpensive, mass-produced processor. I don't see how an Ivory
can match the economies of scale of a SPARC or MIPS in the long run
(without a major change in industry direction), so one alternative is to
port Genera to another processor, at least eventually.
2) Real-time responsiveness from the operating system. I would need a
slimmed-down version of Genera, one small enough to fit entirely in RAM,
since paging from disk is unacceptable for my purposes. For this reason
a port of Genera to the UNIX System is of only secondary interest to me.
It doesn't sound to me like you want a slimmed-down version of Genera,
what you want is a way to include in an application image exactly what
that application needs in order to work at run time, and nothing more.
In general, this is not easy; the most obvious loophole is EVAL,
although even INTERN can be problematic. Furthermore, the compiler can
be invoked at run time in order to compile CLOS effective methods,
although there are obviously ways to avoid this.
3) Continuous alert operation for extremely long periods of time. This
requires incremental garbage collection of all memory, including
compiled functions etc. Of course, I don't think an unmodified SPARC or
MIPS can do this very easily today. At one time Texas Instruments was
expressing interest in adding functionality to the SPARC design to run
Lisp better; perhaps, if they ever do this, they'll include support for
incremental garbage collection.
I don't see how the requirements for true "real time" and "incremental
garbage collection of all memory, including compiled functions" can
possibly co-exist. By its very nature, GCing is the enemy of "real