Dr Andrew John Hughes said the following on 05/20/11 06:24:
On 09:47 Thu 19 May     , David Holmes wrote:
Dr Andrew John Hughes said the following on 05/19/11 05:29:
On 08:35 Mon 16 May     , Kelly O'Hair wrote:
<snip>
The -Werror option is a blessing and a curse. I find it highly commendable that teams (like hotspot) have taken a 'no warnings allowed' approach to their code base, more teams should do this.
Given the critical nature of a VM in the JDK, it only makes sense to take all 
precautions in verifying the code is correct.

I find it quite interesting that the one situation where -Werror is used is 
where it's likely to hit
the most difficulties. The HotSpot code is compiled by three different 
compilers (gcc and whatever
is used on Solaris and Windows) and the version of these used can vary 
considerably, as the system C++ compiler
is unrelated to the JDK.
Hotspot only uses -Werror with gcc. And its use predates the sudden plethora of compiler versions now used to build OpenJDK. In prior times the build compiler for a given release was set in stone so we knew what warnings (and bugs!) to expect.

Welcome to OpenJDK.  You can't expect everyone compiling a FOSS project to
use one true compiler and no other.  Sorry.  That's just the reality, and
it's why we now have to reassess/amend these earlier choices.

I was simply stating the history.

<snip>
It does.  I'm unclear how anything you say here is different to the situation
with C/C++ compilers producing new warnings in new versions.

I'm unclear what point you are trying to make about javac.

javac produces new warnings because new language features cause new potential issues. There are no new features in C/C++ (compiler-specific extensions ignored), the compilers just get more pedantic about what they complain about.

 If anything, OpenJDK
is leading the way with support for these new language features, so you'd expect
it to adopt them in its own codebase.  As is, we're still getting warnings 
resulting
from features introduced in 2004.

Practical realities - there were no resources, for example, to go and change every single class that used a collection type in 1.4.2 and so generated a "raw type" warning once generics were added in 5. These things sometimes get cleaned up when other work is occurring in an area.

Also note that in many cases javac warnings are disappearing because @SuppressWarnings is being applied to the code.

David
-----


I think comparing C/C++ compiler warnings with javac compiler warnings is like comparing apples and elephants.

David
-----


Reply via email to