diff options
-rw-r--r-- | libguile/deprecated.c | 18 | ||||
-rw-r--r-- | libguile/deprecated.h | 36 | ||||
-rw-r--r-- | libguile/numbers.h | 8 |
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))) |