Kernel LISP - how low down can it go?
Thu, 22 May 1997 01:19:24 -0500
| From: William A. Barnett-Lewis <firstname.lastname@example.org>
| At 10:10 PM 5/21/97 -0500, you wrote:
| >| From: Mike McDonald <email@example.com>
| > [ snip ]
| >| Why do you think you need access to the underlying machine's
| >| individual instructions? About the only thing I can think of that's
| >| written in assembler in the version of Unix I'm familiar with is the
| >| initialization code (setting up the CPU) and the first level TLB MISS
| >| handler. Nothing else needs to be in assembler.
| >Perhaps, if you had a suitably defined set of primitive types in Lisp
| >(with good compiler support), which we do not get with standard ANSI
| >Common Lisp. Besides, once the GC for the LispOS is nailed down, I'm
| >sure we will want to tune some parts in assembly, same for the virtual
| >memory system. I would be surprised if there was not inline assembly
| >here and there in a number of C routines in your version of Un*x. I
| >doubt we would want to write great chunks of assembly code either, but
| >a bit here, a bit there, in critical system code can create a huge gain
| >in performance, especially on CISC CPUs.
| >-- Dwight
| Hmm.. while I ca understand the temptation, esp, w/ CISC as the target,
| I can say is "Flee!!!"
| The ultmate win by Unix was in writing 99% of thier system in portable
| assember (aka C) and we can see where it got them! Hoot! We should do
| .000001% as well!!
Well, I cannot disagree -- assembly code is the original write-once
"language", but I would like to have the tool available from inside
the LispOS nevertheless. Starting with ANSI Common Lisp to try to
do work right up to the hardware and do it efficiently -- let's just
say I'm not optimistic; perhaps we can figure out. I want to have a
system where everything needed to create, maintain, extend, or
regenerate the LispOS is within the LispOS - I want Lisp to have the
same fundamental position in LispOS as C has in Unix. I don't want to
have to pull out a C compiler to create efficient low-level code for
LispOS (though we might need to swallow our pride and do so at first -
I would prefer that to using assembly code).