diff options
| author | Stefan Monnier | 2012-06-08 09:18:26 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-06-08 09:18:26 -0400 |
| commit | 513749ee1862278385028d6700e1d2ce8abd35e6 (patch) | |
| tree | cb835ce77cd2aa8d828dca57b55642e85f3942c5 /src/eval.c | |
| parent | 595ef4ad76fb75db4a0adb2baf117ef6d68a2e41 (diff) | |
| download | emacs-513749ee1862278385028d6700e1d2ce8abd35e6.tar.gz emacs-513749ee1862278385028d6700e1d2ce8abd35e6.zip | |
Clean up scoping rule of predefined single-word vars.
* lisp/startup.el (argv, argi): Make lexically scoped.
* lisp/emacs-lisp/float-sup.el (pi): Use internal-make-var-non-special.
* lisp/emacs-lisp/cl-macs.el: Use lexical-binding.
Rename cl-bind-* to cl--bind-*.
* lisp/files.el: Don't require `cl' since it doesn't use it.
* lisp/emacs-lisp/pcase.el, lisp/emacs-lisp/macroexp.el: Add coding cookie.
* src/eval.c (Fmake_var_non_special): New primitive.
(syms_of_eval): Defsubr it.
* src/lread.c (syms_of_lread): Mark `values' as lexically scoped.
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 85ff3ae19e6..5a9327a99d8 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -790,6 +790,17 @@ usage: (defconst SYMBOL INITVALUE [DOCSTRING]) */) | |||
| 790 | return sym; | 790 | return sym; |
| 791 | } | 791 | } |
| 792 | 792 | ||
| 793 | /* Make SYMBOL lexically scoped. */ | ||
| 794 | DEFUN ("internal-make-var-non-special", Fmake_var_non_special, | ||
| 795 | Smake_var_non_special, 1, 1, 0, | ||
| 796 | doc: /* Internal function. */) | ||
| 797 | (Lisp_Object symbol) | ||
| 798 | { | ||
| 799 | CHECK_SYMBOL (symbol); | ||
| 800 | XSYMBOL (symbol)->declared_special = 0; | ||
| 801 | return Qnil; | ||
| 802 | } | ||
| 803 | |||
| 793 | 804 | ||
| 794 | DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0, | 805 | DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0, |
| 795 | doc: /* Bind variables according to VARLIST then eval BODY. | 806 | doc: /* Bind variables according to VARLIST then eval BODY. |
| @@ -3582,6 +3593,7 @@ alist of active lexical bindings. */); | |||
| 3582 | defsubr (&Sdefvar); | 3593 | defsubr (&Sdefvar); |
| 3583 | defsubr (&Sdefvaralias); | 3594 | defsubr (&Sdefvaralias); |
| 3584 | defsubr (&Sdefconst); | 3595 | defsubr (&Sdefconst); |
| 3596 | defsubr (&Smake_var_non_special); | ||
| 3585 | defsubr (&Slet); | 3597 | defsubr (&Slet); |
| 3586 | defsubr (&SletX); | 3598 | defsubr (&SletX); |
| 3587 | defsubr (&Swhile); | 3599 | defsubr (&Swhile); |