straz@media-lab.MEDIA.MIT.EDU (Steve Strassmann) (02/13/91)
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.
shebs@Apple.COM (Stan Shebs) (02/16/91)
In article <5208@media-lab.MEDIA.MIT.EDU> straz@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 shebs@apple.com