On 06/14/10 11:41 AM, Tim Joseph Dumol wrote:
Doctests are used to prevent regressions and (unwanted) backward
incompatibilities. Since the code used in these modules are not ever
going to be modified, it does not seem necessary to provide doctests,
IMHO.

Personally I'd beg to differ. A change in gcc's behavior could easily result in the code acting differently, as could any number of other system changes.

Here are a few tickets for issues that result of just changing compiler 
versions.

* segfault in Sage-4.4 built using GCC-4.5.0
http://trac.sagemath.org/sage_trac/ticket/8788

* frobby optional spkg doesn't build with newer GCC's
http://trac.sagemath.org/sage_trac/ticket/8783

* GCC-4.5.0 breaks GAP -- the workspace is broken, hence gap('2+2') fails.
http://trac.sagemath.org/sage_trac/ticket/8773

* http://trac.sagemath.org/sage_trac/ticket/8767
http://trac.sagemath.org/sage_trac/ticket/8767

As far as I can see, all those bugs were a result of changing just compiler versions.

Add to the mix the possibility of different versions of cython behaving differently, and it seems a bad idea to me.

It's certainly not unknown for a doc test to fail on one machine but pass on another. So having the same code never guarantees you get the same result.

Over the years, I've come across a lot of code which runs ok on fast computers, but not on slow ones, or visa versa. One case I recall was someone being rather stupid and seeing the random number generator from the time of day multiple times in a loop. On a slow computer, the seed was effectively random each time so they got a different pseudo random number. On a fast computer, the code executed in less than a second, and so the RNG was seeded twice with hte same value.

Mathematica on Solaris had a bug when Solaris 10 was updated only on slow computers.

http://www.g8wrb.org/mathematica/

So I've known all these to cause bugs, while the source code remains unchanged.

 * Changes in compiler version
 * Changes in the speed of the computer
 * Upgrade of the operating system.

As one more final point, there are ports in progress to

* FreeBSD
* OpenSolaris
* 64-bit on Solaris SPARC

All of them have the potential to create problems on one platform, not seen on another.

Can you dismiss all the above possibilities? If not, why should the code be exempt from testing?

Dave

On Mon, Jun 14, 2010 at 6:34 PM, Dr. David Kirkby
<david.kir...@onetel.net>  wrote:
On 06/14/10 05:15 AM, Minh Nguyen wrote:

Hi folks,

In a recent thread [1] on sage-notebook, it was suggested that files
under the component

sage/server

need not contribute to the total doctest coverage.

That seems a slightly strange decision to me. From the link it is apparent
the code is still in use. To quote from there:

"sage/server/notebook/worksheet.py cannot be removed since the sources
under server/notebook/* are still used by SageNB for conversion from
the old pickled data storage format to the new one."

So why should it not be tested?

Taking a cue from
that, today's coverage update [2] contains good news.

This strikes me as rather fiddling things to make the statistics look
better.

I have blacklisted everything under sage/server in generating the new
doctest reports at [2]. This now means that as of Sage 4.4.4.alpha0,
the overall weighted coverage score is 84.6%. Previously, the number
of strategic modules was 180, i.e. we needed to get 180 modules up to
full coverage in order to meet the 90% coverage goal. Now, the number
of strategic modules is down to 140.

This reminds me of the saying:

"There are lies, damn lies, and statistics".

[1]
http://groups.google.com/group/sage-notebook/browse_thread/thread/a07e542145ec1c99

[2] http://sage.math.washington.edu/home/mvngu/doctest-coverage/


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
URL: http://www.sagemath.org





--
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
URL: http://www.sagemath.org

Reply via email to