[Gmp-commit] /var/hg/gmp: mini-gmp: Add knob MINI_GMP_ENABLE_FLOAT.

mercurial at gmplib.org mercurial at gmplib.org
Wed Sep 24 15:37:01 CEST 2025


details:   /var/hg/gmp/rev/b54d1f94b4ee
changeset: 18489:b54d1f94b4ee
user:      Niels Möller <nisse at lysator.liu.se>
date:      Wed Sep 24 15:34:54 2025 +0200
description:
mini-gmp: Add knob MINI_GMP_ENABLE_FLOAT.

Defined to 1 by default. If defined to 0 when building mini-gmp.c and
mini-mpq.c, functions using floating point numbers, e.g., mpz_set_d,
are excluded.

diffstat:

 ChangeLog           |   5 +++++
 bootstrap.c         |   2 +-
 mini-gmp/ChangeLog  |  10 ++++++++++
 mini-gmp/mini-gmp.c |   8 +++++++-
 mini-gmp/mini-mpq.c |   7 ++++++-
 5 files changed, 29 insertions(+), 3 deletions(-)

diffs (104 lines):

diff -r 1dc7d5dabc8d -r b54d1f94b4ee ChangeLog
--- a/ChangeLog	Fri Sep 19 17:18:39 2025 +0200
+++ b/ChangeLog	Wed Sep 24 15:34:54 2025 +0200
@@ -1,3 +1,8 @@
+2025-09-24  Niels Möller  <nisse at lysator.liu.se>
+
+	* bootstrap.c (MINI_GMP_ENABLE_FLOAT): Define to 0. Replaces...
+	(MINI_GMP_DONT_USE_FLOAT_H): Deleted.
+
 2025-09-19  Marc Glisse <marc.glisse at inria.fr>
 
 	* acinclude.m4 (alloca array): Remove broken test.
diff -r 1dc7d5dabc8d -r b54d1f94b4ee bootstrap.c
--- a/bootstrap.c	Fri Sep 19 17:18:39 2025 +0200
+++ b/bootstrap.c	Wed Sep 24 15:34:54 2025 +0200
@@ -29,7 +29,7 @@
 see https://www.gnu.org/licenses/.  */
 
 
-#define MINI_GMP_DONT_USE_FLOAT_H 1
+#define MINI_GMP_ENABLE_FLOAT 0
 #include "mini-gmp/mini-gmp.c"
 
 #define MIN(l,o) ((l) < (o) ? (l) : (o))
diff -r 1dc7d5dabc8d -r b54d1f94b4ee mini-gmp/ChangeLog
--- a/mini-gmp/ChangeLog	Fri Sep 19 17:18:39 2025 +0200
+++ b/mini-gmp/ChangeLog	Wed Sep 24 15:34:54 2025 +0200
@@ -1,3 +1,13 @@
+2025-09-24  Niels Möller  <nisse at lysator.liu.se>
+
+	* mini-gmp.c (MINI_GMP_ENABLE_FLOAT): New knob, to disable
+	floating point functions, default to 1. Replaces
+	MINI_GMP_DONT_USE_FLOAT_H.
+	(mpz_set_d, mpz_init_set_d, mpz_get_d, mpz_cmpabs_d, mpz_cmp_d):
+	Make conditional on MINI_GMP_ENABLE_FLOAT.
+	* mini-mpq.c (MINI_GMP_ENABLE_FLOAT): Analogous change.
+	(mpq_set_d, mpq_get_d): Make conditional on MINI_GMP_ENABLE_FLOAT.
+
 2025-08-27  Niels Möller  <nisse at lysator.liu.se>
 
 	* mini-gmp.c (mpz_import): Return early when count == 0, to avoid
diff -r 1dc7d5dabc8d -r b54d1f94b4ee mini-gmp/mini-gmp.c
--- a/mini-gmp/mini-gmp.c	Fri Sep 19 17:18:39 2025 +0200
+++ b/mini-gmp/mini-gmp.c	Wed Sep 24 15:34:54 2025 +0200
@@ -51,7 +51,11 @@
 
 #include "mini-gmp.h"
 
-#if !defined(MINI_GMP_DONT_USE_FLOAT_H)
+#ifndef MINI_GMP_ENABLE_FLOAT
+#define MINI_GMP_ENABLE_FLOAT 1
+#endif
+
+#if MINI_GMP_ENABLE_FLOAT
 #include <float.h>
 #endif
 
@@ -1705,6 +1709,7 @@
 }
 
 

+#if MINI_GMP_ENABLE_FLOAT
 /* Conversions and comparison to double. */
 void
 mpz_set_d (mpz_t r, double x)
@@ -1861,6 +1866,7 @@
 	return mpz_cmpabs_d (x, d);
     }
 }
+#endif /* MINI_GMP_ENABLE_FLOAT */
 
 

 /* MPZ comparisons and the like. */
diff -r 1dc7d5dabc8d -r b54d1f94b4ee mini-gmp/mini-mpq.c
--- a/mini-gmp/mini-mpq.c	Fri Sep 19 17:18:39 2025 +0200
+++ b/mini-gmp/mini-mpq.c	Wed Sep 24 15:34:54 2025 +0200
@@ -41,6 +41,10 @@
 
 #include "mini-mpq.h"
 
+#ifndef MINI_GMP_ENABLE_FLOAT
+#define MINI_GMP_ENABLE_FLOAT 1
+#endif
+
 #ifndef GMP_LIMB_HIGHBIT
 /* Define macros and static functions already defined by mini-gmp.c */
 #define GMP_LIMB_BITS (sizeof(mp_limb_t) * CHAR_BIT)
@@ -420,6 +424,7 @@
 }
 
 

+#if MINI_GMP_ENABLE_FLOAT
 /* MPQ to/from double. */
 void
 mpq_set_d (mpq_t r, double x)
@@ -472,7 +477,7 @@
 
   return ret;
 }
-
+#endif /* MINI_GMP_ENABLE_FLOAT */
 

 /* MPQ and strings/streams. */
 char *


More information about the gmp-commit mailing list