[Top][All Lists]

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

Re: [Emacs-diffs] master c75eb10: Don't change byte-compile-delete-error

From: Stefan Monnier
Subject: Re: [Emacs-diffs] master c75eb10: Don't change byte-compile-delete-errors at runtime (Bug#27340)
Date: Fri, 30 Jun 2017 02:06:33 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

> In CL declaim can be used to make variables special. (In fact, `special'
> is the only declaration that must have an effect in all conforming CL
> implementations.)

Right, AFAIK it's largely equivalent to Elisp's (defvar foo).

not sure how it works in CL, but in Elisp, if a file foo.el has

    (defvar foo)

then `foo` will be treated as dynamically bound in foo.el when the
compiler generate the code for foo.elc.
But loading foo.elc, won't mark `foo` as dynamically bound, so in

    (require 'foo)
    (defun bar (x)
      (let ((foo x))
        (lambda (y) (+ foo y))))

the function `bar` should treat its `foo` binding lexically.


PS: Note I'm really talking about (defvar foo) and not (defvar foo blabla)

reply via email to

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