Re: type inferencer/compiler

Leon Bottou <[email protected]> Tue, 25 Apr 2006 11:47:46 -0400
Newsgroups gmane.lisp.lush.devel
Message-ID <[email protected]>
On Tuesday 25 April 2006 01:56, Yury Sulsky wrote:
> Hi everyone,
Cool. It basically works.

> In short, it really needs to be fleshed out. I haven't done a lot of
> testing, but what is there seems to work pretty well. One issue to
> consider is that global variables are looked up by the runtime, so you
> have to box/unbox them and you can't open-code calls to global
> functions.
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.

- L.
 


-------------------------------------------------------
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&kid=120709&bid=263057&dat=121642