;;; Code:
+;; for `load-history'.
(or (boundp 'current-load-list) (setq current-load-list nil))
-;; We cannot use `eval-when-compile' here because v18 does not have it.
-;; (eval-when-compile (require 'static))
-;; Should we use these two macros to emulate `eval-when-compile' ?
-;; (defmacro pym-dummy-require-static ()
-;; (list 'quote (eval '(require 'static))))
-;; (defmacro pym-dummy-require-static-at-compile-time ()
-;; (pym-dummy-require-static))
(require 'static)
(` (or (fboundp (quote (, name)))
(prog1
(defun (, name) (,@ everything-else))
- ;; This `defun' will be compiled to `fset', which does
- ;; not update `load-history'.
+ ;; This `defun' will be compiled to `fset',
+ ;; which does not update `load-history'.
;; We must update `current-load-list' explicitly.
(setq current-load-list
(cons (quote (, name)) current-load-list))
(` (or (fboundp (quote (, name)))
(prog1
(defmacro (, name) (,@ everything-else))
+ ;; This `defmacro' will be compiled to `fset',
+ ;; which does not update `load-history'.
+ ;; We must update `current-load-list' explicitly.
(setq current-load-list
(cons (quote (, name)) current-load-list))
(put (quote (, name)) 'defmacro-maybe t))))))
(` (or (fboundp (quote (, name)))
(prog1
(defsubst (, name) (,@ everything-else))
+ ;; This `defsubst' will be compiled to `fset',
+ ;; which does not update `load-history'.
+ ;; We must update `current-load-list' explicitly.
(setq current-load-list
(cons (quote (, name)) current-load-list))
(put (quote (, name)) 'defsubst-maybe t))))))
(` (or (fboundp (quote (, symbol)))
(prog1
(defalias (quote (, symbol)) (, definition))
- (setq current-load-list
- (cons (quote (, symbol)) current-load-list))
+ ;; `defalias' updates `load-history' internally.
(put (quote (, symbol)) 'defalias-maybe t))))))
(defmacro defvar-maybe (name &rest everything-else)
(` (or (boundp (quote (, name)))
(prog1
(defconst (, name) (,@ everything-else))
+ ;; byte-compiler will generate code to update
+ ;; `load-history'.
(put (quote (, name)) 'defconst-maybe t))))))
(defmacro defun-maybe-cond (name args &optional doc &rest clauses)
(` (defun (, name) (, args)
(,@ (cdr case))))))))
clauses)))
+ ;; This `defun' will be compiled to `fset',
+ ;; which does not update `load-history'.
+ ;; We must update `current-load-list' explicitly.
(setq current-load-list
(cons (quote (, name)) current-load-list))
(put (quote (, name)) 'defun-maybe t))))))
(` (defmacro (, name) (, args)
(,@ (cdr case))))))))
clauses)))
+ ;; This `defmacro' will be compiled to `fset',
+ ;; which does not update `load-history'.
+ ;; We must update `current-load-list' explicitly.
(setq current-load-list
(cons (quote (, name)) current-load-list))
(put (quote (, name)) 'defmacro-maybe t))))))
(` (defsubst (, name) (, args)
(,@ (cdr case))))))))
clauses)))
+ ;; This `defsubst' will be compiled to `fset',
+ ;; which does not update `load-history'.
+ ;; We must update `current-load-list' explicitly.
(setq current-load-list
(cons (quote (, name)) current-load-list))
(put (quote (, name)) 'defsubst-maybe t))))))
;; (def-edebug-spec static-cond ...)
+;;; for backward compatibility.
+
+(defun subr-fboundp (symbol)
+ "Return t if SYMBOL's function definition is a built-in function."
+ (and (fboundp symbol)
+ (subrp (symbol-function symbol))))
+;; (make-obsolete 'subr-fboundp "don't use it.")
+
+
;;; End.
(provide 'pym)