Re: What are the domains that lisp doesn't fit int?



George Neuner <gneuner2/@comcast.net> writes:

On Sat, 28 Apr 2007 12:57:09 +0200, Pascal Bourguignon
<pjb@xxxxxxxxxxxxxxxxx> wrote:

George Neuner <gneuner2/@comcast.net> writes:

The Lisp machines, and to a lesser extent Movitz, show that CL can be
mated to and used successfully on a bare metal runtime package ... but
that has never been in dispute. In my book that's not the same as
saying CL can be used to program bare metal.

fireblade asked about lisp; you're answering about Common Lisp.

All right fine!

Common Lisp is a language, and it's powerful enough to describe
abstractly any kind of hardware and write an OS for it.

But it *isn't* powerful enough to directly program that hardware -
only to program an abstraction of the hardware. It has no support for
raw access to the hardware and no direct support for placing code or
data.

Not Common Lisp the standard, right.
But that doesn't prevent me to do things like:

(com.informatimago.clisp.raw-memory:POKE-UINT8 #\x10001234
(mod (1+ (com.informatimago.clisp.raw-memory:PEEK-UINT8 #\x10001234)) 256))

or to use these peek and poke to communicate thru shared memory
between different processes. And right, I implemetned these funtions
as external C functions, but I could have used a LAP written in lisp
instead.

[...]
The implementation specific runtime services you need to implement the
low-level OS stuff, you can of course implement them purely in Common
Lisp, writting in Common Lisp a compiler that generate the baremetal
binary needed.

You're intentionally obfuscating. The question is not whether Lisp
can be used to somehow assemble a runtime package that supports a Lisp
environment - the question is whether the support code itself can be
written *AS* Lisp.

The answer to that is a resounding "no". The corresponding answer for
C is "not quite, but you can get very close".

Well, I'm influenced by squeak who is written 100% in Smalltalk, even
its bootstrap (virtual machine) code. (Only the subset of Smalltalk
used to implement it is generated to a C source instead of generating
directly the binary, you know, C is but a portable assembler). So I'm
still not too convinced of the "resounding" no.


--
__Pascal Bourguignon__ http://www.informatimago.com/

ATTENTION: Despite any other listing of product contents found
herein, the consumer is advised that, in actuality, this product
consists of 99.9999999999% empty space.
.



Relevant Pages

  • Re: Why Lisp is not popular with average programmers
    ... > used to link directly to the hardware drivers by programs ... You can link Lisp programs to C and C++ programs, ... > Networking would have been nice for the standard to mention ... > machine code you can *make* your driver conform to that ABI ...
    (comp.lang.lisp)
  • Re: a dozen cpus on a chip
    ... No nontrivial language can ever be proven to be imposible to crash. ... compilers still available which implement ISO M2. ... It is a common misconception that Lisp is always interpretted. ... various X86 machines the hardware does exist that could allow the OS ...
    (sci.electronics.design)
  • Re: What are the domains that lisp doesnt fit int?
    ... mated to and used successfully on a bare metal runtime package ... ... fireblade asked about lisp; ... But it *isn't* powerful enough to directly program that hardware - ... It has no support for ...
    (comp.lang.lisp)
  • Re: Bootstrapping ANSI CL
    ... The next step would be implementing a basic Lisp in Forth (enough to ... provide the first Forth bootstrap environment directly in hardware ... Common Lisp (btw. for anyone who might be interested, ...
    (comp.lang.lisp)
  • Re: Bootstrapping ANSI CL
    ... The next step would be implementing a basic Lisp in Forth (enough to ... provide the first Forth bootstrap environment directly in hardware ...
    (comp.lang.lisp)