Safe to detach/delete shaders for a program while waiting for compile/link?

Given parallel_shader_compile is it safe to detach/delete shaders from the compiling/linking program before it’s complete?

It seems to work ok so far on nvidia but I don’t know if it’s safe! If it’s not it means I don’t have to track a load of shader handles while waiting on the compile/link.

The specification does not change the wording for how compilation works. It merely allows you to ask if compilation has finished without requiring it to. The nature of compilation is not changed by being asynchronous.

As such, implementations are required to allow you to detach and delete shader objects exactly as before. Of course, if a shader is still being compiled asynchronously and you detach it from a program that’s going to link to it asynchronously, that may make the process no longer asynchronous.