summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cconv.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2011-04-01 11:16:50 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2011-04-01 11:16:50 -0400
commit7200d79c65c65686495dd95e9f6dd436cf6db55e (patch)
tree5ad8e8f4ad0bb2dadfdc1d670cb3cd47db28a3f8 /lisp/emacs-lisp/cconv.el
parent40d83b412f584cc02e68d4eac8fd5e6eb769e2fe (diff)
downloademacs-7200d79c65c65686495dd95e9f6dd436cf6db55e.tar.gz
emacs-7200d79c65c65686495dd95e9f6dd436cf6db55e.tar.bz2
emacs-7200d79c65c65686495dd95e9f6dd436cf6db55e.zip
Miscellanous cleanups in preparation for the merge.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Remove debug statement. * lisp/emacs-lisp/bytecomp.el (byte-compile-single-version) (byte-compile-version-cond, byte-compile-delay-out) (byte-compile-delayed-out): Remove, unused. * src/bytecode.c (Fbyte_code): Revert to old calling convention. * src/lisp.h (COMPILED_PUSH_ARGS): Remove, unused.
Diffstat (limited to 'lisp/emacs-lisp/cconv.el')
-rw-r--r--lisp/emacs-lisp/cconv.el8
1 files changed, 8 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el
index 46d14880a2c..5cc9ecb4cf7 100644
--- a/lisp/emacs-lisp/cconv.el
+++ b/lisp/emacs-lisp/cconv.el
@@ -67,15 +67,23 @@
;; TODO: (not just for cconv but also for the lexbind changes in general)
;; - let (e)debug find the value of lexical variables from the stack.
+;; - make eval-region do the eval-sexp-add-defvars danse.
;; - byte-optimize-form should be applied before cconv.
;; OTOH, the warnings emitted by cconv-analyze need to come before optimize
;; since afterwards they can because obnoxious (warnings about an "unused
;; variable" should not be emitted when the variable use has simply been
;; optimized away).
+;; - turn defun and defmacro into macros (and remove special handling of
+;; `declare' afterwards).
+;; - let macros specify that some let-bindings come from the same source,
+;; so the unused warning takes all uses into account.
+;; - let interactive specs return a function to build the args (to stash into
+;; command-history).
;; - canonize code in macro-expand so we don't have to handle (let (var) body)
;; and other oddities.
;; - new byte codes for unwind-protect, catch, and condition-case so that
;; closures aren't needed at all.
+;; - inline source code of different binding mode by first compiling it.
;; - a reference to a var that is known statically to always hold a constant
;; should be turned into a byte-constant rather than a byte-stack-ref.
;; Hmm... right, that's called constant propagation and could be done here,