From ... From: Erik Naggum Subject: Re: LISP and C++ Date: 1999/11/05 Message-ID: <3150790975517777@naggum.no>#1/1 X-Deja-AN: 544772139 References: <877lk5v9ac.fsf@2xtreme.net> <87aep0twdb.fsf@2xtreme.net> <7vg08q$9k5$1@nnrp1.deja.com> <1e0jaez.1e25s7pdh71vkN%cheitzin@ag.or.at> <7vr6td$4kv$1@nnrp1.deja.com> <38220637.163638319@nntp.best.com> <7vuc9k$dqc$1@nnrp1.deja.com> mail-copies-to: never X-Complaints-To: newsmaster@eunet.no X-Trace: oslo-nntp.eunet.no 941802180 20213 195.0.192.66 (5 Nov 1999 11:43:00 GMT) Organization: Naggum Software; +47 8800 8879 or +1 510 435 8604; fax: +47 2210 9077; http://www.naggum.no NNTP-Posting-Date: 5 Nov 1999 11:43:00 GMT Newsgroups: comp.lang.lisp * markku.laukkanen@hybrid.fi | What happens if some of the threads change the value-cell for | symbol-function between the evaluation of function arguments..... nothing out of the ordinary. accesses to the symbol-function slots are atomic, and the function object itself is obviously not changed in mid-flight. (disasters might ensue if you change a shared library or an executable image on disk and it is paged in, but the Lisp world is not doing stuff like that, even though the Unix world seems to be quite fond of _not_ locking pages that are mapped into memory with the execute bit set. sigh.) | Don't remember any more if funcall 'foobar is legal, sigh has been | programming for my bad luck with C/C++ for last 6 years. calls to global functions always go through the symbol-function slot of the symbol, anyway. only if you capture the functional value of a symbol in a local binding (such as an argument to a function) will you avoid this lookup at every call. (long-lived-thing #'function-that-may-change) is thus not a good idea if it makes lots of calls to that function, and it's better to make the call explicitly through the symbol, and that is indeed with (funcall ...). #:Erik