I've had the same problem on all of the Linux platforms that I run the game on. Now, I must admit that I am a complete newbie to OpenGL, so what I'm about to say may be completely wrong.

So for fun, I modified shaders.c to allow the use of shaders and indeed almost everything works perfectly. I've played a paradox mage up to level 23 with barely a hitch and gone through quite a few of the effects. When I say "barely", there are a couple of problems: When fire is used (bolt_fire, fiery_hands, etc), the CPU goes to 100% for several seconds, after which the effect works perfectly. As long as a single fire effect is loaded in the shaders, everything works fine. The other minor problem is that spikes don't seem to work. There is a background graphic (beige) and nothing seems to happen -- having never seen it before, I'm not sure what to expect, but it doesn't look right.
So I think that this core implementation is very close to working. I've spent some time trying to find out exactly what the problem is with fire, but have not had much success. It looks like an interesting challenge so I'd like to continue playing with it. I have a few questions, though:
1) Am I completely wasting my time? (i.e., this is a known issue which is unfixable / I've got it completely wrong / etc)
2) Is there any place but here where development issues are discussed?
3) Are there any tips you can provide for debugging shader issues. Even simple things would be good. For example, to test things, I am always starting up the game, shutting it down, modifying the code, again and again. It's fairly time consuming. Is there a faster/easier way to test things?
4) Similar to 3, I noticed that the shader code is loaded dynamically. Is there any way to unload the shader easily in the game, modify the source and then have it load again without shutting down the game?
Any other tips would be most welcome. I've got 20+ years experience as a professional programmer -- mostly C++, and lately web development stuff, but no experience with OpenGL or Lua. I mostly understand what's going on (and the code is not hard to understand at all!), but I think it will still take me quite a while to work efficiently with this technology.