1 |
"Denis Dupeyron" <calchan@g.o> posted |
2 |
7c612fc60607091424s467c27e4n665fc3dd4ee2116a@××××××××××.com, excerpted |
3 |
below, on Sun, 09 Jul 2006 23:24:24 +0200: |
4 |
|
5 |
> In bug #139412, I ask Paul de Vriese why he thinks python should die on |
6 |
> --fast-math instead of just filtering it. Here's his answer : |
7 |
> |
8 |
> "Denis, quite simple. -ffast-math is broken and short-sighted for a |
9 |
> global flag. Filtering gives the shortsighted message that it works |
10 |
> globally, while it is not suited for any package not specifically tested |
11 |
> for it. As it breaks python, dieing makes people understand that it does |
12 |
> not work on python. It is better than the alternative of not looking for |
13 |
> it at all." |
14 |
|
15 |
As a user active on the lists/groups (and the same would go for forums), |
16 |
and opposing both Ryan Hill's and Richard Fish's opinions, I absolutely |
17 |
agree with Paul on this! |
18 |
|
19 |
My reason for doing so is that I've seen users say they use it with no ill |
20 |
effects they can see on their system. Of course, we know that's because |
21 |
where it has caused problems enough to bug, it has been filtered, but |
22 |
obviously the users don't know that, or are *relying* on it, *not* a good |
23 |
idea IMO. |
24 |
|
25 |
If ebuilds start dying on it, those users will soon see how many things it |
26 |
/does/ break, and should quickly change their minds. |
27 |
|
28 |
> This, for me, triggers 3 questions that are gentoo-dev@ material : |
29 |
> |
30 |
> 1) Should all ebuilds that currently filter --fast-math die on its |
31 |
> presence instead of filtering it ? |
32 |
|
33 |
I'd say yes -- provided there's documentation (say a bug where removing it |
34 |
cured the bug) that it's an actual problem with that package. If a |
35 |
maintainer has put the filterflag in simply peremptorily, as I'd argue |
36 |
this particular flag might warrant, that's a different question. IMO, |
37 |
that would be counterproductive, since a user simply removing the die, |
38 |
redigesting, and continuing, would have likely convinced himself of the |
39 |
safety of that flag. |
40 |
|
41 |
> 2) If yes, are there any other flags that ebuilds should die on ? |
42 |
|
43 |
I'd say very few, keeping in mind portage's non-interactive philosophy (as |
44 |
Ryan mentioned). Very few are /that/ profoundly stupid, and require |
45 |
someone hit the practitioner upside the head with a cluebat. |
46 |
|
47 |
> 3) Suppose that -ftracer, for example, is one of those, and knowing that |
48 |
> enabling -fprofile-use enables -ftracer, shouldn't ebuilds also die on |
49 |
> use of -fprofile-use ? It's only an example, this situation will exist |
50 |
> for other pairs of flags. |
51 |
|
52 |
Given the rarity of a flag as extreme as -ffast-math, I'd say that |
53 |
shouldn't normally be the case. Do note that -ffast-math is itself a |
54 |
meta-flag, enabling several others. I'd /not/ recommend dying on the |
55 |
individual flags, thereby giving those that would use -ffast-math /that/ |
56 |
way to do so if they /insist/ on it -- and have read the documentation |
57 |
well enough to know about it. |
58 |
|
59 |
> The hidden question behind these three is : shouldn't we have a |
60 |
> "something" that enables us to safely handle this kind of situations ? |
61 |
> Like some kind of system- and/or architecture-wide flag mask that could |
62 |
> be overriden by the ebuild and/or the user (at his own risk) ? This |
63 |
> could potentialy reduce the number of bugs that poor old bugzie has to |
64 |
> cope with, and simplify ebuild writing and maintenance. |
65 |
|
66 |
I'd favor a USE_EXPAND type flag that could take several "I'm broken so |
67 |
don't file bugs" type strings, which could be individually tested for in |
68 |
the various ebuilds (and/or profiles), while at the same time grouping |
69 |
them automatically for purposes of emerge --info and therefore bug |
70 |
reports. |
71 |
|
72 |
amd64 tests for such "IM_BROKEN" type vars in their development profiles |
73 |
(would be 2006.1 for example ATM), and I believe gcc tested for (and may |
74 |
still) a similar var during part of the 4.0 process, where users agreed |
75 |
not to file bugs unless they came with patches. Having these all in the |
76 |
same place, perhaps as individual values of a |
77 |
PORTAGE_I_DELIBERATELY_CHOOSE_TO_BE_BROKEN var or the like, where emerge |
78 |
--info would report it yet ebuilds/profiles could test for the presence of |
79 |
individual strings, would be a very good thing IMO. A function or two |
80 |
could then be added to eutils to aid in standardizing the testing for such |
81 |
strings and encourage use of the standard grouping. |
82 |
|
83 |
If that or a similar solution is chosen, then one such string could be |
84 |
created for -ffast-math. Once that was done, a test for that string could |
85 |
be set in profiles/base or the like, setting up the test for -ffast-math |
86 |
system-wide, whereupon it could be eliminated from the individual ebuilds. |
87 |
That would also provide a suitable single-shot environment based solution |
88 |
for the user, as well, in the case they wanted to override the system test |
89 |
for an individual ebuild. |
90 |
|
91 |
-- |
92 |
Duncan - List replies preferred. No HTML msgs. |
93 |
"Every nonfree program has a lord, a master -- |
94 |
and if you use the program, he is your master." Richard Stallman |
95 |
|
96 |
-- |
97 |
gentoo-dev@g.o mailing list |