emacs-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] * src/eval.c: Stop checking for nvars, and use only CONSP


From: Pip Cet
Subject: Re: [PATCH] * src/eval.c: Stop checking for nvars, and use only CONSP
Date: Tue, 2 Mar 2021 15:19:14 +0000

On Tue, Mar 2, 2021 at 2:32 PM Stefan Monnier <monnier@iro.umontreal.ca> wrote:
> I view the ELisp interpreter as a crutch to bootstrap the system.

Well, I view the bytecode compiler as a crutch to get to LIMPLE for
native compilation ;-)

I'm all for a revolution, but it might be a bit early to chop off this
particular king's head...

> AFAIK the only really good reason why we still have it is for the
> benefit of debugging: debugging byte-compiled code (whether with Edebug
> or with the backtrace debugger) is a lot more constraining than
> debugging interpreted code, mostly because it loses the information
> about the currently bound lexical variables.
> All other uses of it could
> be replaced by something like
>
>     (defun eval (exp) (funcall (byte-compile `(lambda () ,exp))))

Except for the ones that can't. ELC is still limited to 64K constants
in the vector, for example, isn't it? It's a bit late in the century
for 16-bit limits...

But as for the original question, do we have to have Flet? I just
defined a macro called let which builds a closure and calls it, and it
crashed my Emacs. But if it would work, could we get rid of this
entire (C) function?

Oh, right, I assumed lexical scoping...

Pip



reply via email to

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