Mark H Weaver <m...@netris.org> writes: > What does (sin -0.0) evaluate to? > > My first guess is that at the C level, sin(-0.0) => 0.0 on your system, > although IEEE 754 and C11 (F.10.1.6) specify that sin(-0.0) => -0.0. > > If my guess is incorrect, then please put a breakpoint in > 'scm_c_make_polar' and see what's going wrong. Both 'ang' and 's' > should be -0.0, and then it should pass -0.0 as the second argument to > 'scm_c_make_rectangular'. > > Thanks, > Mark
Update: (As mentioned on IRC, (sin -0.0) evaluates to -0.0, also via sin() on the C level in a minimal test-case compiled with the same compiler. However...) While trying to get the MacPorts-provided GCC 4.8 to build Guile with debugging symbols (and not succeeding), I noticed that adding -g or -ggdb to CFLAGS hides the issue, making #i1@-0 => 1.0-0.0i. It seems to be enough to recompile numbers.c (I touch it and re-run make with or without CFLAGS+="-g"). Interestingly even with -g or -ggdb the ".debug_info" of the installed guile executable is empty as per dwarfdump(1). I wonder if, by the time I actually manage to build with debug symbols, I'll be able to reproduce the bug. I wonder if I should concentrate on getting Guile to build with the native compiler of OS X 10.9 / Xcode 5.1 instead (clang). I don't have too much time for Guile at work anyway, and otherwise no OS X system. Taylan