mit-scheme-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MIT-Scheme-devel] Ubuntu 11.04 and FE_DFL_ENV.


From: Matt Birkholz
Subject: Re: [MIT-Scheme-devel] Ubuntu 11.04 and FE_DFL_ENV.
Date: Thu, 16 Jun 2011 10:11:28 -0700

> From: Taylor R Campbell <address@hidden>
> Date: Sun, 12 Jun 2011 04:33:50 +0000
> 
>    Date: Sat, 11 Jun 2011 13:05:18 -0700
>    From: Matt Birkholz <address@hidden>
> 
>    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?)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]