Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!mintaka!snorkelwacker.mit.edu!ai-lab!zurich.ai.mit.edu!markf
From: markf@zurich.ai.mit.edu (Mark Friedman)
Newsgroups: comp.lang.lisp
Subject: Re: mistaken idea of C? (was end of lisp wave?)
Message-ID: 
Date: 22 Jan 91 19:23:55 GMT
References: <127724@linus.mitre.org> <5569@turquoise.UUCP> <3954@skye.ed.ac.uk>
	<106389@cc.utah.edu>
Sender: news@ai.mit.edu
Reply-To: markf@zurich.ai.mit.edu
Organization: M.I.T. Artificial Intelligence Lab.
Lines: 33
In-reply-to: RCAPENER@cc.utah.edu's message of 21 Jan 91 02:11:12 GMT

In article <106389@cc.utah.edu> RCAPENER@cc.utah.edu writes:

   In C, you do not add in the libraries.  You add in ONLY those
   functions from that library that you requested.  For example,
   if you have the log() function in your code, the -lm directive
   to the link loader extracts only the log() function, not every
   function in the library!  In other words, you pay for only what
   you need, no more.  I would say that most C executable programs
   are 1/2 the size of a LISP program (including the overhead of the
   LISP system) for any moderately large system.

This generally not the case for C linkers. Usually the entire object
module containing the function that you need is extracted from the
library and linked into your executable. Run nm (which lists external
symbol names) on your executable and you'll see what I mean. I would
have included the output from nm on your small test program in this
message, but it was 209 lines long :-)

   Hope this clears up ANY confusion about the language C.  Personally,
   I like both LISP and C, so please don't flame me.

Hope this clears up ANY confusion about the language C.  Personally, I
like both LISP and Scheme, so please don't flame me :-)

-Mark
--

Mark Friedman
MIT Artificial Intelligence Lab
545 Technology Sq.
Cambridge, Ma. 02139

markf@zurich.ai.mit.edu