Sorry for the 25th hour feedback. I just noticed this CL is being
considered for Go1.0.2, and I think that the approach here was wrong.
I believe it violates the spirit of the "go1" promise "Code that
compiles in Go 1 should, with few exceptions, continue to compile and
run throughout the lifetime of that version, even as we issue updates
and bug fixes ..."
Code that used to compile and run (regardless of the potential for
memory smashing) will now compile and NO LONGER run. But the user won't
know until runtime.
Code that didn't run, still compiles and still won't work properly
without a source code change that the user has no way to know is
required until he gets a new runtime error.
Code that does not yet exist could, in theory, try to use the still
existing, but now "disabled" API (it will still show up in the docs
won't it?), and then have to be changed again when it fails at runtime.
None of these seems intuitive or programmer friendly.
Alex's original patch set 3 would appear to have been the proper choice
for any of these cases; people will just recompile existing code and it
would "just work". Fix go1.txt to make the API checker happy with the
actual Windows data structure.
This is not an API "change", it would just mean bringing go1.txt in line
with reality for an OS specific data structure.
Or perhaps I am missing some bigger issue?
http://codereview.appspot.com/6261053/