summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/deprecated.c18
-rw-r--r--libguile/deprecated.h36
-rw-r--r--libguile/numbers.h8
3 files changed, 40 insertions, 22 deletions
diff --git a/libguile/deprecated.c b/libguile/deprecated.c
index a0275ccb9..eb1150456 100644
--- a/libguile/deprecated.c
+++ b/libguile/deprecated.c
@@ -1110,7 +1110,23 @@ SCM_MAKINUM (scm_t_signed_bits val)
{
scm_c_issue_deprecation_warning
("SCM_MAKINUM is deprecated. Use scm_from_int or similar instead.");
- return scm_from_int (val);
+ return SCM_I_MAKINUM (val);
+}
+
+int
+SCM_INUMP (SCM obj)
+{
+ scm_c_issue_deprecation_warning
+ ("SCM_INUMP is deprecated. Use scm_is_integer or similar instead.");
+ return SCM_I_INUMP (obj);
+}
+
+scm_t_signed_bits
+SCM_INUM (SCM obj)
+{
+ scm_c_issue_deprecation_warning
+ ("SCM_INUM is deprecated. Use scm_to_int or similar instead.");
+ return scm_to_intmax (obj);
}
void
diff --git a/libguile/deprecated.h b/libguile/deprecated.h
index 7f71bb4d7..8b89fec78 100644
--- a/libguile/deprecated.h
+++ b/libguile/deprecated.h
@@ -277,8 +277,8 @@ SCM_API SCM scm_gentemp (SCM prefix, SCM obarray);
#define SCM_VALIDATE_NUMBER_COPY(pos, z, cvar) \
do { \
- if (SCM_INUMP (z)) \
- cvar = (double) SCM_INUM (z); \
+ if (SCM_I_INUMP (z)) \
+ cvar = (double) SCM_I_INUM (z); \
else if (SCM_REALP (z)) \
cvar = SCM_REAL_VALUE (z); \
else if (SCM_BIGP (z)) \
@@ -323,31 +323,33 @@ SCM_API SCM scm_gentemp (SCM prefix, SCM obarray);
^ (SCM_UNPACK (SCM_BOOL_T) \
^ SCM_UNPACK (SCM_BOOL_F))))
-SCM_API SCM SCM_MAKINUM (scm_t_signed_bits val);
-
/* Users shouldn't know about INUMs.
*/
+SCM_API SCM SCM_MAKINUM (scm_t_signed_bits val);
+SCM_API int SCM_INUMP (SCM obj);
+SCM_API scm_t_signed_bits SCM_INUM (SCM obj);
+
#define SCM_VALIDATE_INUM(pos, k) SCM_MAKE_VALIDATE_MSG (pos, k, INUMP, "exact integer")
#define SCM_VALIDATE_INUM_COPY(pos, k, cvar) \
do { \
- SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
- cvar = SCM_INUM (k); \
+ SCM_ASSERT (SCM_I_INUMP (k), k, pos, FUNC_NAME); \
+ cvar = SCM_I_INUM (k); \
} while (0)
#define SCM_VALIDATE_BIGINT(pos, k) SCM_MAKE_VALIDATE_MSG (pos, k, BIGP, "bignum")
#define SCM_VALIDATE_INUM_MIN(pos, k, min) \
do { \
- SCM_ASSERT (SCM_INUMP(k), k, pos, FUNC_NAME); \
- SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
+ SCM_ASSERT (SCM_I_INUMP(k), k, pos, FUNC_NAME); \
+ SCM_ASSERT_RANGE (pos, k, (SCM_I_INUM (k) >= min)); \
} while (0)
#define SCM_VALIDATE_INUM_MIN_COPY(pos, k, min, cvar) \
do { \
- SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
- SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
+ SCM_ASSERT (SCM_I_INUMP (k), k, pos, FUNC_NAME); \
+ SCM_ASSERT_RANGE (pos, k, (SCM_I_INUM (k) >= min)); \
cvar = SCM_INUM (k); \
} while (0)
@@ -355,8 +357,8 @@ SCM_API SCM SCM_MAKINUM (scm_t_signed_bits val);
do { \
if (SCM_UNBNDP (k)) \
k = SCM_I_MAKINUM (default); \
- SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
- SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
+ SCM_ASSERT (SCM_I_INUMP (k), k, pos, FUNC_NAME); \
+ SCM_ASSERT_RANGE (pos, k, (SCM_I_INUM (k) >= min)); \
cvar = SCM_INUM (k); \
} while (0)
@@ -364,7 +366,7 @@ SCM_API SCM SCM_MAKINUM (scm_t_signed_bits val);
do { \
if (SCM_UNBNDP (k)) \
k = SCM_I_MAKINUM (default); \
- else SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
+ else SCM_ASSERT (SCM_I_INUMP (k), k, pos, FUNC_NAME); \
} while (0)
#define SCM_VALIDATE_INUM_DEF_COPY(pos, k, default, cvar) \
@@ -376,17 +378,17 @@ SCM_API SCM SCM_MAKINUM (scm_t_signed_bits val);
} \
else \
{ \
- SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
+ SCM_ASSERT (SCM_I_INUMP (k), k, pos, FUNC_NAME); \
cvar = SCM_INUM (k); \
} \
} while (0)
/* [low, high) */
#define SCM_VALIDATE_INUM_RANGE(pos, k, low, high) \
- do { SCM_ASSERT(SCM_INUMP(k), k, pos, FUNC_NAME); \
+ do { SCM_ASSERT(SCM_I_INUMP(k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE(pos, k, \
- (SCM_INUM (k) >= low && \
- SCM_INUM (k) < high)); \
+ (SCM_I_INUM (k) >= low && \
+ SCM_I_INUM (k) < high)); \
} while (0)
#define SCM_VALIDATE_INUM_RANGE_COPY(pos, k, low, high, cvar) \
diff --git a/libguile/numbers.h b/libguile/numbers.h
index 47e8cfe42..405b80bf0 100644
--- a/libguile/numbers.h
+++ b/libguile/numbers.h
@@ -66,11 +66,11 @@
#endif /* (-1 == (((-1) << 2) + 2) >> 2) */
-#define SCM_INUMP(x) (2 & SCM_UNPACK (x))
-#define SCM_NINUMP(x) (!SCM_INUMP (x))
+#define SCM_I_INUMP(x) (2 & SCM_UNPACK (x))
+#define SCM_I_NINUMP(x) (!SCM_I_INUMP (x))
#define SCM_I_MAKINUM(x) \
(SCM_PACK ((((scm_t_signed_bits) (x)) << 2) + scm_tc2_int))
-#define SCM_INUM(x) (SCM_SRS ((scm_t_signed_bits) SCM_UNPACK (x), 2))
+#define SCM_I_INUM(x) (SCM_SRS ((scm_t_signed_bits) SCM_UNPACK (x), 2))
/* SCM_FIXABLE is true if its long argument can be encoded in an SCM_INUM. */
#define SCM_POSFIXABLE(n) ((n) <= SCM_MOST_POSITIVE_FIXNUM)
@@ -145,7 +145,7 @@
#define SCM_I_BIG_MPZ(x) (*((mpz_t *) (SCM_CELL_OBJECT_LOC((x),1))))
#define SCM_BIGP(x) (!SCM_IMP (x) && SCM_TYP16 (x) == scm_tc16_big)
-#define SCM_NUMBERP(x) (SCM_INUMP(x) || SCM_NUMP(x))
+#define SCM_NUMBERP(x) (SCM_I_INUMP(x) || SCM_NUMP(x))
#define SCM_NUMP(x) (!SCM_IMP(x) \
&& (((0xfcff & SCM_CELL_TYPE (x)) == scm_tc7_number) \
|| ((0xfbff & SCM_CELL_TYPE (x)) == scm_tc7_number)))