Less commas

bearophile bearophileHUGS at lycos.com
Sun Jan 2 04:28:57 PST 2011


Walter:

> If you really want to be productive with this, rather than sitting back and 
> thinking up imaginary problems, do things like peruse the bug database of a 
> large open source project. Look for patterns of problems that might be headed 
> off with language solutions.

A common bug in Linux kernel:

if(!state->card->
  ac97_status&CENTER_LFE_ON)
     val&=~DSP_BIND_CENTER_LFE;

The fix is to replace (!E & C) with (!(E & C)).

Currently D acts like C:

void main() {
    uint x, y;
    if (!x & y) {}
}

- 96 instances of this bug in Linux from 2.6.13 (August 2005) to v2.6.28 (December 2008).
- 58 instances of this bug in 2.6.20 (February 2007)
- 2 in Linux-next (October 10, 2009)

They have faced and reduced the number of such bugs using Coccinelle, see pages 8-9 here:
http://coccinelle.lip6.fr/papers/fosdem10.pdf

See you later,
bearophile


More information about the Digitalmars-d mailing list