Why cant I use `#include` after upgrading my driver After updating my graphics driver and trying to run this example from John Chapman's blog I got this error

Vertex shader failed to compile with the following errors:
ERROR: 0:8: error(#105) #version must occur before any other program statement


The way that the version is defined is by including a file containing this code

#ifndef DEF_GLSL_
#define DEF_GLSL_

#version 420

...


So inside all other shader files one can see that the first line is as follows

#include "common/def.glsl"
...


I remember this working perfectly a few months ago. So what exactly has changed and the #include command is no longer valid?
The error message gives a clue in the wording:

#version must occur before any other program statement


Is there a reason that the previous 2 lines need to appear before the #version line? If not, you can avoid the error by moving this line to the beginning, since the actions of the lines are independent of their order in this instance.

The #version needing to be at the beginning of the file is not a new requirement. I don't know why you were able to run this code previously.