This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author IanSt1
Recipients IanSt1, epaine, ezio.melotti, ned.deily, ronaldoussoren, serhiy.storchaka, terry.reedy, vstinner, wordtech
Date 2020-11-08.13:03:09
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1604840590.34.0.10281872231.issue42225@roundup.psfhosted.org>
In-reply-to
Content
Further to the information I posted on Stack Overflow (referred to above) relating to reproducing emoticon characters from Idle under Ubuntu, I have done more testing.  Based on some of the code/comments above, I tried modifications which I hoped might identify errors before Idle crashed.
At a simple level I can generate some error information in a Ubuntu terminal from the following.
usr/bin$ idle-python3.8
Entering chr(0x1f624) gives the following error message in terminal.
X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  Major opcode of failed request:  139 (RENDER)
  Minor opcode of failed request:  20 (RenderAddGlyphs)
  Serial number of failed request:  4484
  Current serial number in output stream:  4484

Another test used this code.
--------------
def FileSave(sav_file_name,outputstring):
    with open(sav_file_name, "a", encoding="utf8",newline='') as myfile:
        myfile.write(outputstring)

def FileSave1(sav_file_name,eoutputstring):
    with open(sav_file_name, "a", encoding="utf8",newline='') as myfile:
        myfile.write(eoutputstring)

tk = True
if tk:
    from tkinter import Tk
    from tkinter.scrolledtext import ScrolledText
    root = Tk()
    text = ScrolledText(root, width=80, height=40)
    text.pack()
    def print1(txt):
        text.insert('insert', txt+'\n')

errors = []
outputstring = "Characters:"+ "\n"+"\n"
eoutputstring = "Errors:"+ "\n"+"\n"

#for i in range(0x1f600, 0x1f660):   #crashes at 0x1f624
for i in range(0x1f623, 0x1f624):  # 1f624, 1f625 then try 1f652  
    chars = chr(i)
    decimal = str(int(hex(i)[2:],16))
    try:
        outputstring = str(hex(i))+" "+decimal+" "+chars+ "\n"
        FileSave("Charsfile.txt", outputstring)
        print1(f"{hex(i)} {decimal} {chars}")
        print(f"{hex(i)} {decimal} {chars}")
    except Exception as e:
        print(str(hex(i)))
        eoutputstring = str(hex(i))+ "\n"
        FileSave1("Errorfile.txt", eoutputstring)
        errors.append(f"{hex(i)} {e}")

print("ERRORS:")

for line in errors:
    print(line)

--------------
With the range starting at 0x1f623 and changing the end point, in Ubuntu, with end point 0x1f624, this prints ok, but if higher numbers are used the Idle windows all closed. However on some occasions, if I began with end point at 0x1f624 and run, then without closing the editor window I increased the end point to 0x1f625, save and run, the Text window would close, but the console window would remain open.  I could then increase the upper range further and repeat and more characters would print to the console.
I have attached screenshots of the console output with the fonts-noto-color-emoji fonts package installed(with font), then with this package uninstalled (no font) and finally the same when run under Windows 10.  
For the console output produced while the font package is installed, if I select in the character column where there is a blank space, "something" can be selected.  If I save the console as a text file or select all the rows, copy and paste to a text file, the missing characters are revealed. When the font package is uninstalled, the missing characters are truely missing.  It is the apparently missing characters (such as 0x1f624, 0x1f62c, 0x1f641, 0x1f642, 0x1f644-0x1f64f) which appear to be causing the Idle crashes.  Presumably such as 0x1f650 and 0x1f651 are unallocated codes so show up as rectangular outlines. 

In none of the tests with the more complex code above did I manage to generate any error output.

My set up is as follows.
Ubuntu 20.04.1 LTS
x86_64
GNOME version: 3.36.3
Python 3.8.6 (default, Sep 25 2020, 21:22:01) 
Tk version: 8.6.10
[GCC 7.5.0] on linux

Hopefully, the above might give some pointers to handling these characters.
History
Date User Action Args
2020-11-08 13:03:10IanSt1setrecipients: + IanSt1, terry.reedy, ronaldoussoren, vstinner, wordtech, ned.deily, ezio.melotti, serhiy.storchaka, epaine
2020-11-08 13:03:10IanSt1setmessageid: <1604840590.34.0.10281872231.issue42225@roundup.psfhosted.org>
2020-11-08 13:03:10IanSt1linkissue42225 messages
2020-11-08 13:03:09IanSt1create