diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst index fa58e2d594217d..f353fbc8612768 100644 --- a/Doc/library/idle.rst +++ b/Doc/library/idle.rst @@ -671,15 +671,23 @@ When a program outputs text, the result is determined by the corresponding output device. When IDLE executes user code, ``sys.stdout`` and ``sys.stderr`` are connected to the display area of IDLE's Shell. Some of its features are inherited from the underlying Tk Text widget. Others -are programmed additions. +are programmed additions. Where it matters, Shell is designed for development +rather than production runs. + +For instance, Shell never throws away output. A program that sends unlimited +output to Shell will eventually fill memory, resulting in a memory error. +In contrast, some system text windows only keep the last n lines of output. +A Windows console, for instance, keeps a user-settable 1 to 9999 lines, +with 300 the default. Text widgets display a subset of Unicode, the Basic Multilingual Plane (BMP). Which characters get a proper glyph instead of a replacement box depends on the operating system and installed fonts. Newline characters cause following -text to appear on a new line, but other control characters are replaced -with a box. But note that the ``repr()`` function, which is used for -interactive echo of expression values, replaces control characters -with escape codes before they are output. +text to appear on a new line, but other control characters are either +replaced with a box or deleted. However, ``repr()``, which is used for +interactive echo of expression values, replaces control characters, +some BMP codepoints, and all non-BMP characters with escape codes +before they are output. Normal and error output are generally kept separate (on separate lines) from code input and each other. They each get different highlight colors. diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html index 83bd4a1b91df9d..f0b42151f35989 100644 --- a/Lib/idlelib/help.html +++ b/Lib/idlelib/help.html @@ -648,14 +648,21 @@

User output in Shellsys.stdout and sys.stderr are connected to the display area of IDLE’s Shell. Some of its features are inherited from the underlying Tk Text widget. Others -are programmed additions.

+are programmed additions. Where it matters, Shell is designed for development +rather than production runs.

+

For instance, Shell never throws away output. A program that sends unlimited +output to Shell will eventually fill memory, resulting in a memory error. +In contrast, some system text windows only keep the last n lines of output. +A Windows console, for instance, keeps a user-settable 1 to 9999 lines, +with 300 the default.

Text widgets display a subset of Unicode, the Basic Multilingual Plane (BMP). Which characters get a proper glyph instead of a replacement box depends on the operating system and installed fonts. Newline characters cause following -text to appear on a new line, but other control characters are replaced -with a box. But note that the repr() function, which is used for -interactive echo of expression values, replaces control characters -with escape codes before they are output.

+text to appear on a new line, but other control characters are either +replaced with a box or deleted. However, repr(), which is used for +interactive echo of expression values, replaces control characters, +some BMP codepoints, and all non-BMP characters with escape codes +before they are output.

Normal and error output are generally kept separate (on separate lines) from code input and each other. They each get different highlight colors.

For SyntaxError tracebacks, the normal ‘^’ marking where the error was diff --git a/Misc/NEWS.d/next/IDLE/2018-11-06-23-10-54.bpo-33000.pQasCt.rst b/Misc/NEWS.d/next/IDLE/2018-11-06-23-10-54.bpo-33000.pQasCt.rst new file mode 100644 index 00000000000000..c6ba9e4669d584 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2018-11-06-23-10-54.bpo-33000.pQasCt.rst @@ -0,0 +1,2 @@ +Document that IDLE's shell has no line limit. A program that runs +indefinitely can overfill memory.