code: def link(self):
          
          gl.glLinkProgram(self.id)
  
          # Check if linking was successful.  If not, print the log.
          link_status = c_int(0)
          gl.glGetProgramiv(self.id, gl.GL_LINK_STATUS, byref(link_status))
          if not link_status:
              gl.glGetProgramiv(self.id, gl.GL_INFO_LOG_LENGTH, byref(link_status))  # retrieve the log length
              buffer = create_string_buffer(link_status.value)  # create a buffer for the log
              gl.glGetProgramInfoLog(self.id, link_status, None, buffer)  # retrieve the log text
              print(buffer.value)  # print the log to the console
  
          self.is_linked = True
docs: link the program, making it the active shader.
  
          .. note:: Shader.bind() is preferred here, because link() Requires the Shader to be compiled already.