home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!news.univie.ac.at!scsing.switch.ch!univ-lyon1.fr!ghost.dsi.unimi.it!rpi!uwm.edu!spool.mu.edu!agate!doc.ic.ac.uk!uknet!edcastle!aiai!jeff
- From: jeff@aiai.ed.ac.uk (Jeff Dalton)
- Newsgroups: comp.lang.lisp
- Subject: Re: Lisp syntax beauty? (was Re: Why Isn't Lisp a Mainstream Language?)
- Message-ID: <8268@skye.ed.ac.uk>
- Date: 27 Jan 93 13:32:00 GMT
- References: <dfs.727732459@kehleyr>> <EMCOOP.93Jan22161006@bcars148.bnr.ca> <dfs.727757157@kehleyr>
- Sender: news@aiai.ed.ac.uk
- Organization: AIAI, University of Edinburgh, Scotland
- Lines: 41
-
- In article <dfs.727757157@kehleyr> dfs@doe.carleton.ca (David F. Skoll) writes:
-
- >Providing lots of special-purpose functions which cannot be removed at
- >run-time is bad news. I have no problems with lots of special-purpose
- >functions, but you shouldn't be forced to have them all, whether you
- >need them or not. The CL standard makes no provisions for excluding
- >some functions from a run-time environment.
-
- But why does the _standard_ (or other language definition) have to
- do this?
-
- >Absolutely. But if you don't want to use a certain C function, you don't
- >link it in. Your programs have no overhead for unused functionality.
- >If Common Lisp had some mechanism for this, then my criticism would not
- >be valid.
-
- The C language has no mechanism for this. It's the linkers that do
- it.
-
- So, the right question is: is there something about the language
- that rules out implementation strategies that omit unneeded code?
- And the answer is "yes". Almost anything could be called, eg by
-
- (apply (read) (read))
-
- So implementation either have to provide a way for the user to
- say that only the functions that are directly called will be
- called or else provide a way to load in functions when needed.
- The latter approach has been around for a long time in the
- form of "autoloading".
-
- However, such tricks won't work very well if programs tend to
- require most of CL, perhaps because CL is so intertwined. This
- is a standard criticism of CL. ERROR requires FORMAT, etc.
- But how true is it? Well, I think there's evidence that it's
- sufficiently true to be a problem. On the other hand, why
- should it be fatal. What if, for instance, CL is packaged as
- a shared library (as in WCL)? It's a fairly big shared library,
- but then so is X.
-
- -- jd
-