]> git.eshelyaron.com Git - emacs.git/commitdiff
New functions plusp and minusp
authorStefan Kangas <stefankangas@gmail.com>
Mon, 17 Feb 2025 20:58:53 +0000 (21:58 +0100)
committerEshel Yaron <me@eshelyaron.com>
Tue, 18 Feb 2025 08:56:48 +0000 (09:56 +0100)
* lisp/emacs-lisp/cl-lib.el (cl-plusp, cl-minusp): Move from here...
* lisp/subr.el (plusp, minusp): ...to here.  Make old names into
aliases, documented as deprecated.  Add type declarations.  Change from
defsubst to regular functions with compiler macros.
* lisp/obsolete/cl.el: Don't alias plusp and minusp.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-plusp)
(cl-lib-test-minusp): Move tests from here...
* test/lisp/subr-tests.el (subr-test-plusp, subr-test-minusp):
...to here.

* doc/lispref/numbers.texi (Predicates on Numbers): Document plusp
and minusp.
* doc/misc/cl.texi (Predicates on Numbers): Delete cl-plusp and
cl-minusp.
* lisp/emacs-lisp/shortdoc.el (number): Document plusp and minusp
instead of cl-plusp and cl-minusp.

(cherry picked from commit afbf932106fdd1043b0debe9fc9134e031e4c9a6)

doc/lispref/numbers.texi
doc/misc/cl.texi
lisp/emacs-lisp/cl-lib.el
lisp/emacs-lisp/shortdoc.el
test/lisp/emacs-lisp/cl-lib-tests.el
test/lisp/subr-tests.el

index ee43389399a6e574885d62da9fc7adefc5d01d3a..17fa1e05feef836d25d76f2290203c580062ca7c 100644 (file)
@@ -409,6 +409,16 @@ if so, @code{nil} otherwise.  The argument must be a number.
 @code{(zerop x)} is equivalent to @code{(= x 0)}.
 @end defun
 
+@defun plusp number
+This predicate tests whether its argument is positive, and returns
+@code{t} if so, @code{nil} otherwise.  The argument must be a number.
+@end defun
+
+@defun minusp number
+This predicate tests whether its argument is negative, and returns
+@code{t} if so, @code{nil} otherwise.  The argument must be a number.
+@end defun
+
 @defun oddp integer
 This predicate tests whether its argument is an odd number, and returns
 @code{t} if so, @code{nil} otherwise.  The argument must be an integer.
index f481f6f2721714ca8de43bdace3746e690695124..029f11f520dad48a4e98b13e6f2644165f8f0111 100644 (file)
@@ -3055,7 +3055,7 @@ This section defines a few simple Common Lisp operations on numbers
 that were left out of Emacs Lisp.
 
 @menu
-* Predicates on Numbers::       @code{cl-plusp}, @code{cl-minusp}, etc.
+* Predicates on Numbers::       @code{cl-digit-char-p}, etc.
 * Numerical Functions::         @code{cl-floor}, @code{cl-ceiling}, etc.
 * Random Numbers::              @code{cl-random}, @code{cl-make-random-state}.
 * Implementation Parameters::   @code{cl-most-positive-float}, etc.
@@ -3068,16 +3068,6 @@ that were left out of Emacs Lisp.
 These functions return @code{t} if the specified condition is
 true of the numerical argument, or @code{nil} otherwise.
 
-@defun cl-plusp number
-This predicate tests whether @var{number} is positive.  It is an
-error if the argument is not a number.
-@end defun
-
-@defun cl-minusp number
-This predicate tests whether @var{number} is negative.  It is an
-error if the argument is not a number.
-@end defun
-
 @defun cl-digit-char-p char radix
 Test if @var{char} is a digit in the specified @var{radix} (default is
 10).  If it is, return the numerical value of digit @var{char} in
index 38339ca10d46b5a545d9cec5ee8087e675ddfc94..e9f1c02e4abc9406dfae144a727a44b0fca2561b 100644 (file)
@@ -270,15 +270,17 @@ so that they are registered at compile-time as well as run-time."
 
 (define-obsolete-function-alias 'cl-floatp-safe 'floatp "24.4")
 
-(defsubst cl-plusp (number)
-  "Return t if NUMBER is positive."
-  (declare (side-effect-free t))
-  (> number 0))
+(defalias 'cl-plusp #'plusp
+  "Return t if NUMBER is positive.
 
-(defsubst cl-minusp (number)
-  "Return t if NUMBER is negative."
-  (declare (side-effect-free t))
-  (< number 0))
+This function is considered deprecated in favor of the built-in function
+`plusp' that was added in Emacs 31.1.")
+
+(defalias 'cl-minusp #'minusp
+  "Return t if NUMBER is negative.
+
+This function is considered deprecated in favor of the built-in function
+`minusp' that was added in Emacs 31.1.")
 
 (defalias 'cl-oddp 'oddp)
 
index af995123dc5353910cfed3050f5647831c9638eb..23b9b582a9a6e7620f078afe1200a8adc6e3bb1c 100644 (file)
@@ -1412,12 +1412,12 @@ A FUNC form can have any number of `:no-eval' (or `:no-value'),
    :eval (natnump -1)
    :eval (natnump 0)
    :eval (natnump 23))
