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