In about 1990, I wrote a little raytracer in C++ as the course project for a computer graphics class at U. Oregon. About 5000 lines; seemed like a great way to learn the language. Unfortunately, my raytracer rendered mildly wrong, in a very nondeterministic way. No idea whose fault the misrendering was; mine, the compilers, etc…
Every few years I get out my raytracer again and try recompiling it. The bug is still there and I still can't find it, so I put it away again.
This time I thought I'd try valgrind on it. Maybe this time I'd actually find the bug.
But oh—too bad. Now it doesn't even come close to compiling. Weird gratuitous incompatible changes to C++ have completely broken it. The most annoying change is this: the only legal declaration for a "copy constructor" for class foo at this point appears to be
foo( const foo & )
Note the required const qualifier. What a nightmare. Now my program is const-contaminated, and I have to insert more consts to get things to compile.
I'm currently completely stuck. I asked a moderately-clueful C++ person to help, and they got stuck too. Now I'll probably need a guru.
Or a rewrite in Java. (B)