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: Stefan Monnier
Subject: Re: [PATCH] * src/eval.c: Stop checking for nvars, and use only CONSP
Date: Tue, 02 Mar 2021 09:31:00 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

> That testcase comes from this code (src/eval.c:L1014) which we already had.
>
>       else if (! NILP (Fcdr (Fcdr (elt))))
>       signal_error ("`let' bindings can have only one value-form", elt);

Yes, some people disagree with my me ;-)

> I tried to remove this, my temp Emacs works like this in *scratch* buffer.
>
>     (let ((a 1 2))
>        a)                       ; Type C-j
>     1
>
> This is very strange I think.  I still think it's important for
> Emacs, even as an interpreter, to produce errors.

I view the ELisp interpreter as a crutch to bootstrap the system.
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))))


        Stefan




reply via email to

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