On 21/12/16 11:13 AM, Gustavo Sverzut Barbieri wrote:
> On Wed, Dec 21, 2016 at 3:02 PM, Derek Foreman <der...@osg.samsung.com> wrote:
>> On 21/12/16 10:45 AM, marcel-hollerb...@t-online.de wrote:
>>> On Wed, Dec 21, 2016 at 05:33:20PM +0100, Stefan Schmidt wrote:
>>>> Hello.
>>>>
>>>> On 21/12/16 17:02, Mike Blumenkrantz wrote:
>>>>> On Wed, Dec 21, 2016 at 5:11 AM Stefan Schmidt <ste...@osg.samsung.com>
>>>>> wrote:
>>>>>
>>>>>> Hello
>>>>>>
>>>>>> On 20/12/16 17:36, Mike Blumenkrantz wrote:
>>>>>>> I think your "How many real issues have you seen" was the same argument
>>>>>>> against running any static analysis a couple years ago; now we have
>>>>>> weekly
>>>>>>> reports for that.
>>>>>>>
>>>>>>> I have seen bugs that resulted from illegal float comparison. The fact
>>>>>> that
>>>>>>> a warning may be a false positive in some or even most cases does not
>>>>>>> ensure that every warning is a false positive.
>>>>>>>
>>>>>>> Given that we are so pedantic about warnings for much more trivial
>>>>>> matters
>>>>>>> (e.g., -Wunused-parameter as part of -Wextra), it seems bizarre to me
>>>>>> that
>>>>>>> anyone would complain about enforcing valid comparisons for floats.
>>>>>>
>>>>>> Getting the code in shape for correct float comparisons is actually
>>>>>> something I would like to see.
>>>>>>
>>>>>> The real problem here is/was how this was handled. Forcing the compiler
>>>>>> flag to everyone's build is the problem. That and seeing Chris and
>>>>>>
>>>>> Cedric going crazy and doing nearly 100 patches in a short timeframe.
>>>>>> And even after all this my build was still noisy with all these warnings.
>>>>>>
>>>>>
>>>>> If people want to spend a few hours fixing hundreds of compile warnings
>>>>> before leaving on holiday then I think they should be commended, not held
>>>>> up as examples of what not to do. There's nothing wrong with creating a 
>>>>> lot
>>>>> of patches;
>>>>
>>>> I'm not complaining about the amount of patches, I don't want this fixed
>>>> my one big commit either. And if this would have been it and all
>>>> warnings fixed I would not reverted anything. Given that Chris even
>>>> reverted patches because he did not compile test them before pushing I
>>>> really wonder what this rush is about. Is this a battle on getting
>>>> patches in before vacation, or what?
>>>>
>>>>   it's not like anyone here is taking the time to review all
>>>>> these commits once they hit the repo.
>>>>
>>>> Just not true. I look over patches coming in over the commit mailing
>>>> list. And I know Tom also did. Others I can't say, but neither can you.
>>>>
>>>>>
>>>>>>
>>>>>> The reason we are so pedantic with the other warnings from the default
>>>>>> flags is that we want to have a clean build output to _actually spot
>>>>>> warnings from new code_ we are working on.
>>>>>>
>>>>>
>>>>>> I reverted the patch putting it into the default compiler flags. Enable
>>>>>> it locally, get the  the amount of warnings down to a sane amount and
>>>>>> I'm all for putting it in again. (tests and examples are also full of
>>>>>> it. Mentioning it here because I know how much people love to avoid
>>>>>> compiling those.)
>>>>>>
>>>>>
>>>>> I'm supposed to enable a flag locally and fix hundreds of warnings by
>>>>> myself in code that I've never seen before? Or perhaps you think that
>>>>> others will collaborate and do this voluntarily if they have to manually
>>>>> enable a warning flag? Please be realistic.
>>>>
>>>> I am. You could have written a mail highlighting some examples why this
>>>> warnings is useful, you could have started a branch with it enabled and
>>>> worked together with Chris and Cedric on it to fix the warnings. Nothing
>>>> of this happened. Out of the blue this warning was enabled and a rush of
>>>> patches came in. You should not be surprised that people bring this up.
>>
>> Are you asking for an explanation of why floating point comparison with
>> == in C is bad?  This is axiomatic and hardly needs discussion in this
>> forum.
>>
>>>>> This could have easily been resolved by the end of the week if people had
>>>>> spent the time making fixes instead of complaining.
>>>>
>>>> Interesting that you are not supposed to fix warnings in code that you
>>>> have never seen before but others are.
>>
>> I haven't seen that suggested by anyone, probably because it's a bad idea.
>>
>>> Little side note: Claiming that you have to know a codebase for changing
>>> a==b to EINA_DBL_CMP(a,b) is NOT realistic :)
>>
>> ENOUGH of this!  I've been trying to just sit this one out, but come on!
>>
>> It is *not* a cookie cutter change!  I'm seeing claims that it's
>> trivial, and claims the people are reading the commit logs, and then I'm
>> seeing patches like this:
>>
>> ...
>> -     if (pos0->stride != 0.0)
>> +     if (!EINA_FLT_CMP(pos0->stride, 0.0))
>> ...
>>
>> Which is obviously wrong if you know what you're looking at.
>>
>> Further, there may be cases where we intentionally only want a
>> comparison to trigger if the value is *exact* (as in, has been set that
>> way by assignment).  This could be the case in matrix math operations.
>>
>> These warnings aren't trivially resolved by people with no familiarity
>> with the code.
>
> Indeed. A much better approach would be to review with care and even
> consider which epsilon is appropriate for that case... it's not a
> simple 'sed'... which would just hide problems.
>
> Like in the excerpt above, without knowledge of the usage it's hard to
> say if it should be:
>
>     if (!EINA_FLT_CMP(pos0->stride, 0.0))  -> unlikely
>
> or:
>
>    if (pos->stride > 0.0) -> more likely, but hard to guarantee
> without usage knowledge.

Exactly!  In this case though:

if (pos0->stride == 0)

Stride is an integer (both as a generical graphics concept, and in the 
struct in question).

Thanks,
Derek

>
>>>> Furthermore, I think
>>>>> the fact that the people who complained about the warnings were not the
>>>>> ones fixing any of them highlights my point.
>>>>
>>>> Making things up does not help this discussion.
>>>
>>> Also as I am one of those who complained:
>>> I complained because i am working on patches for elementary, i am
>>> changing a few focus apis in there. So it is quite meaningfull if a
>>> warning comes up, but with searching in 100 Warnings for a single new is not
>>> quite handy. Also there is still the thing i have told you in the other
>>> mail, why now? And more important, why at all? Is there a issue?
>>
>> Revert the change locally?
>>
>> Floating point comparison in C leads to very difficult to diagnose bugs.
>>
>> I'm strongly in favor of turning this warning back on immediately.
>>
>> This whole debate makes no sense.
>
> while I find these warnings annoying, I have to agree with this :-D
>
>


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to