benrg <benrud...@gmail.com> added the comment:

w9xpopen is currently used on NT. The patch to use it on NT was checked in by 
bquinlan in August of 2001 
(http://mail.python.org/pipermail/patches/2001-August/005719.html). He claims 
that it is necessary in NT, even though (a) the cited knowledge base article 
explicitly states that it is not necessary on NT, and (b) the knowledge base 
article has now been deleted from Microsoft's web site, indicating that they 
consider it no longer relevant (they have deleted all Win9x-specific 
documentation, but Win2K-specific documentation is still there).

I just don't believe that the problem solved by w9xpopen has ever existed in 
any version of NT. There is no credible evidence for it. There are any number 
of other reasons why introducing an intermediate process might have hidden some 
unrelated bug or otherwise resolved the problem the Win9x->Win2K upgraders were 
having a decade ago. I think that the use of w9xpopen in NT is a bug, not an 
obsolete feature, and there's no reason it couldn't be gone in 3.2.1.

Also, I suppose it doesn't matter any more, but the logic for deciding when to 
run w9xpopen should be (target executable is 16-bit), which can be determined 
by reading the file header. Right now the test is (shell is True and (running 
on win9x or the command processor is named "command.com")). Every part of this 
test is deficient. Python programs can spawn 16-bit processes (including the 
shell itself) without using shell=True. Not every win9x shell is 16-bit; 32-bit 
shells like cmd.exe work fine. And there are 16-bit shells not named 
"command.com", such as 4DOS.

----------
nosy: +benrg

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue2405>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to