Path: utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp Subject: Re: Common Lisp gripes (was Re: In defense of call/cc (and a plug for T)) Message-ID: <4156@skye.ed.ac.uk> Date: 18 Feb 91 14:57:48 GMT References: <1991Feb12.233157.20820@elroy.jpl.nasa.gov> <1350036@otter.hpl.hp.com> <1991Feb17.000333.16922@Think.COM> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 28 In article <1991Feb17.000333.16922@Think.COM> barmar@think.com (Barry Margolin) writes: >>[10] the >>dual name spaces for functions and values (bletch!) (use type hints >>to avoid the usual complaints of efficiency (see Pop11)) > >What efficiency complaints are these? I think most of us who are in favor >of multiple namespaces (there are more than two -- there are also namespaces >for classes, types, and packages) like the semantics of it. I've never >heard an efficiency justification. Maybe you're both right? There is an efficiency argument, but it isn't a justification for two namespaces (or at least not an important one). The basic idea is that in a Lisp-1 a function call might have to check that the value is a function. This is a problem for global variables and for locals where the compiler can't be sure the value will be a function. A solution (for globals?) is to (1) always have a spearate function value that's called, and (2) have assignment of a non-function value change the separate function to one that signals an error. This sort of thing is discussed in (amazingly enough) the first issue of Lisp Pointers in the endpaper "Technical Issues of Separation in Function Cells and Value Cells", page 95. I think you probably have seen this, but since the efficiency issue has been settled (ie, it's not a great problem), it doesn't really count as a justification. -- jd