> 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.
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