> From: Taylor R Campbell <[email protected]> > Date: Sun, 12 Jun 2011 04:33:50 +0000 > > Date: Sat, 11 Jun 2011 13:05:18 -0700 > From: Matt Birkholz <[email protected]> > > Let me sing it for you, Brother. [...] > > Gee, OK. My only worry is that the userland libc might disagree with > Scheme's fenv cruft (e.g., maybe libc wants to store its own cache of > trapped or raised exceptions or something).
Yes, I worried about that (esp. with other threads running), and about the mere presence of a SIGFPE handler (instead of SIG_IGN/DFL) which might miscue the libc. But the Source I am looking at is much simpler than that. > Of course! Can't we all? :-) > > Well, I don't have any systems running Ubuntu handy, so... If I > remember when I have some time, I'll try this out on NetBSD and maybe > Fedora and Debian. It's Unity, isn't it? You can't stand Unity? I gave it up after a couple weeks -- went back to Ubuntu Classic. Maybe I should go back to Debian! Anyway, these SIGFPEs are a fascinating problem, as Spock might say. I finally wrote my own fegetexcept (using __asm__ -- what fun! :-) NOW I see the naughty bit: FE_DENORM. MIT-Scheme is unmasking this exception, and there is nothing I can do with libc to re-mask it. Glibc (eglibc 2.13) pretends, all too well, that this bit doesn't exist. I can't really blame glibc (anymore). It is weird that Pango did not produce any tiny floats in Ubuntu 10.10, but can't get through pango_layout_get_pixel_extents without some in 11.04 *i386*. So obviously a less borked fix would be to adjust FP_CONTROL_WORD for glibc on i386 and x86-64. But doesn't our shiny new floenv.scm takes care of all this, withOUT going behind libc's back? Can we punt the ancient fpu inits in microcode/cmpauxmd/i386.m4 and x86-64.m4? (Dare me to try it?) _______________________________________________ MIT-Scheme-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/mit-scheme-devel
