Re: What are the domains that lisp doesn't fit int?
- From: Pascal Bourguignon <pjb@xxxxxxxxxxxxxxxxx>
- Date: Sat, 28 Apr 2007 12:57:09 +0200
George Neuner <gneuner2/@comcast.net> writes:
On Sat, 28 Apr 2007 02:16:32 +0200, Pascal Bourguignon
<pjb@xxxxxxxxxxxxxxxxx> wrote:
Dan Bensen <randomgeek@xxxxxxxxxxxxxx> writes:
fireblade wrote:
What are ... domains where lisp doesn't fit in?
Drivers: close to the metal.
If lisp worked perfectly well as system programming language on the
lisp machines, what does that say on the ability of lisp for writting
drivers?
It says that the Lisp machines had special hardware and kernel support
to make it work.
Common Lisp doesn't prevent an implementation to have implementation
specific extensions to be able to run on the bare metal, even on an
Intel processor. See Movitz.
True. But the need for extensions shows that standard CL cannot
support the application domain.
Movitz is a truly wonderful piece of software, but it is not quite the
showpiece for bare metal Lisp programming that you think it is. The
kernel runtime functions are not written in Lisp and their use
requires special knowledge in the compiler (which is, of course, not
dissimilar from any other implementation ... but that makes my point
for me). Additionally many of the drivers included with Muerte appear
to have been adapted from open source Linux versions rather than
written new to take advantage of Lisp.
Although new drivers written in Lisp can use the existing runtime
services, new runtime services cannot necessarily be written in Lisp.
Nor does the system as yet provide GC, it currently has only a very
rudimentary, allocate only, "mark no release" memory scheme for use in
kernel programming.
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.
Common Lisp is a language, and it's powerful enough to describe
abstractly any kind of hardware and write an OS for it.
If you don't have any implementation specific extensions or even only
provision to run on that actual hardware, of course your CL OS speach
will stay abstract (you'll only be running an emulator). But nothing
prevents you to implement all that in CL.
Note that with C you have the same problem: the C language is defined
abstractly, and cannot be used to implement an OS. The Linux kernel
for example is implemented with a specific implementation and its
extensions, not in ANSI C.
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.
Embedding: Poor memory resources.
If lisp worked on systems of 50 years ago, what does that say on the
memory resources needed by lisp?
As you noted, this is mostly a straw man although I personally have
yet to see a Lisp that can operate in 4K. And the teeny
implementations I have seen were severely limited in functionality.
What do you need to call a program a _lisp_ implementation?
--
__Pascal Bourguignon__ http://www.informatimago.com/
READ THIS BEFORE OPENING PACKAGE: According to certain suggested
versions of the Grand Unified Theory, the primary particles
constituting this product may decay to nothingness within the next
four hundred million years.
.
- Follow-Ups:
- Re: What are the domains that lisp doesn't fit int?
- From: George Neuner
- Re: What are the domains that lisp doesn't fit int?
- References:
- What are the domains that lisp doesn't fit int?
- From: fireblade
- Re: What are the domains that lisp doesn't fit int?
- From: Dan Bensen
- Re: What are the domains that lisp doesn't fit int?
- From: Pascal Bourguignon
- Re: What are the domains that lisp doesn't fit int?
- From: George Neuner
- What are the domains that lisp doesn't fit int?
- Prev by Date: Re: online complete reference for FORMAT
- Next by Date: problem with Google groups?
- Previous by thread: Re: What are the domains that lisp doesn't fit int?
- Next by thread: Re: What are the domains that lisp doesn't fit int?
- Index(es):
Relevant Pages
|