I disagree, according to the spec:
“”
Add to 7.13 “Shader, Program, and Program Pipeline Queries” under the
descriptions for “pname” for “GetShaderiv”,
If <pname> is COMPLETION_STATUS_KHR, TRUE is returned if the shader
compilation has completed, FALSE otherwise.
“”
The intent is that after you call glLinkProgram / glCompileShader, you can query in a non blocking manner. When that query returns that compilation is finished, then you can get the program / shader without blocking the OpenGL context. This is more important in the use case mentioned in spec, where you may want to compile a shader in a separate thread at runtime without breaking frame due to the compile / link.
The goal according to the spec should be that GetShaderiv and GetProgramiv work in the same non-halting manner with COMPLETION_STATUS_KHR.