home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / lang / lisp / 3373 < prev    next >
Encoding:
Internet Message Format  |  1993-01-27  |  2.3 KB

  1. 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
  2. From: jeff@aiai.ed.ac.uk (Jeff Dalton)
  3. Newsgroups: comp.lang.lisp
  4. Subject: Re: Lisp syntax beauty? (was Re: Why Isn't Lisp a Mainstream Language?)
  5. Message-ID: <8268@skye.ed.ac.uk>
  6. Date: 27 Jan 93 13:32:00 GMT
  7. References: <dfs.727732459@kehleyr>> <EMCOOP.93Jan22161006@bcars148.bnr.ca> <dfs.727757157@kehleyr>
  8. Sender: news@aiai.ed.ac.uk
  9. Organization: AIAI, University of Edinburgh, Scotland
  10. Lines: 41
  11.  
  12. In article <dfs.727757157@kehleyr> dfs@doe.carleton.ca (David F. Skoll) writes:
  13.  
  14. >Providing lots of special-purpose functions which cannot be removed at
  15. >run-time is bad news.  I have no problems with lots of special-purpose
  16. >functions, but you shouldn't be forced to have them all, whether you
  17. >need them or not.  The CL standard makes no provisions for excluding
  18. >some functions from a run-time environment. 
  19.  
  20. But why does the _standard_ (or other language definition) have to
  21. do this?  
  22.  
  23. >Absolutely.  But if you don't want to use a certain C function, you don't
  24. >link it in.  Your programs have no overhead for unused functionality.
  25. >If Common Lisp had some mechanism for this, then my criticism would not
  26. >be valid.
  27.  
  28. The C language has no mechanism for this.  It's the linkers that do
  29. it.
  30.  
  31. So, the right question is: is there something about the language
  32. that rules out implementation strategies that omit unneeded code?
  33. And the answer is "yes".  Almost anything could be called, eg by
  34.  
  35.    (apply (read) (read))
  36.  
  37. So implementation either have to provide a way for the user to
  38. say that only the functions that are directly called will be
  39. called or else provide a way to load in functions when needed.
  40. The latter approach has been around for a long time in the
  41. form of "autoloading".
  42.  
  43. However, such tricks won't work very well if programs tend to
  44. require most of CL, perhaps because CL is so intertwined.  This
  45. is a standard criticism of CL.  ERROR requires FORMAT, etc.
  46. But how true is it?  Well, I think there's evidence that it's
  47. sufficiently true to be a problem.  On the other hand, why 
  48. should it be fatal.  What if, for instance, CL is packaged as
  49. a shared library (as in WCL)?  It's a fairly big shared library,
  50. but then so is X.
  51.  
  52. -- jd
  53.