There's clearly a bug somewhere, maybe several. Can you file a bug report at bugs.python.org, clearly stating the expected behavior and the observed behavior, preferably with sample code? Studying the source code and providing a patch would be much appreciated as well!
On 11/7/07, Wojciech Walczak <[EMAIL PROTECTED]> wrote: > 2007/11/7, Daniel Stutzbach <[EMAIL PROTECTED]>: > > > print() shouldn't flush if there isn't a newline, unless the buffer is > > full or the user calls flush(). > > So the buffer size in py3k is 1 byte long? Try this as a script in py3k: > > ----------------- > import time > > print('xx',end='') > time.sleep(3) > print('x',end='') > time.sleep(3) > ----------------- > > First print() will flush immediately even though there is no newline > and flush is not called, while second print() will flush after second > sleep. > What I am saying is that print() is not flushing immediately when > string is 1 byte long, but when it is longer - then print() is > flushing immediately. It works that way both for interpreter and > scripts. > > > The patch you suggest would cause a flush after *every* write with > > print, which would cause a very significant performance hit on > > programs that do a lot of writing to standard output (especially if > > standard output is a pipe). > > No, it is calling flush only when the 'end' in print() is set. > Otherwise (end==NULL or end==Py_None) it just prints newline as it was > doing before. Anyway - I agree that it is a hit for performance and as > I said before, I think that the problem lies somewhere deeper. Any > clues? > > > Wojciech Walczak > _______________________________________________ > Python-3000 mailing list > Python-3000@python.org > http://mail.python.org/mailman/listinfo/python-3000 > Unsubscribe: > http://mail.python.org/mailman/options/python-3000/guido%40python.org > -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com