Remove U64_TO_DOUBLE macro It was only needed for MSVC6.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/2b8147d3 Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/2b8147d3 Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/2b8147d3 Branch: refs/heads/master Commit: 2b8147d3a728326732cd9d7b50b4154624d7836d Parents: fa81ff1 Author: Nick Wellnhofer <wellnho...@aevum.de> Authored: Fri Feb 3 13:28:36 2017 +0100 Committer: Nick Wellnhofer <wellnho...@aevum.de> Committed: Sat Feb 4 15:10:50 2017 +0100 ---------------------------------------------------------------------- compiler/common/charmonizer.c | 33 --------------------- compiler/src/CFCBindCore.c | 6 ++-- compiler/src/CFCPerlTypeMap.c | 9 ++---- runtime/common/charmonizer.c | 33 --------------------- runtime/core/Clownfish/TestHarness/TestUtils.c | 2 +- runtime/test/Clownfish/Test/Util/TestMemory.c | 5 ++-- 6 files changed, 7 insertions(+), 81 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2b8147d3/compiler/common/charmonizer.c ---------------------------------------------------------------------- diff --git a/compiler/common/charmonizer.c b/compiler/common/charmonizer.c index d53ebc0..895f63a 100644 --- a/compiler/common/charmonizer.c +++ b/compiler/common/charmonizer.c @@ -7278,17 +7278,6 @@ static const char chaz_Integers_literal64_code[] = CHAZ_QUOTE( return 0; ) CHAZ_QUOTE( } ); -static const char chaz_Integers_u64_to_double_code[] = - CHAZ_QUOTE( #include <stdio.h> ) - CHAZ_QUOTE( int main() ) - CHAZ_QUOTE( { ) - CHAZ_QUOTE( unsigned %s int_num = 0; ) - CHAZ_QUOTE( double float_num; ) - CHAZ_QUOTE( float_num = (double)int_num; ) - CHAZ_QUOTE( printf("%%f\n", float_num); ) - CHAZ_QUOTE( return 0; ) - CHAZ_QUOTE( } ); - void chaz_Integers_run(void) { char *output; @@ -7558,28 +7547,6 @@ chaz_Integers_run(void) { } } - /* Create macro for converting uint64_t to double. */ - if (has_64) { - /* - * Determine whether unsigned 64-bit integers can be converted to - * double. Older MSVC versions don't support this conversion. - */ - sprintf(code_buf, chaz_Integers_u64_to_double_code, i64_t_type); - output = chaz_CC_capture_output(code_buf, &output_len); - if (output != NULL) { - chaz_ConfWriter_add_def("U64_TO_DOUBLE(num)", "((double)(num))"); - free(output); - } - else { - chaz_ConfWriter_add_def( - "U64_TO_DOUBLE(num)", - "((num) & UINT64_C(0x8000000000000000) ? " - "(double)(int64_t)((num) & UINT64_C(0x7FFFFFFFFFFFFFFF)) + " - "9223372036854775808.0 : " - "(double)(int64_t)(num))"); - } - } - chaz_ConfWriter_end_module(); /* Integer typedefs. */ http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2b8147d3/compiler/src/CFCBindCore.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCBindCore.c b/compiler/src/CFCBindCore.c index fc02dd2..0bca5e6 100644 --- a/compiler/src/CFCBindCore.c +++ b/compiler/src/CFCBindCore.c @@ -613,15 +613,13 @@ S_charmony_string_defines() { "#define CFISH_INLINE %s\n" "#define CFISH_EXPORT %s\n" "#define CFISH_IMPORT %s\n" - "#define CFISH_FUNC_MACRO %s\n" - "#define CFISH_U64_TO_DOUBLE(x) %s\n"; + "#define CFISH_FUNC_MACRO %s\n"; char *defines = CFCUtil_sprintf(pattern, XSTRING(CHY_INLINE), XSTRING(CHY_EXPORT), XSTRING(CHY_IMPORT), - XSTRING(CHY_FUNC_MACRO), - XSTRING(CHY_U64_TO_DOUBLE(x))); + XSTRING(CHY_FUNC_MACRO)); return defines; } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2b8147d3/compiler/src/CFCPerlTypeMap.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCPerlTypeMap.c b/compiler/src/CFCPerlTypeMap.c index d416284..bc35ad9 100644 --- a/compiler/src/CFCPerlTypeMap.c +++ b/compiler/src/CFCPerlTypeMap.c @@ -153,10 +153,7 @@ CFCPerlTypeMap_to_perl(CFCType *type, const char *cf_var) { result = CFCUtil_sprintf("newSViv(%s)", cf_var); } else if (strcmp(specifier, "uint64_t") == 0) { - char pattern[] = - "sizeof(UV) == 8 ? " - "newSVuv((UV)%s) : newSVnv((NV)CFISH_U64_TO_DOUBLE(%s))"; - result = CFCUtil_sprintf(pattern, cf_var, cf_var); + result = CFCUtil_sprintf("newSVuv(%s)", cf_var); } else if (strcmp(specifier, "uint32_t") == 0) { result = CFCUtil_sprintf("newSVuv(%s)", cf_var); @@ -245,9 +242,7 @@ static const char typemap_output[] = "\n" "CFISH_BIG_UNSIGNED_INT\n" " if (sizeof(UV) == 8) { sv_setuv($arg, (UV)$var); }\n" - " else {\n" - " sv_setnv($arg, (NV)CFISH_U64_TO_DOUBLE($var));\n" - " }\n" + " else { sv_setnv($arg, (NV)$var); }\n" "\n"; void http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2b8147d3/runtime/common/charmonizer.c ---------------------------------------------------------------------- diff --git a/runtime/common/charmonizer.c b/runtime/common/charmonizer.c index 840fa5a..64bf01f 100644 --- a/runtime/common/charmonizer.c +++ b/runtime/common/charmonizer.c @@ -7278,17 +7278,6 @@ static const char chaz_Integers_literal64_code[] = CHAZ_QUOTE( return 0; ) CHAZ_QUOTE( } ); -static const char chaz_Integers_u64_to_double_code[] = - CHAZ_QUOTE( #include <stdio.h> ) - CHAZ_QUOTE( int main() ) - CHAZ_QUOTE( { ) - CHAZ_QUOTE( unsigned %s int_num = 0; ) - CHAZ_QUOTE( double float_num; ) - CHAZ_QUOTE( float_num = (double)int_num; ) - CHAZ_QUOTE( printf("%%f\n", float_num); ) - CHAZ_QUOTE( return 0; ) - CHAZ_QUOTE( } ); - void chaz_Integers_run(void) { char *output; @@ -7558,28 +7547,6 @@ chaz_Integers_run(void) { } } - /* Create macro for converting uint64_t to double. */ - if (has_64) { - /* - * Determine whether unsigned 64-bit integers can be converted to - * double. Older MSVC versions don't support this conversion. - */ - sprintf(code_buf, chaz_Integers_u64_to_double_code, i64_t_type); - output = chaz_CC_capture_output(code_buf, &output_len); - if (output != NULL) { - chaz_ConfWriter_add_def("U64_TO_DOUBLE(num)", "((double)(num))"); - free(output); - } - else { - chaz_ConfWriter_add_def( - "U64_TO_DOUBLE(num)", - "((num) & UINT64_C(0x8000000000000000) ? " - "(double)(int64_t)((num) & UINT64_C(0x7FFFFFFFFFFFFFFF)) + " - "9223372036854775808.0 : " - "(double)(int64_t)(num))"); - } - } - chaz_ConfWriter_end_module(); /* Integer typedefs. */ http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2b8147d3/runtime/core/Clownfish/TestHarness/TestUtils.c ---------------------------------------------------------------------- diff --git a/runtime/core/Clownfish/TestHarness/TestUtils.c b/runtime/core/Clownfish/TestHarness/TestUtils.c index 38301d3..db94ebf 100644 --- a/runtime/core/Clownfish/TestHarness/TestUtils.c +++ b/runtime/core/Clownfish/TestHarness/TestUtils.c @@ -65,7 +65,7 @@ TestUtils_random_f64s(double *buf, size_t count) { double *f64s = buf ? buf : (double*)CALLOCATE(count, sizeof(double)); for (size_t i = 0; i < count; i++) { uint64_t num = TestUtils_random_u64(); - f64s[i] = CHY_U64_TO_DOUBLE(num) / (double)UINT64_MAX; + f64s[i] = (double)num / (double)UINT64_MAX; } return f64s; } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2b8147d3/runtime/test/Clownfish/Test/Util/TestMemory.c ---------------------------------------------------------------------- diff --git a/runtime/test/Clownfish/Test/Util/TestMemory.c b/runtime/test/Clownfish/Test/Util/TestMemory.c index 8151c72..1083233 100644 --- a/runtime/test/Clownfish/Test/Util/TestMemory.c +++ b/runtime/test/Clownfish/Test/Util/TestMemory.c @@ -48,8 +48,7 @@ test_oversize__growth_rate(TestBatchRunner *runner) { } if (size > 0) { growth_count += 1; - double growth_rate = CHY_U64_TO_DOUBLE(next_size) / - CHY_U64_TO_DOUBLE(size); + double growth_rate = (double)next_size / (double)size; double sum = growth_rate + (growth_count - 1) * average_growth_rate; average_growth_rate = sum / growth_count; if (average_growth_rate < 1.1) { @@ -70,7 +69,7 @@ test_oversize__growth_rate(TestBatchRunner *runner) { for (size_t minimum = 1; minimum < 8; minimum++) { uint64_t next_size = Memory_oversize(minimum, sizeof(void*)); - double growth_rate = CHY_U64_TO_DOUBLE(next_size) / (double)minimum; + double growth_rate = (double)next_size / (double)minimum; TEST_TRUE(runner, growth_rate > 1.2, "Growth rate is higher for smaller arrays (%u, %.3f)", (unsigned)minimum, growth_rate);