2009/8/4 William Stein <wst...@gmail.com>:
>
> On Tue, Aug 4, 2009 at 1:06 AM, David Kirkby<david.kir...@onetel.net> wrote:

>> I often wonder if there should be a 'feature freeze' in Sage and
>> devote some time to sorting out why these warnings are occuraing and
>> whether they could result in the generation of incorrect results.
>
> Sage is an open source volunteer project.    Declaring a feature
> freeze and requiring all the volunteers to work on sorting out
> compiler warnings is a good way of dramatically reducing the number of
> volunteers working on Sage.    I really like what you are currently
> doing, which is to strongly encourage people to work on these problems
> (as you are doing), make it clear what needs to be (which you are
> doing), and foster an environment in which making these fixes is
> greatly appreciated (which you are doing).  Bravo!
>
>  -- William

I'd agree, asking volunteers to sort out warnings in other peoples
code already in Sage would be asking for trouble. The only possible
way I can see of getting the warnings investigated is either at

1) Find someone who enjoys doing that - difficult I would imagine.
2) Pay someone to do it - almost impossible on a volunteer project.
3) You could possibly propose a computer science student project (as
in CS department) where the student:

* Investiages any literature which has attempted to correlate code
quality with warnings. (I've no evidence to suggest on average that
code that generates tons of warning messages is more buggy than code
that which does not. I might take an educted guess there is a positive
correlation between bugs and warning message, but I might be wrong.
But I suspect there is published literature on this).
* Enables all warnings on all packages in Sage
* Analyses the warnings/lines of code for each package in Sage
* Produce some sort of table, showing the best and worst offenders.
* Writes extra doctests for pieces of code known to generate a large
numer of warning messages, if the literature suggests a positive
correlation between bugs and warnigns.
* Sends notification of warnings to developers, explain it is their
project to investiage/report them, but its not their aim to fix them.
(That would need to be done in a polite way).

I could imagine such a project would interst some. I could also
imagine that having one's final year project on that for a computer
science student might make them quite attrative to prospective
employers.  I just had a look on 'monstir.co.uk' and see jobs for:

* QA Software Tester
* Senior Software Quality Assurance QA Specialist
* QA - QC - SOFTWARE TESTING PROJECT MANAGER
* Senior Software Quality Engineer
* Numeros others

A background in this area is certainly quite attractive to employers.

But I do feel there should be some rules about warnings for any new
code to be committed to Sage. Such as

a) A check is made to see if there are any attempts to cover up
warnings. Way of doing that could be to pass flags to
compilers/linker/assemblers to cover them up, redirect warnings to
/dev/null etc, or any other tricks one can find.

If so, they must be removed, before it even gets put into an
experimental/unsupported category

c) One adds code to check for for all warnings (such as -Wall if the
compiler is gcc)

Again done before any attempt it made to get the code in Sage

d) A log of all warning messages is sent to the upstream developer,
copied to sage-devel, and any response received copied back to
sage-devel.

At the moment there are at least two pieces of code in the standard
Sage distribution where the developer has actively tried to cover up
warnings. These include

* lcalc
* freetype

IMHO, no further code should be allowed to get into Sage with such
active attempts to cover up warnings. Also, code should be changed to
display warnings, and those submitted upstream.

I'm not suggesting another bit of code never gets put in Sage unless
the compilers fails to issue any warnings. But I de feel it would
improve the overall quality if people wanting code in Sage needed to
take active steps to at least get the warnings displayed and reported.

Dave

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to