From: Steve Strassmann
Subject: a quickie lisp
Date: 
Message-ID: <5208@media-lab.MEDIA.MIT.EDU>
Systems like unix seem to encourage building little stand-alone
applications with names that sound like gastric disorders, like grep,
wc, and biff.

Has anyone ever made a lisp-like compiler that produces relatively
small stand-alone executables? Of course, there would be appropriate
restrictions on the language, or even the ability to cons freely. But
perhaps there's a large class of useful small applications that could
be written with such a system, even with those limitations.

I guess I'd like to be able to write utilities that could be used by
others without requiring them to start up a huge lisp image each time,
which is especially daunting if they don't know any lisp.
From: Stan Shebs
Subject: Re: a quickie lisp
Date: 
Message-ID: <12119@goofy.Apple.COM>
In article <····@media-lab.MEDIA.MIT.EDU> ·····@media-lab.MEDIA.MIT.EDU (Steve Strassmann) writes:
>
>Has anyone ever made a lisp-like compiler that produces relatively
>small stand-alone executables? Of course, there would be appropriate
>restrictions on the language, or even the ability to cons freely. But
>perhaps there's a large class of useful small applications that could
>be written with such a system, even with those limitations.

(Here's my estimate of the current situation.  Although I've worked with
Lisp for nearly ten years now, I haven't done any implementation in the
past couple years, so things may have changed.)

So far the problem of making small standalone executables from Lisp programs
appears to be unsolved.  Some people have produced "tree-shakers" that
attempt to remove unused stuff from a Lisp system.  In practice, this seems
to cut executables from 5M to 1M, which is good but not good enough.  The
effectiveness of tree-shaking is highly dependent on programming style, both
in the user program and in the Lisp implementation - one teeny bit of laziness
in using a feature might add another 500K onto your application's size.

Restrictions on consing, features, etc could help but given the capabilities
of current compilers, are likely to be so restrictive that the advantages
of Lisp are lost.  At that point folks just switch over to C and provide
themselves with enough of a Lisp-like environment to be comfortable (witness
Gnu software).

However, the current crop of C and C++ programs are getting so large and
so complicated to write that well-designed Lisp systems are starting to look
attractive again...

						Stan Shebs
						Apple ATG System Software
						·····@apple.com