diff lisp/emacs-lisp/byte-run.el @ 54496:94bcfb39cf49

(defsubst): Add edebug spec and use backquote. (dont-compile, eval-when-compile, eval-and-compile): Add edebug spec.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 22 Mar 2004 15:22:34 +0000
parents 9d42c2c9095d
children 1376729a93a7
line wrap: on
line diff
--- a/lisp/emacs-lisp/byte-run.el	Mon Mar 22 15:21:08 2004 +0000
+++ b/lisp/emacs-lisp/byte-run.el	Mon Mar 22 15:22:34 2004 +0000
@@ -1,6 +1,6 @@
 ;;; byte-run.el --- byte-compiler support for inlining
 
-;; Copyright (C) 1992 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 2004  Free Software Foundation, Inc.
 
 ;; Author: Jamie Zawinski <jwz@lucid.com>
 ;;	Hallvard Furuseth <hbf@ulrik.uio.no>
@@ -67,14 +67,14 @@
 ;; This has a special byte-hunk-handler in bytecomp.el.
 (defmacro defsubst (name arglist &rest body)
   "Define an inline function.  The syntax is just like that of `defun'."
+  (declare (debug defun))
   (or (memq (get name 'byte-optimizer)
 	    '(nil byte-compile-inline-expand))
       (error "`%s' is a primitive" name))
-  (list 'prog1
-	(cons 'defun (cons name (cons arglist body)))
-	(list 'eval-and-compile
-	      (list 'put (list 'quote name)
-		    ''byte-optimizer ''byte-compile-inline-expand))))
+  `(prog1
+       (defun ,name ,arglist ,@body)
+     (eval-and-compile
+       (put ',name 'byte-optimizer 'byte-compile-inline-expand))))
 
 (defun make-obsolete (fn new &optional when)
   "Make the byte-compiler warn that FUNCTION is obsolete.
@@ -109,6 +109,7 @@
 (defmacro dont-compile (&rest body)
   "Like `progn', but the body always runs interpreted (not compiled).
 If you think you need this, you're probably making a mistake somewhere."
+  (declare (debug t))
   (list 'eval (list 'quote (if (cdr body) (cons 'progn body) (car body)))))
 
 
@@ -121,6 +122,7 @@
 (defmacro eval-when-compile (&rest body)
   "Like `progn', but evaluates the body at compile time.
 The result of the body appears to the compiler as a quoted constant."
+  (declare (debug t))
   ;; Not necessary because we have it in b-c-initial-macro-environment
   ;; (list 'quote (eval (cons 'progn body)))
   (cons 'progn body))
@@ -128,6 +130,7 @@
 (put 'eval-and-compile 'lisp-indent-hook 0)
 (defmacro eval-and-compile (&rest body)
   "Like `progn', but evaluates the body at compile time and at load time."
+  (declare (debug t))
   ;; Remember, it's magic.
   (cons 'progn body))