;ELC
;;; Compiled by LTX@Xue-LingTaos-MacBook-Pro.local on Wed Mar 16 23:07:57 2011
;;; from file /Users/LTX/Projects/Emacs/emacs/lisp/emacs-lisp/byte-run.el
;;; in Emacs version 24.0.50
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@276 Process a declaration found in a macro definition.
This is set as the value of the variable `macro-declaration-function'.
MACRO is the name of the macro being defined.
DECL is a list `(declare ...)' containing the declarations.
The return value of this function is not used.
(defalias 'macro-declaration-function #[(macro decl) "\303	A\211\205c	@\211:\203[A<\203[AA\204[@\304=\203/\305\n\306A@#\210\202@\307=\203A\305\n\310A@#\210\202@\311=\203S\305\n\312A@#\210\202\313\314\"\210\202\313\315\"\210\202)\207" [d decl macro nil indent put lisp-indent-function debug edebug-form-spec doc-string doc-string-elt message "Unknown declaration %s" "Invalid declaration %s"] 5 (#$ . 552)])(if macro-declaration-function (funcall macro-declaration-function (quote defsubst) (quote (declare (debug defun)))))
(byte-code "\300\301\302M\207" [macro-declaration-function inline progn] 2)
#@70 Define an inline function.  The syntax is just like that of `defun'.
(defalias 'defsubst '(macro . #[(name arglist &rest body) "\303N\304>\204
\305\306\"\210\307\310	\nBBB\311\312\313D\314BBDE\207" [name arglist body byte-optimizer (nil byte-compile-inline-expand) error "`%s' is a primitive" prog1 defun eval-and-compile put quote ('byte-optimizer 'byte-compile-inline-expand)] 6 (#$ . 1464)]))
(byte-code "\301B\302\301!\204\303\301\304\305\306\307\310$\"\210\301\207" [current-load-list advertised-signature-table default-boundp set-default make-hash-table :test eq :weakness key] 7)
#@210 Set the advertised SIGNATURE of FUNCTION.
This will allow the byte-compiler to warn the programmer when she uses
an obsolete calling convention.  WHEN specifies since when the calling
convention was modified.
(defalias 'set-advertised-calling-convention #[(function signature when) "\303\304!	\n#\207" [function signature advertised-signature-table puthash indirect-function] 4 (#$ . 2067)])
#@379 Make the byte-compiler warn that OBSOLETE-NAME is obsolete.
The warning will say that CURRENT-NAME should be used instead.
If CURRENT-NAME is a string, that is the `use instead' message
(it should end with a period, and not start with a capital).
If provided, WHEN should be a string indicating when the function
was first made obsolete, for example a date or a release number.
(defalias 'make-obsolete #[(obsolete-name current-name &optional when) "\304N\211\305=\203\306NA@\202\307\304\305#\210\307\306\310\n!	\310!E#\210)\207" [obsolete-name handler current-name when byte-compile byte-compile-obsolete byte-obsolete-info put purecopy] 8 (#$ . 2467) "aMake function obsolete: \nxObsoletion replacement: "])(if macro-declaration-function (funcall macro-declaration-function (quote define-obsolete-function-alias) (quote (declare (doc-string 4)))))
(set-advertised-calling-convention 'make-obsolete '(obsolete-name current-name when) "23.1")
#@366 Set OBSOLETE-NAME's function definition to CURRENT-NAME and mark it obsolete.

(define-obsolete-function-alias 'old-fun 'new-fun "22.1" "old-fun's doc.")

is equivalent to the following two lines of code:

(defalias 'old-fun 'new-fun "old-fun's doc.")
(make-obsolete 'old-fun 'new-fun "22.1")

See the docstrings of `defalias' and `make-obsolete' for more details.
(defalias 'define-obsolete-function-alias '(macro . #[(obsolete-name current-name &optional when docstring) "\304\305	\nF\306	FE\207" [obsolete-name current-name docstring when progn defalias make-obsolete] 6 (#$ . 3429)]))
(set-advertised-calling-convention 'define-obsolete-function-alias '(obsolete-name current-name when &optional docstring) "23.1")
#@319 Make the byte-compiler warn that OBSOLETE-NAME is obsolete.
The warning will say that CURRENT-NAME should be used instead.
If CURRENT-NAME is a string, that is the `use instead' message.
If provided, WHEN should be a string indicating when the variable
was first made obsolete, for example a date or a release number.
(defalias 'make-obsolete-variable #[(obsolete-name current-name &optional when) "\303\304	;\203\305	!\202	\305\n!B#\210\207" [obsolete-name current-name when put byte-obsolete-variable purecopy] 6 (#$ . 4158) (list (let ((str (completing-read "Make variable obsolete: " obarray 'boundp t))) (if (equal str #1="") (error #1#)) (intern str)) (car (read-from-string (read-string "Obsoletion replacement: "))))])(if macro-declaration-function (funcall macro-declaration-function (quote define-obsolete-variable-alias) (quote (declare (doc-string 4)))))
(set-advertised-calling-convention 'make-obsolete-variable '(obsolete-name current-name when) "23.1")
#@1019 Make OBSOLETE-NAME a variable alias for CURRENT-NAME and mark it obsolete.
This uses `defvaralias' and `make-obsolete-variable' (which see).
See the Info node `(elisp)Variable Aliases' for more details.

If CURRENT-NAME is a defcustom (more generally, any variable
where OBSOLETE-NAME may be set, e.g. in a .emacs file, before the
alias is defined), then the define-obsolete-variable-alias
statement should be evaluated before the defcustom, if user
customizations are to be respected.  The simplest way to achieve
this is to place the alias statement before the defcustom (this
is not necessary for aliases that are autoloaded, or in files
dumped with Emacs).  This is so that any user customizations are
applied before the defcustom tries to initialize the
variable (this is due to the way `defvaralias' works).

For the benefit of `custom-set-variables', if OBSOLETE-NAME has
any of the following properties, they are copied to
CURRENT-NAME, if it does not already have them:
'saved-value, 'saved-variable-comment.
(defalias 'define-obsolete-variable-alias '(macro . #[(obsolete-name current-name &optional when docstring) "\304\305	\nF\306\307\310\311\312BB\313\311	\314BBD\315	\316\311\317BBFFE\320	FF\207" [obsolete-name current-name docstring when progn defvaralias dolist (prop '(saved-value saved-variable-comment)) and get (prop) null (prop) put prop (prop) make-obsolete-variable] 13 (#$ . 5141)]))
(set-advertised-calling-convention 'define-obsolete-variable-alias '(obsolete-name current-name when &optional docstring) "23.1")
#@149 Make OBSOLETE-FACE a face alias for CURRENT-FACE and mark it obsolete.
The string WHEN gives the Emacs version where OBSOLETE-FACE became
obsolete.
(defalias 'define-obsolete-face-alias '(macro . #[(obsolete-face current-face when) "\303\304\305	F\304\306\307\310\nD\311BBFE\207" [obsolete-face current-face when progn put 'face-alias 'obsolete-face or purecopy (t)] 8 (#$ . 6693)]))(if macro-declaration-function (funcall macro-declaration-function (quote dont-compile) (quote (declare (debug t) (indent 0)))))
#@140 Like `progn', but the body always runs interpreted (not compiled).
If you think you need this, you're probably making a mistake somewhere.
(defalias 'dont-compile '(macro . #[(&rest body) "\301\302A\203
\303B\202@DD\207" [body eval quote progn] 4 (#$ . 7214)]))(if macro-declaration-function (funcall macro-declaration-function (quote eval-when-compile) (quote (declare (debug t) (indent 0)))))
#@211 Like `progn', but evaluates the body at compile time if you're compiling.
Thus, the result of the body appears to the compiler as a quoted constant.
In interpreted code, this is entirely equivalent to `progn'.
(defalias 'eval-when-compile '(macro . #[(&rest body) "\301B\207" [body progn] 2 (#$ . 7622)]))(if macro-declaration-function (funcall macro-declaration-function (quote eval-and-compile) (quote (declare (debug t) (indent 0)))))
#@72 Like `progn', but evaluates the body at compile time and at load time.
(defalias 'eval-and-compile '(macro . #[(&rest body) "\301B\207" [body progn] 2 (#$ . 8067)]))
(put 'with-no-warnings 'lisp-indent-function 0)
#@59 Like `progn', but prevents compiler warnings in the body.
(defalias 'with-no-warnings #[(&rest body) "\301!@\207" [body last] 2 (#$ . 8288)])
