"Denis Dupeyron" <[EMAIL PROTECTED]> posted
[EMAIL PROTECTED], excerpted
below, on  Sun, 09 Jul 2006 23:24:24 +0200:

> In bug #139412, I ask Paul de Vriese why he thinks python should die on
> --fast-math instead of just filtering it. Here's his answer :
> 
> "Denis, quite simple. -ffast-math is broken and short-sighted for a
> global flag. Filtering gives the shortsighted message that it works
> globally, while it is not suited for any package not specifically tested
> for it. As it breaks python, dieing makes people understand that it does
> not work on python. It is better than the alternative of not looking for
> it at all."

As a user active on the lists/groups (and the same would go for forums),
and opposing both Ryan Hill's and Richard Fish's opinions, I absolutely
agree with Paul on this!

My reason for doing so is that I've seen users say they use it with no ill
effects they can see on their system.  Of course, we know that's because
where it has caused problems enough to bug, it has been filtered, but
obviously the users don't know that, or are *relying* on it, *not* a good
idea IMO.

If ebuilds start dying on it, those users will soon see how many things it
/does/ break, and should quickly change their minds.

> This, for me, triggers 3 questions that are gentoo-dev@ material :
> 
> 1) Should all ebuilds that currently filter --fast-math die on its
> presence instead of filtering it ?

I'd say yes -- provided there's documentation (say a bug where removing it
cured the bug) that it's an actual problem with that package.  If a
maintainer has put the filterflag in simply peremptorily, as I'd argue
this particular flag might warrant, that's a different question.  IMO,
that would be counterproductive, since a user simply removing the die,
redigesting, and continuing, would have likely convinced himself of the
safety of that flag.

> 2) If yes, are there any other flags that ebuilds should die on ?

I'd say very few, keeping in mind portage's non-interactive philosophy (as
Ryan mentioned).  Very few are /that/ profoundly stupid, and require
someone hit the practitioner upside the head with a cluebat.

> 3) Suppose that -ftracer, for example, is one of those, and knowing that
> enabling -fprofile-use enables -ftracer, shouldn't ebuilds also die on
> use of -fprofile-use ? It's only an example, this situation will exist
> for other pairs of flags.

Given the rarity of a flag as extreme as -ffast-math, I'd say that
shouldn't normally be the case.  Do note that -ffast-math is itself a
meta-flag, enabling several others.  I'd /not/ recommend dying on the
individual flags, thereby giving those that would use -ffast-math /that/
way to do so if they /insist/ on it -- and have read the documentation
well enough to know about it.

> The hidden question behind these three is : shouldn't we have a
> "something" that enables us to safely handle this kind of situations ?
> Like some kind of system- and/or architecture-wide flag mask that could
> be overriden by the ebuild and/or the user (at his own risk) ? This
> could potentialy reduce the number of bugs that poor old bugzie has to
> cope with, and simplify ebuild writing and maintenance.

I'd favor a USE_EXPAND type flag that could take several "I'm broken so
don't file bugs" type strings, which could be individually tested for in
the various ebuilds (and/or profiles), while at the same time grouping
them automatically for purposes of emerge --info and therefore bug
reports.

amd64 tests for such "IM_BROKEN" type vars in their development profiles
(would be 2006.1 for example ATM), and I believe gcc tested for (and may
still) a similar var during part of the 4.0 process, where users agreed
not to file bugs unless they came with patches. Having these all in the
same place, perhaps as individual values of a
PORTAGE_I_DELIBERATELY_CHOOSE_TO_BE_BROKEN var or the like, where emerge
--info would report it yet ebuilds/profiles could test for the presence of
individual strings, would be a very good thing IMO.  A function or two
could then be added to eutils to aid in standardizing the testing for such
strings and encourage use of the standard grouping.

If that or a similar solution is chosen, then one such string could be
created for -ffast-math.  Once that was done, a test for that string could
be set in profiles/base or the like, setting up the test for -ffast-math
system-wide, whereupon it could be eliminated from the individual ebuilds.
That would also provide a suitable single-shot environment based solution
for the user, as well, in the case they wanted to override the system test
for an individual ebuild.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

-- 
gentoo-dev@gentoo.org mailing list

Reply via email to