emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs Lisp and Guile


From: Marius Vollmer
Subject: Re: Emacs Lisp and Guile
Date: 25 Jul 2002 21:16:03 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Richard Stallman <address@hidden> writes:

> Since Emacs Lisp syntax is not the same as Guile syntax, we will need
> a reader that handles Emacs Lisp syntax--unless it happens that the
> Guile reader could be customized to support Emacs Lisp syntax.  Is
> that feasible?

It is not possible to configure the Guile reader enough right now, but
it would certainly be a good thing to add that configurability.

>     2. The representation of Elisp variables doesn't allow for buffer- and
>     frame-local variables.
> 
> How to handle these in a Guile-based system is not obvious, but they are
> such important features that we must make them work.

A Elisp variable can start its existence as a normal variable and then
be later turned into a buffer- or frame-local variable and when such a
change occurs, all code (possibly already compiled) must start to
treat the variable as buffer local, right?

When that is the case, we need to treat Elisp variable references
differently from Scheme variable references.  In Scheme, we only look
up the storage location of a variable once and then each reference is
only a simple memory access.

However, we are also considering an automatic re-lookup machine that
would update the old lookups whenever the state of the module system
changes in such a way that these old lookups become outdated.  (That
is, when some code refers to a variable with the name "foo" and that
name is at first provided by the module mod1, and then mod1 is
changed to no longer export "foo" but mod2 now does, we will
automatically modify the code to refer to the new variable.)

We could use this (as of now non-existing) machinery to also modify
code that has been translated from Elisp.

I'm not sure that I like this approach, tho.  Right now, I'd say that
requiring the user to simply reload his files when he wants a new
name->variable mapping to take effect is good enough or maybe even
better.

That said, I think we should have a new primitive procedure, say
@elisp-ref, that does the right thing for Elisp variables.

-- 
GPG: 7CB2 927E F53F BD3C 5DC4  CD06 CF32 AB3E 1FC6 BAE7



reply via email to

[Prev in Thread] Current Thread [Next in Thread]