-  (cl-plusp
-   :eval (cl-plusp 0)
-   :eval (cl-plusp 1))
-  (cl-minusp
-   :eval (cl-minusp 0)
-   :eval (cl-minusp -1))
+  (plusp
+   :eval (plusp 0)
+   :eval (plusp 1))
+  (minusp
+   :eval (minusp 0)
+   :eval (minusp -1))
   (oddp
    :eval (oddp 3))
   (evenp
index 607161c6a7cf013641af0e926320468b5e260e4f..ff19ec74a43966006bf1f06cab9ce6dd3759c11b 100644 (file)
     (should (= (cl-decf (alist-get 'a alist 0)) -1))
     (should (= (alist-get 'a alist 0) -1))))
 
-(ert-deftest cl-lib-test-plusp ()
-  (should-not (cl-plusp -1.0e+INF))
-  (should-not (cl-plusp -1.5e2))
-  (should-not (cl-plusp -3.14))
-  (should-not (cl-plusp -1))
-  (should-not (cl-plusp -0.0))
-  (should-not (cl-plusp 0))
-  (should-not (cl-plusp 0.0))
-  (should-not (cl-plusp -0.0e+NaN))
-  (should-not (cl-plusp 0.0e+NaN))
-  (should (cl-plusp 1))
-  (should (cl-plusp 3.14))
-  (should (cl-plusp 1.5e2))
-  (should (cl-plusp 1.0e+INF))
-  (should-error (cl-plusp "42") :type 'wrong-type-argument))
-
-(ert-deftest cl-lib-test-minusp ()
-  (should (cl-minusp -1.0e+INF))
-  (should (cl-minusp -1.5e2))
-  (should (cl-minusp -3.14))
-  (should (cl-minusp -1))
-  (should-not (cl-minusp -0.0))
-  (should-not (cl-minusp 0))
-  (should-not (cl-minusp 0.0))
-  (should-not (cl-minusp -0.0e+NaN))
-  (should-not (cl-minusp 0.0e+NaN))
-  (should-not (cl-minusp 1))
-  (should-not (cl-minusp 3.14))
-  (should-not (cl-minusp 1.5e2))
-  (should-not (cl-minusp 1.0e+INF))
-  (should-error (cl-minusp "-42") :type 'wrong-type-argument))
-
 (ert-deftest cl-digit-char-p ()
   (should (eql 3 (cl-digit-char-p ?3)))
   (should (eql 10 (cl-digit-char-p ?a 11)))
index 1b209ab6383e510f2c6a2a965e73c2ed275e09c5..5684a08254dfd73d37b0f815c8f000c560aadfef 100644 (file)
   (should-not (zerop (1- most-negative-fixnum)))
   (should-error (zerop "-5") :type 'wrong-type-argument))
 
+(ert-deftest subr-test-plusp ()
+  (should-not (plusp -1.0e+INF))
+  (should-not (plusp -1.5e2))
+  (should-not (plusp -3.14))
+  (should-not (plusp -1))
+  (should-not (plusp -0.0))
+  (should-not (plusp 0))
+  (should-not (plusp 0.0))
+  (should-not (plusp -0.0e+NaN))
+  (should-not (plusp 0.0e+NaN))
+  (should (plusp 1))
+  (should (plusp 3.14))
+  (should (plusp 1.5e2))
+  (should (plusp 1.0e+INF))
+  (should-error (plusp "42") :type 'wrong-type-argument))
+
+(ert-deftest subr-test-minusp ()
+  (should (minusp -1.0e+INF))
+  (should (minusp -1.5e2))
+  (should (minusp -3.14))
+  (should (minusp -1))
+  (should-not (minusp -0.0))
+  (should-not (minusp 0))
+  (should-not (minusp 0.0))
+  (should-not (minusp -0.0e+NaN))
+  (should-not (minusp 0.0e+NaN))
+  (should-not (minusp 1))
+  (should-not (minusp 3.14))
+  (should-not (minusp 1.5e2))
+  (should-not (minusp 1.0e+INF))
+  (should-error (minusp "-42") :type 'wrong-type-argument))
+
 (ert-deftest subr-test-oddp ()
   (should (oddp -3))
   (should (oddp 3))