People have been talking about byte-code representations and parse trees. “isn’t necessarily not human readable” also implies “could perhaps be non-human readable”.
While I, personally, think it might not be unreasonable to have a byte-code form in addition to the regular text format, I would suggest that text be the accepted way of feeding in ISA shaders. Otherwise, it becomes too difficult to write trivial shaders. Parsing a text assembly-esque shader isn’t really so difficult; it’s not that much more expensive than parsing the binary byte-code (which still must retain various high-level syntax).
You can make an array of chars for use by ARB_vertex_program in a simular way.
…
I don’t follow. How is building a vertex array at all similar to building a vertex shader? Besides the fact that they are both stored in memory?
If it is produced by an offline compiler it needs to be loaded into the program somehow.
So do textures, meshes, etc. Loading such things has nothing to do with OpenGL.
You mean just like a shader language will be parsed and compiled when the shader is loaded? You mean my analogy was exact?
Yes, and no.
As I pointed out, Lua can, and frequently is, compiled offline, and loaded as a post-compiled substrate that is then used by the Lua interpreter. Which is precisely how the ISA scheme works.
Only because people get exasparated with debating tactics like the above and stop bothering. Just like I am after this last post.
If you want to go on believing that, it is your perogative. However, a number of people have seen the arguments for what they are, weighed the evidence, and found that a lower-level approach to a glslang would be benificial on a number of fronts, while still providing enough high-level constructs to optimize on a variety of architectures.
Even 3DLabs agrees with me, as aboeing pointed out (except for the part about using a byte-code rather than text).