1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 02:51:31 -08:00

(cl-parse-loop-clause, labels): Use gensym

rather than make-symbol for symbols which are used in
a symbol-macrolet or equivalent.
This commit is contained in:
Stefan Monnier 2004-11-27 00:20:38 +00:00
parent 048aac3938
commit 443b961aee
2 changed files with 32 additions and 17 deletions

View file

@ -5,15 +5,29 @@
(flymake-time-to-float): Remove.
(flymake-float-time): Merge code from flymake-time-to-float here.
(flymake-replace-regexp-in-string): Change to defsubst.
(flymake-split-string-remove-empty-edges): Rename to flymake-split-string.
(flymake-split-string-remove-empty-edges):
Rename to flymake-split-string.
(flymake-split-string): Remove previous defalias.
(flymake-get-temp-dir): Change to defsubst.
(flymake-make-xemacs-menu, flymake-xemacs-window-edges): Define
for xemacs only.
(flymake-make-xemacs-menu, flymake-xemacs-window-edges):
Define for xemacs only.
(flymake-master-file-count-limit): Change into compiler defvar only.
(flymake-find-possible-master-files): Let-bind it dynamically while
sorting files using flymake-master-file-compare.
2004-11-26 Stefan Monnier <monnier@iro.umontreal.ca>
* font-lock.el (font-lock-compile-keywords): Don't complain if the end
of defun-prompt-regexp matches inside a comment/string but the
beginning is correctly outside everything.
* progmodes/tcl.el (tcl-omit-ws-regexp): Avoid the case where { or [
appears within a string or a comment.
* emacs-lisp/cl-macs.el (cl-parse-loop-clause, labels): Use gensym
rather than make-symbol for symbols which are used in
a symbol-macrolet or equivalent.
2004-11-26 Jay Belanger <belanger@truman.edu>
* calc-misc.el (calc-last-why-command): Declare it.
@ -29,8 +43,7 @@
(calc-one-window, calc-edit-handler, calc-restore-trail)
(calc-allow-ret): Declare them.
* calc/calc-stuff.el (calc-flush-caches): Remove unnecessary
variables.
* calc/calc-stuff.el (calc-flush-caches): Remove unnecessary variables.
(math-lud-cache, math-log2-cache, math-radix-digits-cache)
(math-radix-float-cache-tag, math-random-cache)
(math-max-digits-cache, math-integral-cache, math-units-table)
@ -47,8 +60,7 @@
Replace variable pos by declared variable.
* calc/calc-mtx.el (calc-det-lu): New variable.
(math-det-raw, math-det-step): Replace variable lu by declared
variable.
(math-det-raw, math-det-step): Replace variable lu by declared variable.
* calc/calc-map.el (math-ms-temp, math-ms-args): New variables.
(math-multi-subst, math-multi-subst-rec): Replace variables temp
@ -62,8 +74,7 @@
(calc-digit-value): Declare them.
* calc/calc-help.el (Info-history): Declare it.
(calc-describe-key): Make calc-summary-indentation a local
variable.
(calc-describe-key): Make calc-summary-indentation a local variable.
(calc-help-long-names): Move declaration to earlier in file.
* calc/calc-embed.el (calc-original-buffer): Declare it.
@ -71,9 +82,8 @@
(calc-embed-bot): New variables.
(calc-do-embedded, calc-embedded-mark-formula)
(calc-embedded-find-bounds, calc-embedded-duplicate)
(calc-embedded-new-formula, calc-embedded-make-info): Replace
variables outer-top, outer-bot, bot and top by declared
variables.
(calc-embedded-new-formula, calc-embedded-make-info):
Replace vars outer-top, outer-bot, bot and top by declared variables.
(calc-embed-prev-modes): New variable.
(calc-embedded-set-modes, calc-embedded-update): Replace variable
prev-modes with declared variable.
@ -82,8 +92,7 @@
(calc-embedded-update, calc-embedded-find-vars): Replace variable
vars-used by declared variable.
* calc/calc-bin.el (math-format-radix-float): Make pos a local
variable.
* calc/calc-bin.el (math-format-radix-float): Make pos a local variable.
(math-format-radix-float): Remove unnecessary setq.
(math-radix-float-cache): Declare it.

View file

@ -715,7 +715,10 @@ Valid clauses are:
(let ((loop-for-bindings nil) (loop-for-sets nil) (loop-for-steps nil)
(ands nil))
(while
(let ((var (or (pop args) (make-symbol "--cl-var--"))))
;; Use `gensym' rather than `make-symbol'. It's important that
;; (not (eq (symbol-name var1) (symbol-name var2))) because
;; these vars get added to the cl-macro-environment.
(let ((var (or (pop args) (gensym "--cl-var--"))))
(setq word (pop args))
(if (eq word 'being) (setq word (pop args)))
(if (memq word '(the each)) (setq word (pop args)))
@ -1314,7 +1317,10 @@ Unlike `flet', this macro is fully compliant with the Common Lisp standard.
\(fn ((FUNC ARGLIST BODY...) ...) FORM...)"
(let ((vars nil) (sets nil) (cl-macro-environment cl-macro-environment))
(while bindings
(let ((var (make-symbol "--cl-var--")))
;; Use `gensym' rather than `make-symbol'. It's important that
;; (not (eq (symbol-name var1) (symbol-name var2))) because these
;; vars get added to the cl-macro-environment.
(let ((var (gensym "--cl-var--")))
(push var vars)
(push (list 'function* (cons 'lambda (cdar bindings))) sets)
(push var sets)