Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!mailrus!ames!ncar!boulder!news From: news@boulder.Colorado.EDU (News Owner) Newsgroups: comp.lang.lisp Subject: Re: Linking and MACL (really efficiency of local functions) Keywords: lazy evaluation? Message-ID: <14230@boulder.Colorado.EDU> Date: 26 Nov 89 16:07:29 GMT References: <21316@brunix.UUCP> <1989Nov20.150510.20700@hellgate.utah.edu> <31762@news.Think.COM> <31768@news.Think.COM> Reply-To: ralex@boulder.Colorado.EDU (Repenning Alexander) Organization: University of Colorado, Boulder Lines: 20 From: ralex@boulder.Colorado.EDU (Repenning Alexander) Path: boulder!ralex > I don't know about Lucid, but the Symbolics implementation doesn't actually > indirect through function names when calling the function, either local or > global. The calling function contains a pointer to the callee function > object. The indirection through the function name is done only once, at > load time. The actual calling mechanism is the same for both global and > local functions. I can certainly believe this works fine for local functions. However, if the indirection is done only once at load time how does this schema account for modifications of the callee? Or even worse, the called function might not be defined yet. How does the Symbolics handle this? Lazy evaluation? In order to propagate modification the callee needs to have some sort of backward pointers to all callers to update the indirections. Alex