Inconsistent error handling: glCompileShader / glLinkProgram
I noticed a difference between the behaviours of functions "glCompileShader" and "glLinkProgram".
If glCompileShader fails to compile, the function calls the debug callback but does not set its status obtainable via "glGetShaderiv" to unsuccessful neither does it set its info log obtainable via glGet{Program/Shader}InfoLog.
If glLinkProgram fails, it only sets its status and info log without calling the debug callback. The debug callback is called after trying to glUseProgram (because the program is not linked).
I think these functions should handle errors consistently.