On Fri, Mar 27, 2009 at 12:25:38PM +0000, David Carter wrote: > '=' has right to left associativity (K&R second edition, page 53), so: > > a = b = c > > evaluates as: > > a = (b = c) > > But if you are happier with two or three lines of code, then go for it.
Yeah, I think it's clearer that it's two separate operations. Besides, I've followed some of the stuff on LKML about various versions of GCC screwing up optimisations, and debuging that stuff sounds like it would give me ulcers! I tell you, debugging the issue with blocks of zeros appearing in our skiplist files on 64 bit machines sure did... thankfully Linus found the bug quickly, though he did say that reading via mmap and writing with fwrite rather than just using mmap for writes was probably up there in insane territory as well. Surprised it worked so well everywhere, he was. Speaking of "smartarse" - you forgot to include util.h in sieve/test.c. It's not part of the standard build, so easy not to notice - but our install script builds it, so I noticed when I went to build it on my test machine. I've rolled that into my tree and pushed back to github again. Git is nice :) Bron.