[ruby-core:96763] [Ruby master Bug#16497] StringIO#internal_encoding is broken (more severely in 2.7)

[email protected] Fri, 10 Jan 2020 13:18:31 +0000 (UTC)
Newsgroups gmane.comp.lang.ruby.core
Message-ID <redmine.journal-83757.20200110131830.28c0e875173c7b3f@ruby-lang.org>
SXNzdWUgIzE2NDk3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku
DQoNCkJhY2twb3J0IGNoYW5nZWQgZnJvbSAyLjU6IFVOS05PV04sIDIuNjogVU5LTk9XTiwgMi43
OiBVTktOT1dOIHRvIDIuNTogRE9OVE5FRUQsIDIuNjogRE9OVE5FRUQsIDIuNzogUkVRVUlSRUQN
CkFzc2lnbmVlIHNldCB0byBub2J1IChOb2J1eW9zaGkgTmFrYWRhKQ0KU3RhdHVzIGNoYW5nZWQg
ZnJvbSBPcGVuIHRvIEFzc2lnbmVkDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCkJ1ZyAjMTY0OTc6IFN0cmluZ0lPI2ludGVybmFsX2VuY29kaW5nIGlzIGJyb2tl
biAobW9yZSBzZXZlcmVseSBpbiAyLjcpDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1
ZXMvMTY0OTcjY2hhbmdlLTgzNzU3DQoNCiogQXV0aG9yOiB6dmVyb2sgKFZpY3RvciBTaGVwZWxl
dikNCiogU3RhdHVzOiBBc3NpZ25lZA0KKiBQcmlvcml0eTogTm9ybWFsDQoqIEFzc2lnbmVlOiBu
b2J1IChOb2J1eW9zaGkgTmFrYWRhKQ0KKiBUYXJnZXQgdmVyc2lvbjogDQoqIHJ1YnkgLXY6IA0K
KiBCYWNrcG9ydDogMi41OiBET05UTkVFRCwgMi42OiBET05UTkVFRCwgMi43OiBSRVFVSVJFRA0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVG8gdGhlIGJlc3Qgb2Yg
bXkgdW5kZXJzdGFuZGluZyBmcm9tIFtFbmNvZGluZ10oaHR0cHM6Ly9kb2NzLnJ1YnktbGFuZy5v
cmcvZW4vbWFzdGVyL0VuY29kaW5nLmh0bWwpIGRvY3MsIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToN
Cg0KKiBleHRlcm5hbCBlbmNvZGluZyAoZXhwbGljaXRseSBzcGVjaWZpZWQgb3IgdGFrZW4gZnJv
bSBgRW5jb2RpbmcuZGVmYXVsdF9leHRlcm5hbGApIHNwZWNpZmllcyBob3cgdGhlIElPIHVuZGVy
c3RhbmRzIGlucHV0IGFuZCBzdG9yZXMgaXQgaW50ZXJuYWxseQ0KKiBpbnRlcm5hbCBlbmNvZGlu
ZyAoZXhwbGljaXRseSBzcGVjaWZpZWQgb3IgdGFrZW4gZnJvbSBgRW5jb2RpbmcuZGVmYXVsdF9p
bnRlcm5hbGApIHNwZWNpZmllcyBob3cgdGhlIElPIGNvbnZlcnRzIHdoYXQgaXQgcmVhZHMuDQoN
CkRlbW9uc3RyYXRpb24gd2l0aCByZWd1bGFyIGZpbGVzOg0KDQpgYGBydWJ5DQojIHByZXBhcmUg
ZGF0YQ0KRmlsZS53cml0ZSgndGVzdC50eHQnLCAn0KPQutGA0LDRl9C90LAnLmVuY29kZSgnS09J
OC1VJyksIGVuY29kaW5nOiAnS09JOC1VJykgIz0+IDcNCg0KZGVmIHRlc3QoaW8pDQogIHN0ciA9
IGlvLnJlYWQNCiAgW2lvLmV4dGVybmFsX2VuY29kaW5nLCBpby5pbnRlcm5hbF9lbmNvZGluZywg
c3RyLCBzdHIuZW5jb2RpbmddDQplbmQNCg0KIyByZWFkIGl0Og0KdGVzdChGaWxlLm9wZW4oJ3Rl
c3QudHh0JywgJ3I6S09JOC1VJykpDQojID0+IFsjPEVuY29kaW5nOktPSTgtVT4sIG5pbCwgIlx4
RjVceENCXHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29kaW5nOktPSTgtVT5dDQoNCiMgV2Ug
Y2FuIHNwZWNpZnkgaW50ZXJuYWwgZW5jb2Rpbmcgd2hlbiBvcGVuaW5nIHRoZSBmaWxlOg0KdGVz
dChGaWxlLm9wZW4oJ3Rlc3QudHh0JywgJ3I6S09JOC1VOlVURi04JykpDQojID0+IFsjPEVuY29k
aW5nOktPSTgtVT4sICM8RW5jb2Rpbmc6VVRGLTg+LCAi0KPQutGA0LDRl9C90LAiLCAjPEVuY29k
aW5nOlVURi04Pl0NCg0KIyAuLi5vciB3aGVuIGl0IGlzIGFscmVhZHkgb3BlbmVkDQp0ZXN0KEZp
bGUub3BlbigndGVzdC50eHQnKS50YXAgeyB8ZnwgZi5zZXRfZW5jb2RpbmcoJ0tPSTgtVScsICdV
VEYtOCcpIH0pDQojID0+IFsjPEVuY29kaW5nOktPSTgtVT4sICM8RW5jb2Rpbmc6VVRGLTg+LCAi
0KPQutGA0LDRl9C90LAiLCAjPEVuY29kaW5nOlVURi04Pl0NCg0KIyAuLi5vciB3aXRoIEVuY29k
aW5nLmRlZmF1bHRfaW50ZXJuYWwNCkVuY29kaW5nLmRlZmF1bHRfaW50ZXJuYWwgPSAnVVRGLTgn
DQp0ZXN0KEZpbGUub3BlbigndGVzdC50eHQnLCAncjpLT0k4LVUnKSkNCiMgPT4gWyM8RW5jb2Rp
bmc6S09JOC1VPiwgIzxFbmNvZGluZzpVVEYtOD4sICLQo9C60YDQsNGX0L3QsCIsICM8RW5jb2Rp
bmc6VVRGLTg+XQ0KYGBgDQoNCkJ1dCB3aXRoIFN0cmluZ0lPLCAqKmludGVybmFsIGVuY29kaW5n
IGNhbid0IGJlIHNldCoqIGluIFJ1YnkgKioyLjYqKjoNCg0KYGBgcnVieQ0KcmVxdWlyZSAnc3Ry
aW5naW8nDQpFbmNvZGluZy5kZWZhdWx0X2ludGVybmFsID0gbmlsDQpzdHIgPSAn0KPQutGA0LDR
l9C90LAnLmVuY29kZSgnS09JOC1VJykNCg0KIyBTaW1wbGVzdCBmb3JtOg0KdGVzdChTdHJpbmdJ
Ty5uZXcoc3RyKSkNCiMgPT4gWyM8RW5jb2Rpbmc6S09JOC1VPiwgbmlsLCAiXHhGNVx4Q0JceEQy
XHhDMVx4QTdceENFXHhDMSIsICM8RW5jb2Rpbmc6S09JOC1VPl0NCg0KIyBUcnkgdG8gc2V0IHZp
YSBtb2RlDQp0ZXN0KFN0cmluZ0lPLm5ldyhzdHIsICdyOktPSTgtVTpVVEYtOCcpKQ0KIyA9PiBb
IzxFbmNvZGluZzpLT0k4LVU+LCBuaWwsICJceEY1XHhDQlx4RDJceEMxXHhBN1x4Q0VceEMxIiwg
IzxFbmNvZGluZzpLT0k4LVU+XQ0KDQojIFRyeSB0byBzZXQgdmlhIHNldF9lbmNvZGluZzoNCnRl
c3QoU3RyaW5nSU8ubmV3KHN0ciwgJ3I6S09JOC1VOlVURi04JykudGFwIHsgfGZ8IGYuc2V0X2Vu
Y29kaW5nKCdLT0k4LVUnLCAnVVRGLTgnKSB9KQ0KIyA9PiBbIzxFbmNvZGluZzpLT0k4LVU+LCBu
aWwsICJceEY1XHhDQlx4RDJceEMxXHhBN1x4Q0VceEMxIiwgIzxFbmNvZGluZzpLT0k4LVU+XQ0K
DQojIFRyeSB0byBzZXQgdmlhIEVub2RpbmcuZGVmYXVsdF9pbnRlcm5hbDoNCkVuY29kaW5nLmRl
ZmF1bHRfaW50ZXJuYWwgPSAnVVRGLTgnDQp0ZXN0KFN0cmluZ0lPLm5ldyhzdHIpKQ0KIyA9PiBb
IzxFbmNvZGluZzpLT0k4LVU+LCBuaWwsICJceEY1XHhDQlx4RDJceEMxXHhBN1x4Q0VceEMxIiwg
IzxFbmNvZGluZzpLT0k4LVU+XQ0KYGBgDQoNClNvLCBpbiAyLjYsIGFueSBhdHRlbXB0IHRvIGRv
IHNvbWV0aGluZyB3aXRoIFN0cmluZ0lPJ3MgaW50ZXJuYWwgZW5jb2RpbmcgYXJlICoqanVzdCBp
Z25vcmVkKiouDQoNCkluICoqMi43KiosIHRob3VnaCwgbWF0dGVycyBiZWNhbWUgbXVjaCB3b3Jz
ZToNCmBgYHJ1YnkNCnJlcXVpcmUgJ3N0cmluZ2lvJw0KRW5jb2RpbmcuZGVmYXVsdF9pbnRlcm5h
bCA9IG5pbA0Kc3RyID0gJ9Cj0LrRgNCw0ZfQvdCwJy5lbmNvZGUoJ0tPSTgtVScpDQoNCiMgQmVo
YXZlcyBzYW1lIGFzIDIuNg0KdGVzdChTdHJpbmdJTy5uZXcoc3RyKSkNCiMgPT4gWyM8RW5jb2Rp
bmc6S09JOC1VPiwgbmlsLCAiXHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5jb2Rp
bmc6S09JOC1VPl0NCg0KIyBUcnkgdG8gc2V0IHZpYSBtb2RlOiBXRUlSRCBiZWhhdmlvciBzdGFy
dHMNCnRlc3QoU3RyaW5nSU8ubmV3KHN0ciwgJ3I6S09JOC1VOlVURi04JykpDQojID0+IFsjPEVu
Y29kaW5nOlVURi04PiwgbmlsLCAiXHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5j
b2Rpbmc6VVRGLTg+XQ0KDQojIFRyeSB0byBzZXQgdmlhIHNldF9lbmNvZGluZzogc3RpbGwganVz
dCBpZ25vcmVkDQp0ZXN0KFN0cmluZ0lPLm5ldyhzdHIsICdyOktPSTgtVTpVVEYtOCcpLnRhcCB7
IHxmfCBmLnNldF9lbmNvZGluZygnS09JOC1VJywgJ1VURi04JykgfSkNCiMgPT4gWyM8RW5jb2Rp
bmc6S09JOC1VPiwgbmlsLCAiXHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5jb2Rp
bmc6S09JOC1VPl0NCg0KIyBUcnkgdG8gc2V0IHZpYSBFbm9kaW5nLmRlZmF1bHRfaW50ZXJuYWw6
IFdFSVJEIGJlaGF2aW9yIGFnYWluDQpFbmNvZGluZy5kZWZhdWx0X2ludGVybmFsID0gJ1VURi04
Jw0KdGVzdChTdHJpbmdJTy5uZXcoc3RyKSkNCiMgPT4gWyM8RW5jb2Rpbmc6VVRGLTg+LCBuaWws
ICJceEY1XHhDQlx4RDJceEMxXHhBN1x4Q0VceEMxIiwgIzxFbmNvZGluZzpVVEYtOD5dDQpgYGAN
Cg0KU28sICoqMi43Kiogbm90IGp1c3QgaWdub3JlcyBhdHRlbXB0cyB0byBzZXQgKippbnRlcm5h
bCoqIGVuY29kaW5nLCBidXQgZXJyb25lb3VzbHkgc2V0cyBpdCB0byAqKmV4dGVybmFsKiogb25l
LCBzbyBzdHJpbmdzIGFyZSBub3QgcmVjb2RlZCwgYnV0IHRoZWlyIGVuY29kaW5nIGlzIGZvcmNl
ZCB0byBjaGFuZ2UuDQoNCkkgYmVsaWV2ZSBpdCBpcyBzZXZlcmUgYnVnIChtb3JlIHNldmVyZSB0
aGFuIDIuNidzICJqdXN0IGlnbm9yaW5nIikuDQoNCltUaGlzIFJlZGRpdCB0aHJlYWRdKGh0dHBz
Oi8vd3d3LnJlZGRpdC5jb20vci9ydWJ5L2NvbW1lbnRzL2VtZDZxNC9pc190aGlzX2Ffc3RyaW5n
aW9fYnVnX2luX3J1YnlfMjcwLykgc2hvd3MgaG93IGl0IGJyZWFrcyBleGlzdGluZyBjb2RlOg0K
DQoqIHRoZSBhdXRob3IgdXNlcyBgU3RyaW5nSU9gIHRvIHdvcmsgd2l0aCBgQVNDSUktOEJJVGAg
c3RyaW5nczsNCiogdGhlIGNvZGUgaXMgcGVyZm9ybWVkIGluIFJhaWxzIGVudmlyb25tZW50ICh3
aGljaCBzZXRzIGBpbnRlcm5hbF9lbmNvZGluZ2AgdG8gYFVURi04YCBieSBkZWZhdWx0KTsNCiog
dW5kZXIgKioyLjcqKiwgYFN0cmluZ0lPI3JlYWRgIHJldHVybnMgYEFTQ0lJLThCSVRgIGNvbnRl
bnQgaW4gU3RyaW5ncyBzYXlpbmcgdGhlaXIgZW5jb2RpbmcgaXMgYFVURi04YC4NCg0KDQoNCg0K
LS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0bzpy
dWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRw
Oi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+
Cg==