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

[email protected] Fri, 10 Jan 2020 11:18:31 +0000 (UTC)
Newsgroups gmane.comp.lang.ruby.core
Message-ID <redmine.issue-16497.20200110111831.d6e8c460d983e4b0@ruby-lang.org>
SXNzdWUgIzE2NDk3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2
KS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQnVnICMxNjQ5
NzogU3RyaW5nSU8jaW50ZXJuYWxfZW5jb2RpbmcgaXMgYnJva2VuIChtb3JlIHNldmVyZWx5IGlu
IDIuNykNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjQ5Nw0KDQoqIEF1dGhv
cjogenZlcm9rIChWaWN0b3IgU2hlcGVsZXYpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTog
Tm9ybWFsDQoqIEFzc2lnbmVlOiANCiogVGFyZ2V0IHZlcnNpb246IA0KKiBydWJ5IC12OiANCiog
QmFja3BvcnQ6IDIuNTogVU5LTk9XTiwgMi42OiBVTktOT1dOLCAyLjc6IFVOS05PV04NCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClRvIHRoZSBiZXN0IG9mIG15IHVu
ZGVyc3RhbmRpbmcgZnJvbSBbRW5jb2RpbmddKGh0dHBzOi8vZG9jcy5ydWJ5LWxhbmcub3JnL2Vu
L21hc3Rlci9FbmNvZGluZy5odG1sKSBkb2NzLCB0aGUgZm9sbG93aW5nIGlzIHRydWU6DQoNCiog
ZXh0ZXJuYWwgZW5jb2RpbmcgKGV4cGxpY2l0bHkgc3BlY2lmaWVkIG9yIHRha2VuIGZyb20gYEVu
Y29kaW5nLmRlZmF1bHRfZXh0ZXJuYWxgKSBzcGVjaWZpZXMgaG93IHRoZSBJTyB1bmRlcnN0YW5k
cyBpbnB1dCBhbmQgc3RvcmVzIGl0IGludGVybmFsbHkNCiogaW50ZXJuYWwgZW5jb2RpbmcgKGV4
cGxpY2l0bHkgc3BlY2lmaWVkIG9yIHRha2VuIGZyb20gYEVuY29kaW5nLmRlZmF1bHRfaW50ZXJu
YWxgKSBzcGVjaWZpZXMgaG93IHRoZSBJTyBjb252ZXJ0cyB3aGF0IGl0IHJlYWRzLg0KDQpEZW1v
bnN0cmF0aW9uIHdpdGggcmVndWxhciBmaWxlczoNCg0KYGBgcnVieQ0KIyBwcmVwYXJlIGRhdGEN
CkZpbGUud3JpdGUoJ3Rlc3QudHh0JywgJ9Cj0LrRgNCw0ZfQvdCwJy5lbmNvZGUoJ0tPSTgtVScp
LCBlbmNvZGluZzogJ0tPSTgtVScpICM9PiA3DQoNCmRlZiB0ZXN0KGlvKQ0KICBzdHIgPSBpby5y
ZWFkDQogIFtpby5leHRlcm5hbF9lbmNvZGluZywgaW8uaW50ZXJuYWxfZW5jb2RpbmcsIHN0ciwg
c3RyLmVuY29kaW5nXQ0KZW5kDQoNCiMgcmVhZCBpdDoNCnRlc3QoRmlsZS5vcGVuKCd0ZXN0LnR4
dCcsICdyOktPSTgtVScpKQ0KIyA9PiBbIzxFbmNvZGluZzpLT0k4LVU+LCBuaWwsICJceEY1XHhD
Qlx4RDJceEMxXHhBN1x4Q0VceEMxIiwgIzxFbmNvZGluZzpLT0k4LVU+XQ0KDQojIFdlIGNhbiBz
cGVjaWZ5IGludGVybmFsIGVuY29kaW5nIHdoZW4gb3BlbmluZyB0aGUgZmlsZToNCnRlc3QoRmls
ZS5vcGVuKCd0ZXN0LnR4dCcsICdyOktPSTgtVTpVVEYtOCcpKQ0KIyA9PiBbIzxFbmNvZGluZzpL
T0k4LVU+LCAjPEVuY29kaW5nOlVURi04PiwgItCj0LrRgNCw0ZfQvdCwIiwgIzxFbmNvZGluZzpV
VEYtOD5dDQoNCiMgLi4ub3Igd2hlbiBpdCBpcyBhbHJlYWR5IG9wZW5lZA0KdGVzdChGaWxlLm9w
ZW4oJ3Rlc3QudHh0JykudGFwIHsgfGZ8IGYuc2V0X2VuY29kaW5nKCdLT0k4LVUnLCAnVVRGLTgn
KSB9KQ0KIyA9PiBbIzxFbmNvZGluZzpLT0k4LVU+LCAjPEVuY29kaW5nOlVURi04PiwgItCj0LrR
gNCw0ZfQvdCwIiwgIzxFbmNvZGluZzpVVEYtOD5dDQoNCiMgLi4ub3Igd2l0aCBFbmNvZGluZy5k
ZWZhdWx0X2ludGVybmFsDQpFbmNvZGluZy5kZWZhdWx0X2ludGVybmFsID0gJ1VURi04Jw0KdGVz
dChGaWxlLm9wZW4oJ3Rlc3QudHh0JywgJ3I6S09JOC1VJykpDQojID0+IFsjPEVuY29kaW5nOktP
STgtVT4sICM8RW5jb2Rpbmc6VVRGLTg+LCAi0KPQutGA0LDRl9C90LAiLCAjPEVuY29kaW5nOlVU
Ri04Pl0NCmBgYA0KDQpCdXQgd2l0aCBTdHJpbmdJTywgKippbnRlcm5hbCBlbmNvZGluZyBjYW4n
dCBiZSBzZXQqKiBpbiBSdWJ5ICoqMi42Kio6DQoNCmBgYHJ1YnkNCnJlcXVpcmUgJ3N0cmluZ2lv
Jw0KRW5jb2RpbmcuZGVmYXVsdF9pbnRlcm5hbCA9IG5pbA0Kc3RyID0gJ9Cj0LrRgNCw0ZfQvdCw
Jy5lbmNvZGUoJ0tPSTgtVScpDQoNCiMgU2ltcGxlc3QgZm9ybToNCnRlc3QoU3RyaW5nSU8ubmV3
KHN0cikpDQojID0+IFsjPEVuY29kaW5nOktPSTgtVT4sIG5pbCwgIlx4RjVceENCXHhEMlx4QzFc
eEE3XHhDRVx4QzEiLCAjPEVuY29kaW5nOktPSTgtVT5dDQoNCiMgVHJ5IHRvIHNldCB2aWEgbW9k
ZQ0KdGVzdChTdHJpbmdJTy5uZXcoc3RyLCAncjpLT0k4LVU6VVRGLTgnKSkNCiMgPT4gWyM8RW5j
b2Rpbmc6S09JOC1VPiwgbmlsLCAiXHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5j
b2Rpbmc6S09JOC1VPl0NCg0KIyBUcnkgdG8gc2V0IHZpYSBzZXRfZW5jb2Rpbmc6DQp0ZXN0KFN0
cmluZ0lPLm5ldyhzdHIsICdyOktPSTgtVTpVVEYtOCcpLnRhcCB7IHxmfCBmLnNldF9lbmNvZGlu
ZygnS09JOC1VJywgJ1VURi04JykgfSkNCiMgPT4gWyM8RW5jb2Rpbmc6S09JOC1VPiwgbmlsLCAi
XHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5jb2Rpbmc6S09JOC1VPl0NCg0KIyBU
cnkgdG8gc2V0IHZpYSBFbm9kaW5nLmRlZmF1bHRfaW50ZXJuYWw6DQpFbmNvZGluZy5kZWZhdWx0
X2ludGVybmFsID0gJ1VURi04Jw0KdGVzdChTdHJpbmdJTy5uZXcoc3RyKSkNCiMgPT4gWyM8RW5j
b2Rpbmc6S09JOC1VPiwgbmlsLCAiXHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5j
b2Rpbmc6S09JOC1VPl0NCmBgYA0KDQpTbywgaW4gMi42LCBhbnkgYXR0ZW1wdCB0byBkbyBzb21l
dGhpbmcgd2l0aCBTdHJpbmdJTydzIGludGVybmFsIGVuY29kaW5nIGFyZSAqKmp1c3QgaWdub3Jl
ZCoqLg0KDQpJbiAqKjIuNyoqLCB0aG91Z2gsIG1hdHRlcnMgYmVjYW1lIG11Y2ggd29yc2U6DQpg
YGBydWJ5DQpyZXF1aXJlICdzdHJpbmdpbycNCkVuY29kaW5nLmRlZmF1bHRfaW50ZXJuYWwgPSBu
aWwNCnN0ciA9ICfQo9C60YDQsNGX0L3QsCcuZW5jb2RlKCdLT0k4LVUnKQ0KDQojIEJlaGF2ZXMg
c2FtZSBhcyAyLjYNCnRlc3QoU3RyaW5nSU8ubmV3KHN0cikpDQojID0+IFsjPEVuY29kaW5nOktP
STgtVT4sIG5pbCwgIlx4RjVceENCXHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29kaW5nOktP
STgtVT5dDQoNCiMgVHJ5IHRvIHNldCB2aWEgbW9kZTogV0VJUkQgYmVoYXZpb3Igc3RhcnRzDQp0
ZXN0KFN0cmluZ0lPLm5ldyhzdHIsICdyOktPSTgtVTpVVEYtOCcpKQ0KIyA9PiBbIzxFbmNvZGlu
ZzpVVEYtOD4sIG5pbCwgIlx4RjVceENCXHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29kaW5n
OlVURi04Pl0NCg0KIyBUcnkgdG8gc2V0IHZpYSBzZXRfZW5jb2Rpbmc6IHN0aWxsIGp1c3QgaWdu
b3JlZA0KdGVzdChTdHJpbmdJTy5uZXcoc3RyLCAncjpLT0k4LVU6VVRGLTgnKS50YXAgeyB8Znwg
Zi5zZXRfZW5jb2RpbmcoJ0tPSTgtVScsICdVVEYtOCcpIH0pDQojID0+IFsjPEVuY29kaW5nOktP
STgtVT4sIG5pbCwgIlx4RjVceENCXHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29kaW5nOktP
STgtVT5dDQoNCiMgVHJ5IHRvIHNldCB2aWEgRW5vZGluZy5kZWZhdWx0X2ludGVybmFsOiBXRUlS
RCBiZWhhdmlvciBhZ2Fpbg0KRW5jb2RpbmcuZGVmYXVsdF9pbnRlcm5hbCA9ICdVVEYtOCcNCnRl
c3QoU3RyaW5nSU8ubmV3KHN0cikpDQojID0+IFsjPEVuY29kaW5nOlVURi04PiwgbmlsLCAiXHhG
NVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5jb2Rpbmc6VVRGLTg+XQ0KYGBgDQoNClNv
LCAqKjIuNyoqIG5vdCBqdXN0IGlnbm9yZXMgYXR0ZW1wdHMgdG8gc2V0ICoqaW50ZXJuYWwqKiBl
bmNvZGluZywgYnV0IGVycm9uZW91c2x5IHNldHMgaXQgdG8gKipleHRlcm5hbCoqIG9uZSwgc28g
c3RyaW5ncyBhcmUgbm90IHJlY29kZWQsIGJ1dCB0aGVpciBlbmNvZGluZyBpcyBmb3JjZWQgdG8g
Y2hhbmdlLg0KDQpJIGJlbGlldmUgaXQgaXMgc2V2ZXJlIGJ1ZyAobW9yZSBzZXZlcmUgdGhhbiAy
LjYncyAianVzdCBpZ25vcmluZyIpLg0KDQpbVGhpcyBSZWRkaXQgdGhyZWFkXShodHRwczovL3d3
dy5yZWRkaXQuY29tL3IvcnVieS9jb21tZW50cy9lbWQ2cTQvaXNfdGhpc19hX3N0cmluZ2lvX2J1
Z19pbl9ydWJ5XzI3MC8pIHNob3dzIGhvdyBpdCBicmVha3MgZXhpc3RpbmcgY29kZToNCg0KKiB0
aGUgYXV0aG9yIHVzZXMgYFN0cmluZ0lPYCB0byB3b3JrIHdpdGggYEFTQ0lJLThCSVRgIHN0cmlu
Z3M7DQoqIHRoZSBjb2RlIGlzIHBlcmZvcm1lZCBpbiBSYWlscyBlbnZpcm9ubWVudCAod2hpY2gg
c2V0cyBgaW50ZXJuYWxfZW5jb2RpbmdgIHRvIGBVVEYtOGAgYnkgZGVmYXVsdCk7DQoqIHVuZGVy
ICoqMi43KiosIGBTdHJpbmdJTyNyZWFkYCByZXR1cm5zIGBBU0NJSS04QklUYCBjb250ZW50IGlu
IFN0cmluZ3Mgc2F5aW5nIHRoZWlyIGVuY29kaW5nIGlzIGBVVEYtOGAuDQoNCg0KDQoNCi0tIA0K
aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1j
b3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xp
c3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=