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