aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS.org1
-rw-r--r--compat-28.el3
-rw-r--r--compat-30.el22
-rw-r--r--compat-tests.el8
-rw-r--r--compat.texi7
5 files changed, 19 insertions, 22 deletions
diff --git a/NEWS.org b/NEWS.org
index 5520cf1..e3d0085 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -4,6 +4,7 @@
* Development
+- compat-28: Mark =subr-native-elisp-p= as obsolete (renamed in Emacs 30).
- compat-30: New function =obarray-clear=.
- compat-30: New function =interpreted-function-p=.
- compat-30: New function =primitive-function-p=.
diff --git a/compat-28.el b/compat-28.el
index b5730b1..a03d342 100644
--- a/compat-28.el
+++ b/compat-28.el
@@ -396,7 +396,8 @@ not a list, return a one-element list containing OBJECT."
;;;; Defined in data.c
-(compat-defalias subr-native-elisp-p ignore) ;; <compat-tests:subr-native-elisp-p>
+;; Renamed in Emacs 30 to `native-comp-function-p'.
+(compat-defalias subr-native-elisp-p ignore :obsolete t) ;; <compat-tests:subr-native-elisp-p>
;;;; Defined in subr-x.el
diff --git a/compat-30.el b/compat-30.el
index 81b8fef..82cb242 100644
--- a/compat-30.el
+++ b/compat-30.el
@@ -142,6 +142,16 @@ details."
;;;; Defined in subr.el
+(compat-defmacro static-if (condition then-form &rest else-forms) ;; <compat-tests:static-if>
+ "A conditional compilation macro.
+Evaluate CONDITION at macro-expansion time. If it is non-nil,
+expand the macro to THEN-FORM. Otherwise expand it to ELSE-FORMS
+enclosed in a `progn' form. ELSE-FORMS may be empty."
+ (declare (indent 2) (debug (sexp sexp &rest sexp)))
+ (if (eval condition lexical-binding)
+ then-form
+ (cons 'progn else-forms)))
+
(compat-defun closurep (object) ;; <compat-tests:closurep>
"Return t if OBJECT is a function of type closure."
(declare (side-effect-free error-free))
@@ -154,7 +164,7 @@ details."
This excludes special forms, since they are not functions."
(declare (side-effect-free error-free))
(and (subrp object)
- (not (or (subr-native-elisp-p object)
+ (not (or (with-no-warnings (subr-native-elisp-p object))
(special-form-p object)))))
(compat-defalias drop nthcdr) ;; <compat-tests:drop>
@@ -230,16 +240,6 @@ By default we choose the head of the first list."
tree))
(copy-tree tree vectors-and-records)))
-(compat-defmacro static-if (condition then-form &rest else-forms) ;; <compat-tests:static-if>
- "A conditional compilation macro.
-Evaluate CONDITION at macro-expansion time. If it is non-nil,
-expand the macro to THEN-FORM. Otherwise expand it to ELSE-FORMS
-enclosed in a `progn' form. ELSE-FORMS may be empty."
- (declare (indent 2) (debug (sexp sexp &rest sexp)))
- (if (eval condition lexical-binding)
- then-form
- (cons 'progn else-forms)))
-
;;;; Defined in fns.c
(compat-defun value< (a b) ;; <compat-tests:value<>
diff --git a/compat-tests.el b/compat-tests.el
index ec6f95e..19841d8 100644
--- a/compat-tests.el
+++ b/compat-tests.el
@@ -212,7 +212,7 @@
(should-equal 'h (get-text-property 0 'help-echo b))
(should-equal 'h (get-text-property 5 'help-echo b))))
-(ert-deftest compat-button-buttonize ()
+(ert-deftest compat-obsolete-button-buttonize ()
(let ((b (with-no-warnings (button-buttonize "button" 'c 'd))))
(should-equal b "button")
(should-equal 'c (get-text-property 0 'action b))
@@ -1313,8 +1313,10 @@
(ert-deftest compat-native-comp-available-p ()
(should (memq (native-comp-available-p) '(nil t))))
-(ert-deftest compat-subr-native-elisp-p ()
- (should-not (subr-native-elisp-p (symbol-function 'identity))))
+(ert-deftest compat-obsolete-subr-native-elisp-p ()
+ (with-no-warnings
+ (static-if (< emacs-major-version 30)
+ (should-not (subr-native-elisp-p (symbol-function 'identity))))))
(ert-deftest compat-closurep ()
(should (interpreted-function-p (eval '(lambda (x) x) t)))
diff --git a/compat.texi b/compat.texi
index 8d6dd50..0efb3f7 100644
--- a/compat.texi
+++ b/compat.texi
@@ -2132,13 +2132,6 @@ native compilation is not available, this function behaves identically
to @code{subrp}.
@end defun
-@c based on lisp/subr.el
-@defun subr-native-elisp-p object
-Return @code{t} if @var{object} if the object is native compiled lisp.
-If native compilation is not available, this function always returns
-@code{nil}.
-@end defun
-
@c copied from lispref/compile.texi
@defun native-comp-available-p
This function returns non-@code{nil} if the running Emacs process has