I don't suppose anyone else has noticed this, but ye can't just fesetenv(FE_DFL_ENV) to alienate the floating environment (normalize, from a C library's perspective) in the new Ubuntu. I eventually got my Gtk demo working, but only with the help of Taylor's feclearexcept() and fedisableexcept() (and fesetround()) implementations in microcode/cmpintmd/x86-fenv.c.
By the time I could implement and test a BORKED_FENV patch, the problem disappeared on amd64 (due to recent Ubuntu package updates?)! Now my microcode/achost.ac only needs to set BORKED_FENV for i386. I hope even this is temporary, so I have not patched master -- just my Gtk branch. If anyone else has had trouble using e.g. Pango (getting SIGFPE Underflows) on Ubuntu 11.04, the attached patches might be helpful. The first implements alienate_float_environment() and calls it before every callout and after every callback. The second patch implements BORKED_FENV.
patch.diff.bz2
Description: alienate_float_environment() and BORKED_FENV
_______________________________________________ MIT-Scheme-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/mit-scheme-devel
