I've got a great shader library, and it's nearly done.  Unfortunately, certain custom functions have problems on ATI cards.  I'm trying to add error reporting to get useful errors about it.  Unfortunately, glGetShaderInfoLog() seems to fail.  It works for me, with NVidia. 

This function:

def CompileShader(source,shaderType):
    shader = glCreateShaderObjectARB(shaderType)
    return shader

provides the "shader" that is passed as the argument to glGetShaderInfoLog().  I have no idea what's wrong, and I really need to have error reporting to debug this. 

Curiously, glGetInfoLogARB() seems to work fine, but it does not give useful errors (fragment shader failed to compile successfully before linking or some such).  I tried using ctypes in ways like here or here, but they don't work for either of us.

I need errors.  Help.