Faré wrote:
I committed more or less the change Dave suggested.
You are in a maze of subtly incompatible implementation buglets, all different.
All that because the standard tried to compromise between incompatible implementations, instead of (1) mandating some standardized 1-1 access to the underlying OS, and (2) standardizing on constructions on top of that or parametric abstractions from that. So instead of having well-defined tools (that may not be a complete solution indeed), we have horribly undefined tools (that still may not be a complete solution, and now actually cannot be).
And so, instead of having two standard APIs, one for Windows and one for Unix, on top of which to build robust things, we have thirty-odd different APIs, all of them incompatible, none of them reasonably standard.
That's an old problem of having a standard that is never-changing. When the standard was made Windows was hardly a thing -- certainly not for serious computing -- and they were concerned with portability to things like Lisp machines that hardly even had an OS....
No, the problem is that the standard has never evolved beyond the ANSI.... :-( Seems like each of the implementations has some good ideas, but none has all of the good ones.
I'll pull again and re-test.
It should make you feel better that your hard work on the regression tests has let us spot these bugs almost instantly.
Best, r