> 2. Analysis tools are useful, but almost all QA these days is
> test-driven. If a program passes tests on platforms people have
> around, they declare success, regardless of whether the spec says
> that the program would not work under the officially sanctioned
> memory model. Unless every JDK came with a special testing VM that
> simulated the weakest possible behavior in accord with the model,
> many people would not pay enough attention to counterintuitive,
> performance-limiting rules.
>
> (A corollary of sorts is that many people have learned to
> program to the current implementations of Java/JDK features,
> not to their specifications. This is of course a bad thing,
> but is a basic survival skill for people who have to ship
> products on schedule.)
The Eraser tool developed by Stephen Savage et al.
http://www.cs.washington.edu/homes/savage/
is nice in that it doesn't require that the data race actually occur
during a test run. Rather, it simply checks that for each variable
accessed by more than one thread, there is some unique monitor that
is held whenever the variable is accessed.
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:21 EDT