Re: type inferencer/compiler
"Yury Sulsky" <[email protected]> Tue, 25 Apr 2006 12:13:23 -0400
| Newsgroups | gmane.lisp.lush.devel |
|---|---|
| Message-ID | <[email protected]> |
On 4/25/06, Leon Bottou <[email protected]> wrote: > Global variables often are the point of contact > between the interpreter and the compiled code. > Boxing/unboxing is unavoidable. > > This boils down to the murky semantics of > redefining global variables in lexical lisp. > Everything is clear with dynamic scoping, > but there are various ways to understand what > should be done with a lexical lisp. > > To maintain efficiency, many compilers handle global > function symbols differently from global variables. > Basically writing > (defun foo(x) ... ) > is not the same as > (defparameter foo (lambda(x) ... ) ) > What matters is the compile-time value of (defun..) > and the run-time value of (defparameter...). > The first ones are purely lexical and can be open-coded. > The second one have a dynamical aspect that is related to > the possibility to redefine them later in time. Okay, we can do that by always expanding defun to a defparameter with a 'module argument. Wouldn't it be really annoying though if you have to re-evaluate/compile all users of a function that you'd like to update? Yury ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642