From 47ac6d2cb1d1633e5280eedc910f2a07c55fb38e Mon Sep 17 00:00:00 2001 From: okuoku Date: Fri, 12 Aug 2016 06:21:57 +0900 Subject: [PATCH 1/2] emyg_atod: Use scalbn(C99) instead of scalb scalb() was removed in POSIX 2008. It is not implemented in Cygwin(newlib). --- contrib/10.roundtrip/emyg_atod.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/10.roundtrip/emyg_atod.c b/contrib/10.roundtrip/emyg_atod.c index f742e15c..61b8212e 100644 --- a/contrib/10.roundtrip/emyg_atod.c +++ b/contrib/10.roundtrip/emyg_atod.c @@ -42,7 +42,7 @@ #include #include #include // used by emyg_strtod -#include // scalb() +#include // scalbn() #include "emyg_pow5.h" // in separate file to support alternate implementations, and it's big @@ -451,7 +451,7 @@ double atod_guts (uint64_t u64mant, int dpoint) if (m > BIGNUM_JUMBO_SIZE_UINT32) { n = 0; goto atod_fail; } mulbyu64(num, u64mant, pow5p, z); // num = pow5 * u64mant bex = bitLength(num, m) - doubleMantissaBits; - if (bex <= 0) return scalb(doubleValue(num), dpoint); + if (bex <= 0) return scalbn(doubleValue(num), dpoint); QUODBG(fprintf(stderr, "+ bex: %d z: %d m: %d\n", bex, z, m)); n = (bex / 32) + 1; // 32-bit words needed to hold 1 << bex m = (bex + doubleMantissaBits + 31) / 32; // we may be able to shrink by a word @@ -467,7 +467,7 @@ double atod_guts (uint64_t u64mant, int dpoint) QUODBG(print_bigint("num", num, m)); QUODBG(print_bigint("scl", scl, n)); QUODBG(print_bigint("quo", quo, m - n + 1)); - return scalb(doubleValue(quo), bex + dpoint); + return scalbn(doubleValue(quo), bex + dpoint); } else { @@ -541,7 +541,7 @@ double atod_guts (uint64_t u64mant, int dpoint) QUODBG(print_bigint("quo", quo, m - n + 1)); } #endif - return scalb(doubleValue(quo), bex + dpoint); + return scalbn(doubleValue(quo), bex + dpoint); } atod_fail: QUODBG(fprintf(stderr, "atod_guts undersized bignum n: %d m: %d\n", n, m)); From 226cb8500a97116e728e7429486b137b57d7d020 Mon Sep 17 00:00:00 2001 From: okuoku Date: Fri, 12 Aug 2016 06:36:05 +0900 Subject: [PATCH 2/2] Cygwin: rename raise => raise_action Cygwin libc pulls with . Function raise() would conflict with it. --- extlib/benz/error.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extlib/benz/error.c b/extlib/benz/error.c index ddbb323b..7e0bc121 100644 --- a/extlib/benz/error.c +++ b/extlib/benz/error.c @@ -155,7 +155,7 @@ pic_error(pic_state *pic, const char *msg, int n, ...) } static pic_value -raise(pic_state *pic) +raise_action(pic_state *pic) { pic_get_args(pic, ""); @@ -175,7 +175,7 @@ pic_raise(pic_state *pic, pic_value err) pic_panic(pic, "no exception handler"); } - pic_dynamic_bind(pic, exc, pic_cdr(pic, stack), pic_lambda(pic, raise, 2, pic_car(pic, stack), err)); + pic_dynamic_bind(pic, exc, pic_cdr(pic, stack), pic_lambda(pic, raise_action, 2, pic_car(pic, stack), err)); PIC_UNREACHABLE(); }