Adventures in C++

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)