I don't know if you were suggesting my solution was "duct-tape and chickenwire". If you were I don't see it that way. I see my solution as vastly superior for all the reasons stated.
To reiterate*) less man work*) covers more browsers*) requires no debate on specs or features*) doesn't add to the already full plates of browser teams*) can be expanded without more debate and specing*) is more flexible*) will be available sooner*) bugs can be fixed immediately without waiting for some browser team to find time to fix them*) bug fixes available immediately, no waiting several months for a them to bubble through browser release cycles.
> Error info log messages are part of the API, intended for machine consumption.No they aren't. Error Info Log messages are speced such that they can always be empty. It is purely up to the driver implementor if they want to return anything there or not. The only error related to GLSL that's required is that bad shaders return false for gl.LINK_STATUS at LINK time. They are free to return success even on bad shaders at COMPILE time. Everything else is optional. I know this because I had to fix all the webgl conformance tests that used to require failure at compile time.
I think you're underestimating the amount of work. Let's assume it's just Chrome (since that's what I know) It's not just formatting messages in ANGLE. ANGLE isn't guaranteed to catch every error the driver might issue. For example ANGLE might let through a complex shader the driver rejects for some reason. Or, the driver might generate warnings (as some do). So now this problem has turned into somehow keeping a database of the all the drivers out there and what to do when they emit a message so it can then translate it back into this format. That's also assuming that format is consistent even inside a single driver. I have no way to know how to generate every possible message a driver might issue so I can check. Then they need to check every time a new driver comes out that someone didn't change something. Updating the ES spec won't help old drivers or non ES drivers. Then there's buggy drivers. Do they then blacklist any driver that spits out a message that doesn't parse by whatever rules were written previously? Because otherwise if they let any bad messages through someone's spec compliant parsing code will fail and their webpage will stop working. Updating the ES spec also doesn't help with DirectX